packages feed

aivika 1.2.1 → 1.3

raw patch · 6 files changed

+17/−94 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Simulation.Aivika.Processor: simpleProcessor :: (a -> Process b) -> Processor a b
- Simulation.Aivika.Processor: statefulProcessor :: s -> ((s, a) -> Process (s, b)) -> Processor a b
- Simulation.Aivika.Server: newServerWithState :: s -> ((s, a) -> Process (s, b)) -> Simulation (Server s a b)
- Simulation.Aivika.Stream: splitStreamQueuing :: EnqueueStrategy s q => s -> Int -> Stream a -> Simulation [Stream a]

Files

Simulation/Aivika/Processor.hs view
@@ -16,8 +16,6 @@         emptyProcessor,         arrProcessor,         accumProcessor,-        simpleProcessor,-        statefulProcessor,         -- * Specifying Identifier         processorUsingId,         -- * Prefetch Processor@@ -141,18 +139,6 @@       do (a, xs') <- runStream xs          (acc', b) <- f acc a          return (b, Cons $ loop xs' acc') ---- | Create a simple processor by the specified handling function--- that runs the discontinuous process for each input value to get the output.-simpleProcessor :: (a -> Process b) -> Processor a b-{-# DEPRECATED simpleProcessor "Use arrProcessor instead" #-}-simpleProcessor = Processor . mapStreamM---- | Like 'simpleProcessor' but allows creating a processor that has a state--- which is passed in to every new iteration.-statefulProcessor :: s -> ((s, a) -> Process (s, b)) -> Processor a b-{-# DEPRECATED statefulProcessor "Use accumProcessor instead" #-}-statefulProcessor s f = accumProcessor (\acc a -> f (s, a)) s  -- | Create a processor that will use the specified process identifier. -- It can be useful to refer to the underlying 'Process' computation which
Simulation/Aivika/Server.hs view
@@ -13,7 +13,6 @@         Server,         newServer,         newStateServer,-        newServerWithState,         -- * Processing         serverProcessor,         -- * Server Properties and Activities@@ -111,7 +110,7 @@              -- ^ provide an output by the specified input              -> Simulation (Server () a b) newServer provide =-  newServerWithState () $ \(s, a) ->+  flip newStateServer () $ \s a ->   do b <- provide a      return (s, b) @@ -148,18 +147,6 @@                            serverTaskProcessedSource = s2,                            serverOutputProvidedSource = s3 }      return server---- | Create a new server that can provide output @b@ by input @a@--- starting from state @s@. Also it returns the corresponded processor--- that being applied updates the server state.-newServerWithState :: s-                      -- ^ the initial state-                      -> ((s, a) -> Process (s, b))-                      -- ^ provide an output by the specified input-                      -- and update the state -                      -> Simulation (Server s a b)-{-# DEPRECATED newServerWithState "Use newStateServer instead" #-}-newServerWithState state provide = newStateServer (curry provide) state  -- | Return a processor for the specified server. --
Simulation/Aivika/Stream.hs view
@@ -21,7 +21,6 @@         concatQueuedStreams,         concatPriorityStreams,         splitStream,-        splitStreamQueuing,         splitStreamQueueing,         splitStreamPrioritising,         -- * Specifying Identifier@@ -300,19 +299,6 @@               liftIO $ writeIORef ref xs               return a      return $ map (\i -> repeatProcess reader) [1..n]---- | It was renamed to 'splitStreamQueueing'.-{-# DEPRECATED splitStreamQueuing "Use splitStreamQueueing instead" #-}-splitStreamQueuing :: EnqueueStrategy s q-                      => s-                      -- ^ the strategy applied for enqueuing the output requests-                      -> Int-                      -- ^ the number of output streams-                      -> Stream a-                      -- ^ the input stream-                      -> Simulation [Stream a]-                      -- ^ the splitted output streams-splitStreamQueuing = splitStreamQueueing  -- | Split the input stream into a list of output streams -- using the specified priorities.
aivika.cabal view
@@ -1,10 +1,9 @@ name:            aivika-version:         1.2.1+version:         1.3 synopsis:        A multi-paradigm simulation library description:     Aivika is a multi-paradigm simulation library with a strong emphasis-    on the Discrete Event Simulation (DES) in the first order and -    System Dynamics (SD) in the second one.+    on Discrete Event Simulation (DES) and System Dynamics (SD).     .     The library has the following features:     .@@ -18,21 +17,15 @@       with an ability to resume, suspend and cancel        the discontinuous processes;     .-    * allows working with the resources (you can define your own behaviour-      or use the predefined queue strategies);+    * allows working with the resources based on specified queue strategies +      (FCFS\/FIFO, LCFS\/LIFO, SIRO, static priorities and so on);     .-    * allows customizing the queues (you can define your own behaviour-      or use the predefined queue strategies);+    * allows customizing the infinite and finite queues based on strategies too;     .-    * allows defining an infinite stream of data based on the-      process-oriented computation, where we can define a complex enough+    * allows defining a queue network based on infinite streams of data+      and their processors, where we can define a complex enough       behaviour just in a few lines of code;     .-    * allows defining processors (actually, the Haskell arrows) that-      operate on the infinite streams of data, because of which some models-      can remind of their high-level graphical representation on the-      diagram used by visual simulation software tools;-    .     * allows simulating circuits with recursive links and delays;     .     * supports the activity-oriented paradigm of DES;@@ -40,24 +33,21 @@     * supports the basic constructs for the agent-based modeling;     .     * allows creating combined discrete-continuous models as all parts-      of the library are very well integrated and this is reflected-      directly in the type system;+      of the library are well integrated and this is reflected directly +      in the type system;     .-    * the arrays of simulation variables are inherently supported -      (this is mostly a feature of Haskell itself);+    * the arrays of simulation variables are inherently supported;     .     * supports the Monte-Carlo simulation;     .     * the simulation model can depend on external parameters;     .-    * uses extensively the signals to notify the model about changing -      the reference and variable values;+    * uses extensively signals for notification;     .     * allows gathering statistics in time points;     .-    * hides the technical details in high-level simulation monads-      and even one arrow (some of these monads support the recursive -      do-notation).+    * hides technical details in high-level simulation computations+      (monads and arrows).     .     Aivika itself is a light-weight engine with minimal dependencies.      However, it has additional packages Aivika Experiment [1] and @@ -78,20 +68,16 @@     .     All three libraries were tested on Linux, Windows and OS X.     .-    Please read the PDF document An Introduction to -    Aivika Simulation Library [3] for more details, although it is-    outdated and contains a very basic description only. The most powerful-    features of Aivika are not yet described in this PDF document.+    The PDF documentation is available on the Aivika Wiki [3] website.     .     \[1] <http://hackage.haskell.org/package/aivika-experiment>     .     \[2] <http://hackage.haskell.org/package/aivika-experiment-chart>     .-    \[3] <https://github.com/dsorokin/aivika/blob/master/doc/aivika.pdf>+    \[3] <https://github.com/dsorokin/aivika/wiki>     .     P.S. Aivika is actually a genuine female Mari name which is pronounced -    with stress on the last syllable as in French, but the Russians usually -    pronounce it wrong :)+    with stress on the last syllable. category:        Simulation license:         BSD3 license-file:    LICENSE@@ -118,9 +104,6 @@                      examples/TimeOut.hs                      examples/TimeOutInt.hs                      examples/TimeOutWait.hs-                     examples/README--data-files:          doc/aivika.pdf  library 
− doc/aivika.pdf

binary file changed (438695 → absent bytes)

− examples/README
@@ -1,19 +0,0 @@-More examples are bundled with packages aivika-experiment and aivika-experiment-chart. -They plot charts, save the simulation results in the CSV files and generate -HTML web pages which can be observed in your favourite Internet browser.--Some examples define a parametric Monte-Carlo simulation, after which the deviation -charts and histograms are plotted, for example.--The reason why these packages are separated is that they have more heavy dependencies-while the engine itself is very light-weight and compact. But the additional packages -should work on Linux, Windows and OS X. I tested on all three platforms.--Also you may find more examples on GitHub by the following link:--https://github.com/dsorokin/aivika-models--I'm going to add new models to that Git repository. At least, one of them will use-arrays or vectors. --July 18, 2013