!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv w x y z { | } ~  -class of protocols for channel communication portable experimentalmik@konecny.aow.cz %Union of answers from all protocols. %Union of queries from all protocols. /This type is used to identify protocols eg for ? the creation of new channels or for dynamic type checking. ; It consists of an example query and an example answer. /A class grouping types of queries and answers. MEach instance has to define dynamic type checking of answers agains queries. Ntest whether the answer makes sense for a given query (dynamic type checking) !any danger of over 2^29 queries?       communication events portable experimentalmik@konecny.aow.cz5Data to be logged with every query and answer event. %query originator, receiver of answer #query target, the one who answered  'processes and channels within networks portable experimentalmik@konecny.aow.cz !"#$ !"#$ !"#$!"#$communication events portable experimentalmik@konecny.aow.cz%%%+an abstraction of channels within networks portable experimentalmik@konecny.aow.cz '6create a new channel that is then given to processes (6A channel type, as it is presented to the processes, < consists of an input socket and an output socket types. 7Each socket type has a unique protocol associated with 4 it. Whenever the protocol can be determined at ; compile time, we use the sIn and sOut types, otherwise 1 we use the sInAnyProt and sOutAnyProt types. > Elements of sInAnyProt and sOutAnyProt can be dynamically 7 cast to elements of sIn and sOut once the protocol 1 can be deduced by the Haskell type checker. -,Register a new query on the given socket.  Return the new query's id. 5This is a version using a statically typed protocol. .,Register a new query on the given socket.  Return the new query's id. 6This is a version using a dynamically typed protocol. /8Wait until the given socket has at least one new query. [ When there is at least one, return the earliest one and set its status to pending. 0This function uses a statically typed protocol. 0@Wait until one of the given sockets has at least one new query. = When there is at least one, return the earliest one ' and set its status to pending. 4This is function uses a dynamically typed protocol. 1=Send the provided answer to the given socket as an answer to + the query with the given query ID. 5This is a version using a statically typed protocol. 2=Send the provided answer to the given socket as an answer to + the query with the given query ID. 6This is a version using a dynamically typed protocol. 37Wait for an answer to a query with the given query ID. 4GWait for an answer to one of several queries with the given query IDs. &'()*+,-./01234()*+,-./01234&'&''( )*+,-./01234)*+,-./01234'processes and channels within networks portable experimentalmik@konecny.aow.cz5$Explicit representation of a process' action, able to distinguish H between answering and making a query or pausing one internal thread : until the internal state (TV) has met some condition. 1This is useful for producing highly customisable  templates for processes G as Haskell functions whose parameters are functions that determine R what the process should do as a response to some external or internal events.  See for example 5Control.ERNet.Blocks.Basic.passThroughStatefulProcess. <9All data that define a process, including its behaviour. K Each executing process is instantiated from one of these descriptions. >undeployed process name ?5On deployment, a process either expands itself using D the provided callback function and does not use the  sockets at all 5OR it uses the sockets and never calls the expansion  callback. 56789:;<=>?@AB<=>?@A;:95876B58766789:;<=>?@A=>?@AB.Abstraction of a distributed network manager. portable experimentalmik@konecny.aow.czC"A globally unique name as a URL.  eg ernet:localhost:4176/miks-ivp-solver-master  ernet-local:/ivp-solver-master  ernet-mpi:/ivp-solver-master -The port 4176 was unassigned when checked on  http: www.iana.org assignments port-numbers  on 2nd November 2008. D4A name given to a ditributed node by a programmer. IGRun a process together with some queries on one of its output sockets. CDEFGHIEFGHDCICDEFGHFGHI(datatype for dynamic typing of channels portable experimentalmik@konecny.aow.cz,JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu,jlkgihmnefcdo_ba`[^]\pqVZYXWRUTSrsNQPOJMLKtu,JMLKKLMNQPOOPQRUTSSTUVZYXWWXYZ[^]\\]^_ba``abcddeffgihhijlkklmnopqrstu *protocols for communicating a real number portable experimentalmik@konecny.aow.cz{1Construct an answer to a query for a real number A using the default real number protocol with an effort index. |1Construct an answer to a query for a real number E using the default real number protocol without any effort index. }9Construct an answer to a query for a list a real numbers 2 using the list protocol with an effort index. ~9Construct an answer to a query for a list a real numbers 6 using the list protocol without any effort index. "Make a query and wait for answer 4 on a real number input socket with the standard  (index -> approx) protocol. vwxyz{|}~ xyvwz{|}~ vwwxyyz{|}~ +protocols for communicating real functions portable experimentalmik@konecny.aow.cz/Construct an answer about a function, assuming ) they will not ask about a subdomain. ,Construct an answer about a function, given ( as a Haskell real -> real function.  /processes with purely synchronisation effects portable experimentalmik@konecny.aow.cz2This process joins information from two channels (step, val) B in such a way that it acts as a splitter of responsibilities F for its multi-threaded failure-enabled result channel as follows:  The stepC channel provides the timing and effort information for responses.  The val7 channel provides values without significant blocking. CWhile the process is waiting for a response from the step channel, : any queries are put on hold until the response comes. ? If the step channel responds with indication of failure, then 0 all pending queries are answered as failed. D If the step channel responds with ok, then all the pending queries : are forwarded to the value channel and answered asap. > No new queries are accepted during such forwarding stage. 9This process provides two channels (primary, secondary) ; split off from one source channel. The primary channel = is a clean forward of the source channel. The secondary L channel can use a slightly different protocol than the primary channel. DAny query on the secondary channel will be blocked until a matching L query is received and processed on the primary channel. (The user must M supply a function that decides whether or not the queries are matching.) <Whenever a query is being answered on the primary channel, : all queries pending on the secondary channel that are 8 matching this one will be replied at the same time H using the an answer derived from the answer on the primary channel. GThis process provides multiple copies of one single-threaded channel. +merges splits a channel into two channels B - primary channel and secondary channel. The primary channel ? is a clean forward of the original channel. The secondary L channel can use a slightly different protocol than the primary channel. DAny query on the secondary channel will be blocked until a matching L query is received and processed on the primary channel. (The user must M supply a function that decides whether or not the queries are matching.) <Whenever a query is being answered on the primary channel, : all queries pending on the secondary channel that are 8 matching this one will be replied at the same time H using the an answer derived from the answer on the primary channel. This process acts as a switch1 for a group of channels, forwarding information < from one of two groups of source channels. The special switch channel 0 indicates whether to use one or the other. ,This process acts as a simple pass-through 2 + it decreases the effort index of each query . except for a query with effort index zero & it asks a special value provider. 2 It can cope with several queries in parallel. 1This process acts as a simple pass-through + it B remembers its last answer and provides it on another channel. ? It initialises its memory from a special value provider.  (generic processes and process templates portable experimentalmik@konecny.aow.cz ,A generic stateless process with no inputs. KA generic process with no inputs that answers using a ChTChanges protocol. +A generic stateful process with no inputs. 1A process with one input and one output socket. O Upon receiving a query or an answer related to a previously received query, F the process uses the provided functions to decide whether to answer Q the query, make a new query or wait until the state meets a certain condition. S When the condition is met, the event (query or answer) in question is processed % again using the same function. FSeveral simpler processes are defined as specialisations of this one. CA simple process that passes on a translated version of each query J to another process and translates the answers before passing them back. ?A simple process that either responds with no further queries F or passes on a translated version of the query to another process, E and then passing back a translated version of the answer received. PA process passing on information without modification, except for improving the , convergence rate in successive queries. 9Each query may refer to a previous query. When it does, 1 the query will not be answered until either: E the answer has improved sufficiently since last time one was given R the number of queries made in response to this query has reached the given limit 2Currently supports only single-threaded querying. )A trivial passthrough process that only: " reduces prec by 1 in all queries ? ensures that the granularity of all answers is raised to prec <A process that passes on a translated version of each query L to one or both of another 2 channels. When the other channel(s) answer, I it analyses the answer(s) and decides whether to send other queries or  answer its original query. CA simple process that passes on a translated version of each query J to another process and translates the answers before passing them back. (basic processes for function enclosures portable experimentalmik@konecny.aow.cz IA pass-through process for first order real functions with effort index * that is almost equal to the identity. It restricts the function'#s graph at certain given intervals  to the given boxes. EA simple integrator process for first-order linear domain functions 5 with effort index using the default integration  of the  instance. MAn intersecting and improvement measuring stateful integrator process using  default intersecting & measuring integration of the   instance. RApply a function transformer ((R^m->R^n) -> (R^m->R^n)) to a function (R^m->R^n). 6A process joining two functions for adjacent domains ) to one function on the joint domain. 6Each query is split accordingly to two queries on the 5 two halves of the bisected domain, respectively. LA process splitting a function into two based on a bisection of the domain. JA query for either half of the function results in a query for the whole. X The whole function is then cached to answer an analogous query for the second half. < Only one such result is cached (always the last one). NA process passing on information about a real function, trying to improve the , convergence rate in successive queries. 9Each query may refer to a previous query. When it does, 1 the query will not be answered until either: X the information about the function has improved by the desired amount since last time R the number of queries made in response to this query has reached the given limit FA process passing on information about the values of a real function  at its domain endpoints. Protocols are wrapped in ChannelComm.ChTChanges 0 in order to be able to communicate failure. FA process passing on information about the values of a real function  over a fixed domain. Protocols are wrapped in ChannelComm.ChTChanges 0 in order to be able to communicate failure. 4basic processes for processing reals via intervals portable experimentalmik@konecny.aow.czLA process passing on information about a real number, trying to improve the , convergence rate in successive queries. 9Each query may refer to a previous query. When it does, 1 the query will not be answered until either: V the information about the number has improved by the desired amount since last time R the number of queries made in response to this query has reached the given limit UA process passing on information about a list of real numbers, trying to improve the , convergence rate in successive queries. 9Each query may refer to a previous query. When it does, 1 the query will not be answered until either: U the information about the tuple has improved by the desired amount since last time R the number of queries made in response to this query has reached the given limit #real protocol using LFTs as digits portable experimentalmik@konecny.aow.cz QA multi-dimensional linear fractional transformation with integer coefficients. Pthe first Bool indicates whether or not the term is in the numerator of the LFT "Interpret the LFT digits as LFTs. 9A process communicating a real number to a single client " incrementally digit by digit. CA process that receives a real number incrementally digit by digit S and makes it available to multiple clients incrementally or non-incrementally. 8Constructor for a 0-ary LFT with integer coefficients. 8Constructor for a unary LFT with integer coefficients. 9Constructor for a binary LFT with integer coefficients. 8Work out what interval is the image of the lft when all ' variables are given the value [0,oo]. : The returned interval may be slightly bigger than the ; exact image due to rounding but it always contains the  whole exact image. Like  lftTensorInfo# but assuming the lft is constant. Like  lftTensorInfo but assuming the lft is unary. =Compose two unary LFTs, ie substituting one into the other. 4Compose two LFTs, ie substituting one into another " using one of its variables. +logger implementation using an STM channel portable experimentalmik@konecny.aow.cz!channel implementation using STM portable experimentalmik@konecny.aow.cz?This number indicates how many times this query has been made / and answers not picked up yet. 3When 0, this QAstate and the corresponding answer T can be removed from the channel state unless the answer is cached. *unique query Id to use for the next query )queries that have not been picked up yet @queries that are being served or whose answers have been cached Iindex to queries that are being served or whose answers have been cached Zanswers that have not been picked up yet or have been cached + indicator whether to cache (rank within its answering process (0..) -Union of channel types over instances of the ChannelComm.QERrotocol class. (existential type) 4manager implementation using local threads and STM portable experimentalmik@konecny.aow.cz !"#$%&'()*+,-./0123.456789:;<=>?@ABCDEFGHHIJKLMNOP.QRSTUVWXYZ[\]^\_`abcdefghhijkkllmnmopoqrstuvwxy z z { { | } ~              AERN-Net-0.2.1"Control.ERNet.Foundations.ProtocolControl.ERNet.Foundations.Event&Control.ERNet.Foundations.Event.Logger*Control.ERNet.Foundations.Event.JavaScript!Control.ERNet.Foundations.Channel!Control.ERNet.Foundations.Process!Control.ERNet.Foundations.Manager6Control.ERNet.Foundations.Protocol.StandardCombinators#Control.ERNet.Blocks.Real.Protocols%Control.ERNet.Blocks.RnToRm.Protocols"Control.ERNet.Blocks.Control.BasicControl.ERNet.Blocks.Basic!Control.ERNet.Blocks.RnToRm.BasicControl.ERNet.Blocks.Real.BasicControl.ERNet.Blocks.Real.LFT%Control.ERNet.Deployment.Local.Logger&Control.ERNet.Deployment.Local.Channel&Control.ERNet.Deployment.Local.ManagerAERN-RnToRm-0.4.9.1Data.Number.ER.RnToRm.ApproxQANatAQANatQQABoolQQAUnitAQAUnitQ AnswerAnyProt QueryAnyProt ChannelType QAProtocolqaMatch qaaSetMinGranQueryId ERNetEventERNetEvAnsReceivedERNetEvAnsMade ernetevAnsERNetEvQryReceivedERNetEvQryMade ernetevTime ernetevQryId ernetevFromIdernetevFromQryId ernetevToId ernetevQryLoggernewaddEvent emptyAndDoemptyAndGetEvents constructJSChannelForSchedulerChannelcastIncastOutcastInIO castOutIO makeQuerymakeQueryAnyProt waitForQuerywaitForQueryMulti answerQueryanswerQueryAnyProt waitForAnswerwaitForAnswerMultiERProcessActionERProcessActionAnswerERProcessActionQueryERProcessActionRetryWhenERProcessExpandCallbackERProcessDeploy ERProcessName ERProcess erprocName erprocDeployerprocInputTypeserprocOutputTypes subnetProcess ManagerID ManagerNameManagerconnectNeighbour runProcess runDialogueQAProdA QAProdABoth QAProdASecond QAProdAFirstQAProdQ QAProdQBoth QAProdQSecond QAProdQFirstQAListA QAListALength QAListASingleQAListQ QAListQLength QAListQPrefix QAListQSingleQAListQAllHomog QAChangesAQAChangesAGivenUpQAChangesASame QAChangesANew QAChangesQQAChangesQWhenNewQAChangesQIfNewQAIxAQAIxQQAMaybeAQAMaybeAIsNothingQAMaybeQQAMaybeQIsNothingchTMaybemakeAnswerMaybechTIx chTChanges firstJustchTListmakeAnswerListchTProdmakeAnswerProdQARealAQARealQchTReal makeAnswerRmakeAnswerRNoIx makeAnswerRsmakeAnswerRsNoIx querySyncRQAFn2AQAFn2APtQAFn2QQAFn2QPtQAFn1AQAFn1APtQAFn1QQAFn1QPt QAFn1QDom QAFn1QAllchTFn1makeAnswerFn1NoIxmakeAnswerFn1ByBoxesNoIxchTFn2joinStepValProcessbiasedSplitSyncProcesssplitSyncProcessswitchMultiProcessimproverIxSimpleProcessimproverNoIxSimpleProcessconstantProcessconstantChangedProcessconstantStatefulProcesspassThroughStatefulProcesspassThroughProcessmaybePassThroughProcess rateProcess precProcess passThroughBinaryStatefulProcesspassThroughBinaryProcessboundingProcessintegrateFAProcessintegrateIsectMeasureFAProcessapplyFieldProcessjoinFADomProcesssplitFADomProcess rateFnProcessgetEndpointValsProcessmaxOverDomProcess rateRProcess rateRsProcess LFTTensor lftTNSrank lftTNScoeffsLFTDigit LFT_SG_NEG LFT_SG_POS LFT_SG_INF LFT_SG_ZERLFT_RLFT_MLFT_L QALFTRealA QALFTRealQ chTLFTReallftDigit2TensorlftRealNumberIncremProcesslftRealNumberBufferForkProcesslftConst lftMatrixlftTensorBinary lftTensorInfolftTensorIsPositivelftTensorComposeUnarylftTensorCompose LoggerLocal ChannelLocalChannelLocalAnyProt ManagerLocalqaMatchDefaultMessagechTUnitchTBoolchTNatshowNQputLogWhileRunningputCompleteLogreplyFn replyFnNoIx replyFn2Fn ERFnDomApproxlftTensorInfoConstlftTensorInfoUnary qaStWaiting chStNextIdchStQueriesNewchStQueriesCachechStQueriesIndex chStAnswerschID