Transformers for the Aivika simulation library http://www.aivikasoft.com
|Latest on Hackage:||5.7|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
This package is a generalization of the aivika  simulation library with extensive use of monad transformers and type families. It can be applied for nested simulation  and parallel distributed simulation .
Unlike sequential simulation, the distributed simulation is more difficult for implementing the simulation experiments by the Monte-Carlo method. Therefore, there are additional packages that allow saving the results of distributed simulation in SQL databases and only then the simulation reports are generated. These reports are HTML pages with charts, histograms, links to CSV tables, statistics summary and so on.
This method can be used not only for the parallel distributed simulation, but also for other simulation models created with help of the generalized version of the Aivika simulation library. Please consult the AivikaSoft  website for more details.
Implemented MonadMask and MonadCatch for basic simulation computations.
Lars Kuhtz added the support of GHC 8.4.
Added the 4th order Runge-Kutta 3/8-method.
Added experimental functions delayByDT and delayIByDT.
A more correct treating of the stop time. Earlier, the final integration time point was used instead of the stop time in some functions.
Increased the speed of simulation.
Introduced the result source titles, which can be useful when plotting the charts.
Added functions newSignalInTimeGrid and timeGrid.
Using the mwc-random package for generating random numbers by default.
Includes changes destined for Aivika Exension Pack.
Minor changes in the resource preemption statistics.
Added the statistics reset.
Added the Composite monad transformer.
Added the Channel computation.
Breaking change: modified signatures of functions signalStream and streamSignal.
Breaking change: the signalProcessor function is replaced with channelProcessor.
Breaking change: the processorSignaling function is replaced with processorChannel.
Added module Signal.Random.
Added functions arrivalTimerSignal and arrivalTimerChannel.
Added functions queuedSignalStream, queuedProcessorChannel and queuedChannelProcessor.
Removed the MonadTemplate type class as it often caused overlapping family data instances.
Updated module DoubleLinkedList.
Breaking change: arrows Net and Processor are trying to perform computations in parallel as possible, when using the proc notation. Earlier they executed sequentially.