packages feed

aivika-5.2: aivika.cabal

name:            aivika
version:         5.2
synopsis:        A multi-method simulation library
description:
    Aivika is a discrete event simulation (DES) framework with support of activity-oriented,
    event-oriented and process-oriented paradigms. It supports resource preemption and other
    improved simulation techniques. There is also a partial support of system dynamics and
    agent-based modelling. All the complexity is hidden under easy-to-use computations.
    . 
    The represented package is a basic simulation library optimized for sequential execution. 
    There are also packages for nested and parallel distributed simulation.
    .
    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 basis 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 unbounded and bounded queues based on strategies too;
    .
    * supports the resource preemption;
    .
    * allows defining a queue network based on streams of data (transacts);
    .
    * allows using a GPSS-like DSL with help of the additional library;
    .
    * allows simulating circuits with recursive links and delays;
    .
    * supports the activity-oriented paradigm of DES;
    .
    * supports basic constructs for the agent-based modeling such as 
      agents, states, timeout and timer handlers;
    .
    * 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, streams and arrows).
    .
    The simulation engine itself has minimal dependencies. 
    However, there are additional packages [1, 2] that offer the following 
    features:
    .
    * automating 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;
    .
    * has an extensible architecture.
    .
    The charting package has two interchangeable back-ends [3, 4],
    where one of them uses Cairo and it creates small PNG images, while another
    creates more detailed SVG files and it can be used on Windows.
    .
    There are also additional packages that allow saving the results of simulation 
    in SQL databases. Then the results can be accessed from other software applications.
    For example, it can be useful when creating flight simulators in other programming languages
    such as C# or Java.
    .
    Moreover, the method was generalized [5] and applied to 
    nested simulation [6] and parallel distributed simulation [7]. 
    .
    The libraries were tested on Linux, Windows and OS X.
    .
    The PDF documentation, installation instructions and a more full information about Aivika 
    are available on the the AivikaSoft website [8].
    .
    \[1] <http://hackage.haskell.org/package/aivika-experiment>
    .
    \[2] <http://hackage.haskell.org/package/aivika-experiment-chart>
    .
    \[3] <http://hackage.haskell.org/package/aivika-experiment-cairo>
    .
    \[4] <http://hackage.haskell.org/package/aivika-experiment-diagrams>
    .
    \[5] <http://hackage.haskell.org/package/aivika-transformers>
    .
    \[6] <http://hackage.haskell.org/package/aivika-branches>
    .
    \[7] <http://hackage.haskell.org/package/aivika-distributed>
    .
    \[8] <http://www.aivikasoft.com>
    .
    P.S. Aivika is actually a genuine female Mari name which is pronounced 
    with stress on the last syllable.
    .
category:        Simulation
license:         BSD3
license-file:    LICENSE
copyright:       (c) 2009-2017. David Sorokin <david.sorokin@gmail.com>
author:          David Sorokin
maintainer:      David Sorokin <david.sorokin@gmail.com>
homepage:        http://www.aivikasoft.com
cabal-version:   >= 1.10
build-type:      Simple
tested-with:     GHC == 8.0.2

extra-source-files:  examples/BassDiffusion.hs
                     examples/BouncingBall.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/MachineBreakdowns.hs
                     examples/Furnace.hs
                     examples/InspectionAdjustmentStations.hs
                     examples/InventorySystem.hs
                     examples/WorkStationsInSeries.hs
                     examples/QuarryOperations.hs
                     examples/TimeOut.hs
                     examples/TimeOutInt.hs
                     examples/TimeOutWait.hs
                     examples/PERT.hs
                     examples/PingPong.hs
                     examples/PortOperations.hs
                     examples/SingleLaneTraffic.hs
                     examples/RenegingFromQueue.hs
                     examples/TruckHaulingSituation.hs
                     CHANGELOG.md

library

    exposed-modules: Simulation.Aivika
                     Simulation.Aivika.Activity
                     Simulation.Aivika.Activity.Random
                     Simulation.Aivika.Agent
                     Simulation.Aivika.Arrival
                     Simulation.Aivika.Channel
                     Simulation.Aivika.Circuit
                     Simulation.Aivika.Composite
                     Simulation.Aivika.Cont
                     Simulation.Aivika.DoubleLinkedList
                     Simulation.Aivika.Dynamics
                     Simulation.Aivika.Dynamics.Extra
                     Simulation.Aivika.Dynamics.Memo
                     Simulation.Aivika.Dynamics.Memo.Unboxed
                     Simulation.Aivika.Dynamics.Random
                     Simulation.Aivika.Event
                     Simulation.Aivika.Gate
                     Simulation.Aivika.Generator
                     Simulation.Aivika.Internal.Cont
                     Simulation.Aivika.Internal.Dynamics
                     Simulation.Aivika.Internal.Event
                     Simulation.Aivika.Internal.Parameter
                     Simulation.Aivika.Internal.Process
                     Simulation.Aivika.Internal.Simulation
                     Simulation.Aivika.Internal.Specs
                     Simulation.Aivika.Internal.Arrival
                     Simulation.Aivika.Net
                     Simulation.Aivika.Net.Random
                     Simulation.Aivika.Operation
                     Simulation.Aivika.Operation.Random
                     Simulation.Aivika.Parameter
                     Simulation.Aivika.Parameter.Random
                     Simulation.Aivika.PriorityQueue
                     Simulation.Aivika.PriorityQueue.Pure
                     Simulation.Aivika.Process
                     Simulation.Aivika.Process.Random
                     Simulation.Aivika.Processor
                     Simulation.Aivika.Processor.Random
                     Simulation.Aivika.Processor.RoundRobbin
                     Simulation.Aivika.Queue
                     Simulation.Aivika.Queue.Base
                     Simulation.Aivika.Queue.Infinite
                     Simulation.Aivika.Queue.Infinite.Base
                     Simulation.Aivika.QueueStrategy
                     Simulation.Aivika.Ref
                     Simulation.Aivika.Ref.Base
                     Simulation.Aivika.Resource
                     Simulation.Aivika.Resource.Base
                     Simulation.Aivika.Resource.Preemption
                     Simulation.Aivika.Resource.Preemption.Base
                     Simulation.Aivika.Results.Locale
                     Simulation.Aivika.Results.Transform
                     Simulation.Aivika.Results
                     Simulation.Aivika.Results.IO
                     Simulation.Aivika.Server
                     Simulation.Aivika.Server.Random
                     Simulation.Aivika.Signal
                     Simulation.Aivika.Signal.Random
                     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.Transform.Extra
                     Simulation.Aivika.Transform.Memo
                     Simulation.Aivika.Transform.Memo.Unboxed
                     Simulation.Aivika.Unboxed
                     Simulation.Aivika.Var
                     Simulation.Aivika.Var.Unboxed
                     Simulation.Aivika.Vector
                     Simulation.Aivika.Vector.Unboxed

    build-depends:   base >= 4.6.0.0 && < 6,
                     mtl >= 2.1.1,
                     array >= 0.3.0.0,
                     containers >= 0.4.0.0,
                     random >= 1.0.0.3,
                     mwc-random >= 0.13.0.0,
                     vector >= 0.10.0.1,
                     deepseq >= 1.1.0.0,
                     binary >= 0.6.4.0

    other-extensions:   FlexibleContexts,
                        FlexibleInstances,
                        UndecidableInstances,
                        BangPatterns,
                        RecursiveDo,
                        Arrows,
                        MultiParamTypeClasses,
                        FunctionalDependencies,
                        ExistentialQuantification,
                        TypeFamilies,
                        DeriveDataTypeable,
                        DeriveGeneric,
                        TypeSynonymInstances,
                        RankNTypes,
                        OverlappingInstances
                     
    ghc-options:     -O2

    default-language:   Haskell2010

source-repository head

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