aivika: A multi-paradigm simulation library
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users.
- Exposed modules use unallocated top-level names: Simulation
Aivika is a multi-paradigm simulation library with a strong emphasis on Discrete Event Simulation (DES) and System Dynamics (SD).
The library has the following features:
allows defining recursive stochastic differential equations of System Dynamics (unordered as in maths via the recursive do-notation);
supports the event-driven paradigm of DES as a basic core for implementing other paradigms;
supports extensively the process-oriented paradigm of DES with an ability to resume, suspend and cancel the discontinuous processes;
allows working with the resources based on specified queue strategies (FCFS/FIFO, LCFS/LIFO, SIRO, static priorities and so on);
allows customizing the infinite and finite queues based on strategies too;
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 simulating circuits with recursive links and delays;
supports the activity-oriented paradigm of DES;
supports the basic constructs for the agent-based modeling;
allows creating combined discrete-continuous models as all parts of the library are well integrated and this is reflected directly in the type system;
the arrays of simulation variables are inherently supported;
supports the Monte-Carlo simulation;
the simulation model can depend on external parameters;
uses extensively signals for notification;
allows gathering statistics in time points;
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 Aivika Experiment Chart [2] that offer the following features:
automating the simulation experiments;
saving the results in CSV files;
plotting the deviation chart by rule 3-sigma, histogram, time series, XY chart;
collecting the summary of statistical data;
parallel execution of the Monte-Carlo simulation;
have an extensible architecture.
All three libraries were tested on Linux, Windows and OS X.
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/wiki
P.S. Aivika is actually a genuine female Mari name which is pronounced with stress on the last syllable.
Properties
Versions | 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5, 0.5.1, 0.5.4, 0.6, 0.6.1, 0.7, 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 2.0, 2.1, 3.0, 3.1, 4.0, 4.0, 4.0.1, 4.0.3, 4.1, 4.1.1, 4.2, 4.3, 4.3.1, 4.3.2, 4.3.3, 4.3.4, 4.3.5, 4.5, 4.6, 5.0.1, 5.1, 5.2, 5.3, 5.3.1, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.9.1, 6.0.0, 6.1, 6.1.1 |
---|---|
Change log | CHANGELOG.md |
Dependencies | array (>=0.3.0.0), base (>=4.5.0.0 && <6), containers (>=0.4.0.0), mtl (>=2.1.1), random (>=1.0.0.3), vector (>=0.10.0.1) [details] |
License | BSD-3-Clause |
Copyright | (c) 2009-2015. David Sorokin <david.sorokin@gmail.com> |
Author | David Sorokin |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Category | Simulation |
Home page | http://github.com/dsorokin/aivika |
Source repo | head: git clone https://github.com/dsorokin/aivika |
Uploaded | by DavidSorokin at 2015-03-28T05:01:44Z |
Modules
[Index]
- Simulation
- Simulation.Aivika
- Simulation.Aivika.Activity
- Simulation.Aivika.Agent
- Simulation.Aivika.Arrival
- Simulation.Aivika.Circuit
- Simulation.Aivika.Cont
- Simulation.Aivika.DoubleLinkedList
- Simulation.Aivika.Dynamics
- Simulation.Aivika.Event
- Simulation.Aivika.Generator
- Simulation.Aivika.Net
- Simulation.Aivika.Parameter
- Simulation.Aivika.PriorityQueue
- Simulation.Aivika.Process
- Simulation.Aivika.Processor
- Simulation.Aivika.Queue
- Simulation.Aivika.QueueStrategy
- Simulation.Aivika.Ref
- Simulation.Aivika.Resource
- Simulation.Aivika.Results
- Simulation.Aivika.Server
- Simulation.Aivika.Signal
- Simulation.Aivika.Simulation
- Simulation.Aivika.Specs
- Simulation.Aivika.Statistics
- Simulation.Aivika.Stream
- Simulation.Aivika.SystemDynamics
- Simulation.Aivika.Table
- Simulation.Aivika.Task
- Simulation.Aivika.Transform
- Simulation.Aivika.Unboxed
- Simulation.Aivika.Var
- Simulation.Aivika.Vector
- Simulation.Aivika
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
haste-inst | The package is built using haste-inst | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- aivika-4.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees