Adding poisson_timer and brownian_motion to new csp.random module #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In order to write more convincing examples for more complex cases, we need a timer that ticks at irregular (pseudo-random) intervals. Furthermore, we also need something that ticks random floats and numpy arrays to simulate live data streams.
Rather than keep this code in the examples folder, I chose to put it in csp.random so that it could be more widely used by others for examples, testing or as a building block in csp applications. To illustrate real "Monte Carlo" simulation use cases of csp, I implemented the random timer as a proper Poisson process and the random array generator as a proper multi-dimensional Brownian Motion, each with time-varying input parameters (which is relatively easy in csp). These are the two most common building blocks for stochastic processes.