~/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn o p q r s t u v 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?         'processes and channels within networks portable experimentalmik@konecny.aow.cz9All 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.   (datatype for dynamic typing of channels portable experimentalmik@konecny.aow.cz, !"#$%&'()*+,-./0123456789:;<=>?@ABCDE,:<;798=>5634?/210+.-,@A&*)('"%$#BC! DE,!  !"%$##$%&*)(''()*+.-,,-./21001234456679889:<;;<=>?@ABCDEcommunication events portable experimentalmik@konecny.aow.czF5Data to be logged with every query and answer event. N%query originator, receiver of answer P#query target, the one who answered FGHIJKLMNOPQFKJHGLMNOPQLMPQLMPILMNOPIQ FKJHGLMNOPQLMPQLMPILMNOPIQGHIJKLMNOPQcommunication events portable experimentalmik@konecny.aow.czRRR'processes and channels within networks portable experimentalmik@konecny.aow.czSTUVWSTUVWSTUVWTUVW+an abstraction of channels within networks portable experimentalmik@konecny.aow.cz Y6create a new channel that is then given to processes Z6A 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. a8Wait 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. b@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. c=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. d=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. e7Wait for an answer to a query with the given query ID. fGWait for an answer to one of several queries with the given query IDs. XYZ[\]^_`abcdefZ[\]^_`abcdefXYXYYZ [\]^_`abcdef[\]^_`abcdef.Abstraction of a distributed network manager. portable experimentalmik@konecny.aow.czg"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. h4A name given to a ditributed node by a programmer. mGRun a process together with some queries on one of its output sockets. ghijklmijklhgmghijkljklm +logger implementation using an STM channel portable experimentalmik@konecny.aow.cznnn !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..) p-Union of channel types over instances of the ChannelComm.QERrotocol class. (existential type) opopop 4manager implementation using local threads and STM portable experimentalmik@konecny.aow.czqqq +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. rstuvwxyz{|}~y|{zvxw}~tursrsstuuvxwwxy|{zz{|}~ *protocols for communicating a real number portable experimentalmik@konecny.aow.cz1Construct 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. /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. <A process that passes on a translated version of each query A to another process. When the other other answers, it analyses : the answer and decides whether to send another query or  answer its original query. 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. 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 (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.  !!"#$%&'()*+,-./01/23456789:;;<=>>??@A@BCBDEFGHIJKLMNOPQRSTUVWXYZ[\]^_[`abcdefghijklmno[pqr s t u v w x y z { | { } ~        AERN-Net-0.2.0"Control.ERNet.Foundations.Protocol!Control.ERNet.Foundations.Process6Control.ERNet.Foundations.Protocol.StandardCombinatorsControl.ERNet.Foundations.Event*Control.ERNet.Foundations.Event.JavaScript&Control.ERNet.Foundations.Event.Logger!Control.ERNet.Foundations.Channel!Control.ERNet.Foundations.Manager%Control.ERNet.Deployment.Local.Logger&Control.ERNet.Deployment.Local.Channel&Control.ERNet.Deployment.Local.Manager%Control.ERNet.Blocks.RnToRm.Protocols#Control.ERNet.Blocks.Real.Protocols"Control.ERNet.Blocks.Control.BasicControl.ERNet.Blocks.BasicControl.ERNet.Blocks.Real.Basic!Control.ERNet.Blocks.RnToRm.BasicAERN-RnToRm-0.4.9.1Data.Number.ER.RnToRm.ApproxQABoolQQAUnitAQAUnitQ AnswerAnyProt QueryAnyProt ChannelType QAProtocolqaMatch qaaSetMinGranQueryIdERProcessExpandCallbackERProcessDeploy ERProcessName ERProcess erprocName erprocDeployerprocInputTypeserprocOutputTypes subnetProcessQAProdA QAProdABoth QAProdASecond QAProdAFirstQAProdQ QAProdQBoth QAProdQSecond QAProdQFirstQAListA QAListALength QAListASingleQAListQ QAListQLength QAListQPrefix QAListQSingleQAListQAllHomog QAChangesAQAChangesAGivenUpQAChangesASame QAChangesANew QAChangesQQAChangesQWhenNewQAChangesQIfNewQAIxAQAIxQQAMaybeAQAMaybeAIsNothingQAMaybeQQAMaybeQIsNothingchTMaybemakeAnswerMaybechTIx chTChanges firstJustchTListmakeAnswerListchTProdmakeAnswerProd ERNetEventERNetEvAnsReceivedERNetEvAnsMade ernetevAnsERNetEvQryReceivedERNetEvQryMade ernetevTime ernetevQryId ernetevFromIdernetevFromQryId ernetevToId ernetevQry constructJSLoggernewaddEvent emptyAndDoemptyAndGetEventsChannelForSchedulerChannelcastIncastOutcastInIO castOutIO makeQuerymakeQueryAnyProt waitForQuerywaitForQueryMulti answerQueryanswerQueryAnyProt waitForAnswerwaitForAnswerMulti ManagerID ManagerNameManagerconnectNeighbour runProcess runDialogue LoggerLocal ChannelLocalChannelLocalAnyProt ManagerLocalQAFn2AQAFn2APtQAFn2QQAFn2QPtQAFn1AQAFn1APtQAFn1QQAFn1QPt QAFn1QDom QAFn1QAllchTFn1makeAnswerFn1NoIxmakeAnswerFn1ByBoxesNoIxchTFn2QARealAQARealQchTReal makeAnswerRmakeAnswerRNoIx makeAnswerRsmakeAnswerRsNoIx querySyncRjoinStepValProcessbiasedSplitSyncProcesssplitSyncProcessswitchMultiProcessimproverIxSimpleProcessimproverNoIxSimpleProcessconstantProcessconstantChangedProcessconstantStatefulProcesspassThroughStatefulProcesspassThroughProcessmaybePassThroughProcess rateProcess precProcess passThroughBinaryStatefulProcesspassThroughBinaryProcess rateRProcess rateRsProcessboundingProcessintegrateFAProcessintegrateIsectMeasureFAProcessapplyFieldProcessjoinFADomProcesssplitFADomProcess rateFnProcessgetEndpointValsProcessmaxOverDomProcessqaMatchDefaultMessagechTUnitchTBoolshowNQputLogWhileRunningputCompleteLog qaStWaiting chStNextIdchStQueriesNewchStQueriesCachechStQueriesIndex chStAnswerschIDreplyFn replyFnNoIx replyFn2Fn ERFnDomApprox