packages feed

aivika-experiment-chart 3.0 → 3.1

raw patch · 12 files changed

+63/−62 lines, 12 filesdep ~aivikadep ~aivika-experimentPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aivika, aivika-experiment

API changes (from Hackage documentation)

Files

LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2012, 2013, 2014 David Sorokin <david.sorokin@gmail.com>+Copyright (c) 2012-2015 David Sorokin <david.sorokin@gmail.com>  All rights reserved. 
Simulation/Aivika/Experiment/Chart.hs view
@@ -1,7 +1,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental
Simulation/Aivika/Experiment/Chart/DeviationChartView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.DeviationChartView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -208,11 +208,11 @@          rs2     = deviationChartRightYSeries view $                    deviationChartTransform view $                    experimentResults expdata-         exts1   = extractDoubleStatsEitherResults rs1-         exts2   = extractDoubleStatsEitherResults rs2+         exts1   = resultsToDoubleStatsEitherValues rs1+         exts2   = resultsToDoubleStatsEitherValues rs2          exts    = exts1 ++ exts2-         names1  = map resultExtractName exts1-         names2  = map resultExtractName exts2+         names1  = map resultValueName exts1+         names2  = map resultValueName exts2          names   = map Left names1 ++ map Right names2          signals = experimentPredefinedSignals expdata          signal  = resultSignalInIntegTimes signals@@ -220,7 +220,7 @@      results <- liftIO $ requireDeviationChartResults st names      let stats   = deviationChartStats results      handleSignal signal $ \_ ->-       do xs <- forM exts resultExtractData+       do xs <- forM exts resultValueData           i  <- liftDynamics integIteration           liftIO $             forM_ (zip xs stats) $ \(x, stats) ->
Simulation/Aivika/Experiment/Chart/FinalHistogramView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.FinalHistogramView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -188,8 +188,8 @@          rs      = finalHistogramSeries view $                    finalHistogramTransform view $                    experimentResults expdata-         exts    = extractDoubleListResults rs-         names   = map resultExtractName exts+         exts    = resultsToDoubleListValues rs+         names   = map resultValueName exts          signals = experimentPredefinedSignals expdata          signal  = filterSignalM (const predicate) $                    resultSignalInStopTime signals@@ -197,7 +197,7 @@      results <- liftIO $ requireFinalHistogramResults st names      let values = finalHistogramValues results      handleSignal signal $ \_ ->-       do xs <- forM exts resultExtractData+       do xs <- forM exts resultValueData           liftIO $             forM_ (zip xs values) $ \(x, values) ->             modifyMRef_ values $ return . (++) x
Simulation/Aivika/Experiment/Chart/FinalXYChartView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.FinalXYChartView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -219,15 +219,15 @@                    finalXYChartTransform view $                    experimentResults expdata          ext0    =-           case extractDoubleResults rs0 of+           case resultsToDoubleValues rs0 of              [x] -> x              _   -> error "Expected to see a single X series: simulateFinalXYChart"-         exts1   = extractDoubleResults rs1-         exts2   = extractDoubleResults rs2+         exts1   = resultsToDoubleValues rs1+         exts2   = resultsToDoubleValues rs2          exts    = exts1 ++ exts2-         name0   = resultExtractName ext0-         names1  = map resultExtractName exts1-         names2  = map resultExtractName exts2+         name0   = resultValueName ext0+         names1  = map resultValueName exts1+         names2  = map resultValueName exts2          names   = map Left names1 ++ map Right names2          signals = experimentPredefinedSignals expdata          signal  = filterSignalM (const predicate) $@@ -238,8 +238,8 @@      results <- liftIO $ requireFinalXYChartResults st name0 names      let xys = finalXYChartXY results      handleSignal signal $ \_ ->-       do x  <- resultExtractData ext0-          ys <- forM exts resultExtractData+       do x  <- resultValueData ext0+          ys <- forM exts resultValueData           i  <- liftParameter simulationIndex           liftIO $             forM_ (zip ys xys) $ \(y, xy) ->
Simulation/Aivika/Experiment/Chart/HistogramView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.HistogramView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -182,8 +182,8 @@          rs      = histogramSeries view $                    histogramTransform view $                    experimentResults expdata-         exts    = extractDoubleListResults rs-         names   = map resultExtractName exts+         exts    = resultsToDoubleListValues rs+         names   = map resultValueName exts          signals = experimentPredefinedSignals expdata          n = experimentRunCount $ histogramExperiment st          build   = histogramBuild view@@ -210,7 +210,7 @@                 runPlotTitle      hs <- forM exts $ \ext ->        newSignalHistory $-       mapSignalM (const $ resultExtractData ext) $+       mapSignalM (const $ resultValueData ext) $        filterSignalM (const predicate) $        resultSignalInIntegTimes signals      return $
Simulation/Aivika/Experiment/Chart/TimeSeriesView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.TimeSeriesView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -190,8 +190,8 @@          rs2     = timeSeriesRightYSeries view $                    timeSeriesTransform view $                    experimentResults expdata-         exts1   = extractDoubleResults rs1-         exts2   = extractDoubleResults rs2+         exts1   = resultsToDoubleValues rs1+         exts2   = resultsToDoubleValues rs2          signals = experimentPredefinedSignals expdata          n = experimentRunCount $ timeSeriesExperiment st          width   = timeSeriesWidth view@@ -221,12 +221,12 @@            let transform () =                  do x <- predicate                     if x-                      then resultExtractData ext+                      then resultValueData ext                       else return (1/0)  -- the infinite values will be ignored then            in newSignalHistory $               mapSignalM transform $               pureResultSignal signals $-              resultExtractSignal ext+              resultValueSignal ext      hs1 <- inputHistory exts1      hs2 <- inputHistory exts2      return $@@ -240,7 +240,7 @@                           toPlot $                           plotLines $                           plot_lines_values .~ filterPlotLinesValues (zip (elems ts) (elems xs)) $-                          plot_lines_title .~ resultExtractName ext $+                          plot_lines_title .~ resultValueName ext $                           def                    return (ps, drop (length hs) plotLineTails)           (ps1, plotLineTails) <- plots hs1 exts1 (tails plotLines)
Simulation/Aivika/Experiment/Chart/Types.hs view
@@ -1,7 +1,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.Types--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental
Simulation/Aivika/Experiment/Chart/Utils.hs view
@@ -1,7 +1,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.Utils--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental
Simulation/Aivika/Experiment/Chart/XYChartView.hs view
@@ -3,7 +3,7 @@  -- | -- Module     : Simulation.Aivika.Experiment.Chart.XYChartView--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com> -- License    : BSD3 -- Maintainer : David Sorokin <david.sorokin@gmail.com> -- Stability  : experimental@@ -203,11 +203,11 @@                    xyChartTransform view $                    experimentResults expdata          ext0    =-           case extractDoubleResults rs0 of+           case resultsToDoubleValues rs0 of              [x] -> x              _   -> error "Expected to see a single X series: simulateXYChart"-         exts1   = extractDoubleResults rs1-         exts2   = extractDoubleResults rs2+         exts1   = resultsToDoubleValues rs1+         exts2   = resultsToDoubleValues rs2          signals = experimentPredefinedSignals expdata          n = experimentRunCount $ xyChartExperiment st          width   = xyChartWidth view@@ -234,15 +234,15 @@                 runPlotTitle          inputHistory exts =             forM exts $ \ext ->-           let x = resultExtractData ext0-               y = resultExtractData ext+           let x = resultValueData ext0+               y = resultValueData ext                transform () =                  do p <- predicate                     if p                       then liftM2 (,) x y                       else return (1/0, 1/0)  -- such values will be ignored then-               signalx = resultExtractSignal ext0-               signaly = resultExtractSignal ext+               signalx = resultValueSignal ext0+               signaly = resultValueSignal ext            in newSignalHistory $               mapSignalM transform $               pureResultSignal signals $@@ -260,7 +260,7 @@                           toPlot $                           plotLines $                           plot_lines_values .~ filterPlotLinesValues (elems zs) $-                          plot_lines_title .~ resultExtractName ext $+                          plot_lines_title .~ resultValueName ext $                           def                    return (ps, drop (length hs) plotLineTails)                (ps1, plotLineTails) <- plots hs1 exts1 (tails plotLines)@@ -269,7 +269,7 @@               ps2' = map Right ps2               ps'  = ps1' ++ ps2'               axis = plotBottomAxis $-                      laxis_title .~ resultExtractName ext0 $+                      laxis_title .~ resultValueName ext0 $                       def               updateLeftAxis =                 if null ps1
aivika-experiment-chart.cabal view
@@ -1,5 +1,5 @@ name:            aivika-experiment-chart-version:         3.0+version:         3.1 synopsis:        Simulation experiments with charting for the Aivika library description:     This package complements the Aivika and Aivika Experiment packages with@@ -15,7 +15,7 @@ category:        Simulation license:         BSD3 license-file:    LICENSE-copyright:       (c) 2012-2014. David Sorokin <david.sorokin@gmail.com>+copyright:       (c) 2012-2015. David Sorokin <david.sorokin@gmail.com> author:          David Sorokin maintainer:      David Sorokin <david.sorokin@gmail.com> homepage:        http://github.com/dsorokin/aivika-experiment-chart@@ -91,8 +91,8 @@                      lens >= 3.9,                      data-default-class < 0.1,                      colour >= 2.3.3,-                     aivika >= 3.0,-                     aivika-experiment >= 3.0+                     aivika >= 3.1,+                     aivika-experiment >= 3.1      extensions:      MultiParamTypeClasses 
examples/BassDiffusion/Model.hs view
@@ -1,14 +1,16 @@ +-- This is the Bass Diffusion model solved with help of +-- the Agent-based Modeling as described in the AnyLogic +-- documentation.+ module Model (model) where -import System.Random import Data.Array  import Control.Monad import Control.Monad.Trans  import Simulation.Aivika-import Simulation.Aivika.Experiment  n = 100    -- the number of agents @@ -36,13 +38,13 @@           return (i, p)      return $ array (1, n) list      -definePerson :: Person -> Array Int Person -> Ref Int -> Ref Int -> Simulation ()+definePerson :: Person -> Array Int Person -> Ref Int -> Ref Int -> Event () definePerson p ps potentialAdopters adopters =   do setStateActivation (personPotentialAdopter p) $        do modifyRef potentialAdopters $ \a -> a + 1           -- add a timeout           t <- liftParameter $-               randomExponential (1 / advertisingEffectiveness)+               randomExponential (1 / advertisingEffectiveness)            let st  = personPotentialAdopter p               st' = personAdopter p           addTimeout st t $ selectState st'@@ -52,7 +54,8 @@           let t = liftParameter $                   randomExponential (1 / contactRate)    -- many times!           addTimer (personAdopter p) t $-            do i <- liftIO $ getStdRandom $ randomR (1, n)+            do i <- liftParameter $+                    randomUniformInt 1 n                let p' = ps ! i                st <- selectedState (personAgent p')                when (st == Just (personPotentialAdopter p')) $@@ -64,7 +67,7 @@      setStateDeactivation (personAdopter p) $        modifyRef adopters $ \a -> a - 1         -definePersons :: Array Int Person -> Ref Int -> Ref Int -> Simulation ()+definePersons :: Array Int Person -> Ref Int -> Ref Int -> Event () definePersons ps potentialAdopters adopters =   forM_ (elems ps) $ \p ->    definePerson p ps potentialAdopters adopters@@ -81,14 +84,12 @@   do potentialAdopters <- newRef 0      adopters <- newRef 0      ps <- createPersons-     definePersons ps potentialAdopters adopters      runEventInStartTime $-       activatePersons ps-     return $+       do definePersons ps potentialAdopters adopters+          activatePersons ps+     return $         results-       [resultSource-        "potentialAdopters" "Potential Adopters"-        potentialAdopters,-        resultSource-        "adopters" "Adopters"-        adopters]+       [resultSource +        "potentialAdopters" "potential adopters" potentialAdopters,+        resultSource +        "adopters" "adopters" adopters]