packages feed

aivika-1.2: aivika.cabal

name:            aivika
version:         1.2
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.
    .
    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 (you can define your own behaviour
      or use the predefined queue strategies);
    .
    * allows customizing the queues (you can define your own behaviour
      or use the predefined queue strategies);
    .
    * allows defining an infinite stream of data based on the
      process-oriented computation, 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;
    .
    * 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 very 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);
    .
    * 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;
    .
    * 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).
    .
    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.
    .
    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.
    .
    \[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>
    .
    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 :)
category:        Simulation
license:         BSD3
license-file:    LICENSE
copyright:       (c) 2009-2014. David Sorokin <david.sorokin@gmail.com>
author:          David Sorokin
maintainer:      David Sorokin <david.sorokin@gmail.com>
homepage:        http://github.com/dsorokin/aivika
cabal-version:   >= 1.6
build-type:      Simple
tested-with:     GHC == 7.6.3

extra-source-files:  examples/BassDiffusion.hs
                     examples/ChemicalReaction.hs
                     examples/ChemicalReactionCircuit.hs
                     examples/FishBank.hs
                     examples/MachRep1.hs
                     examples/MachRep1EventDriven.hs
                     examples/MachRep1TimeDriven.hs
                     examples/MachRep2.hs
                     examples/MachRep3.hs
                     examples/Furnace.hs
                     examples/InspectionAdjustmentStations.hs
                     examples/WorkStationsInSeries.hs
                     examples/TimeOut.hs
                     examples/TimeOutInt.hs
                     examples/TimeOutWait.hs
                     examples/README

data-files:          doc/aivika.pdf

library

    exposed-modules: Simulation.Aivika
                     Simulation.Aivika.Agent
                     Simulation.Aivika.Arrival
                     Simulation.Aivika.Circuit
                     Simulation.Aivika.Cont
                     Simulation.Aivika.DoubleLinkedList
                     Simulation.Aivika.Dynamics
                     Simulation.Aivika.Dynamics.Fold
                     Simulation.Aivika.Dynamics.Interpolate
                     Simulation.Aivika.Dynamics.Memo
                     Simulation.Aivika.Dynamics.Memo.Unboxed
                     Simulation.Aivika.Dynamics.Random
                     Simulation.Aivika.Event
                     Simulation.Aivika.Generator
                     Simulation.Aivika.Parameter
                     Simulation.Aivika.Parameter.Random
                     Simulation.Aivika.PriorityQueue
                     Simulation.Aivika.Process
                     Simulation.Aivika.Processor
                     Simulation.Aivika.Processor.RoundRobbin
                     Simulation.Aivika.Queue
                     Simulation.Aivika.Queue.Infinite
                     Simulation.Aivika.QueueStrategy
                     Simulation.Aivika.Ref
                     Simulation.Aivika.Ref.Light
                     Simulation.Aivika.Resource
                     Simulation.Aivika.Server
                     Simulation.Aivika.Signal
                     Simulation.Aivika.Simulation
                     Simulation.Aivika.Specs
                     Simulation.Aivika.Statistics
                     Simulation.Aivika.Statistics.Accumulator
                     Simulation.Aivika.Stream
                     Simulation.Aivika.Stream.Random
                     Simulation.Aivika.SystemDynamics
                     Simulation.Aivika.Table
                     Simulation.Aivika.Task
                     Simulation.Aivika.Transform
                     Simulation.Aivika.Unboxed
                     Simulation.Aivika.Var
                     Simulation.Aivika.Var.Unboxed
                     Simulation.Aivika.Vector
                     Simulation.Aivika.Vector.Unboxed

    other-modules:   Simulation.Aivika.Internal.Cont
                     Simulation.Aivika.Internal.Dynamics
                     Simulation.Aivika.Internal.Event
                     Simulation.Aivika.Internal.Parameter
                     Simulation.Aivika.Internal.Process
                     Simulation.Aivika.Internal.Signal
                     Simulation.Aivika.Internal.Simulation
                     Simulation.Aivika.Internal.Specs
                     Simulation.Aivika.Internal.Arrival
                     
    build-depends:   base >= 4.5.0.0 && < 6,
                     mtl >= 2.1.1,
                     array >= 0.3.0.0,
                     containers >= 0.4.0.0,
                     random >= 1.0.0.3

    extensions:      FlexibleContexts,
                     BangPatterns,
                     RecursiveDo,
                     Arrows,
                     MultiParamTypeClasses,
                     FunctionalDependencies
                     
    ghc-options:     -O2

source-repository head

    type:     git
    location: https://github.com/dsorokin/aivika