# API Reference


## Classes


Main classes provided by the package


[distributions.Bernoulli](distributions.Bernoulli.md#sim_tools.distributions.Bernoulli)  
Bernoulli distribution implementation.

[distributions.Beta](distributions.Beta.md#sim_tools.distributions.Beta)  
Beta distribution implementation.

[distributions.CombinationDistribution](distributions.CombinationDistribution.md#sim_tools.distributions.CombinationDistribution)  
Combination distribution implementation.

[distributions.DiscreteEmpirical](distributions.DiscreteEmpirical.md#sim_tools.distributions.DiscreteEmpirical)  
DiscreteEmpirical distribution implementation.

[distributions.DistributionRegistry](distributions.DistributionRegistry.md#sim_tools.distributions.DistributionRegistry)  
Registry for probability distribution classes with batch creation

[distributions.Erlang](distributions.Erlang.md#sim_tools.distributions.Erlang)  
Erlang distribution implementation.

[distributions.ErlangK](distributions.ErlangK.md#sim_tools.distributions.ErlangK)  
Erlang distribution where k and theta are specified.

[distributions.Exponential](distributions.Exponential.md#sim_tools.distributions.Exponential)  
Exponential distribution implementation.

[distributions.FixedDistribution](distributions.FixedDistribution.md#sim_tools.distributions.FixedDistribution)  
Fixed distribution implementation.

[distributions.Gamma](distributions.Gamma.md#sim_tools.distributions.Gamma)  
Gamma distribution implementation with shape (alpha) and scale (beta)

[distributions.GroupedContinuousEmpirical](distributions.GroupedContinuousEmpirical.md#sim_tools.distributions.GroupedContinuousEmpirical)  
Continuous Empirical Distribution for Grouped Data implementation.

[distributions.Hyperexponential](distributions.Hyperexponential.md#sim_tools.distributions.Hyperexponential)  
Hyperexponential distribution implementation.

[distributions.Lognormal](distributions.Lognormal.md#sim_tools.distributions.Lognormal)  
Lognormal distribution implementation.

[distributions.Normal](distributions.Normal.md#sim_tools.distributions.Normal)  
Normal distribution implementation with optional truncation.

[distributions.PearsonV](distributions.PearsonV.md#sim_tools.distributions.PearsonV)  
Pearson Type V distribution implementation (inverse Gamma distribution).

[distributions.PearsonVI](distributions.PearsonVI.md#sim_tools.distributions.PearsonVI)  
Pearson Type VI distribution implementation (inverted beta distribution).

[distributions.Poisson](distributions.Poisson.md#sim_tools.distributions.Poisson)  
Poisson distribution implementation.

[distributions.RawContinuousEmpirical](distributions.RawContinuousEmpirical.md#sim_tools.distributions.RawContinuousEmpirical)  
Continuous Empirical Distribution for Raw Data using Law and Kelton's

[distributions.RawDiscreteEmpirical](distributions.RawDiscreteEmpirical.md#sim_tools.distributions.RawDiscreteEmpirical)  
Raw Empirical distribution implementation.

[distributions.Triangular](distributions.Triangular.md#sim_tools.distributions.Triangular)  
Triangular distribution implementation.

[distributions.TruncatedDistribution](distributions.TruncatedDistribution.md#sim_tools.distributions.TruncatedDistribution)  
Truncated Distribution implementation.

[distributions.Uniform](distributions.Uniform.md#sim_tools.distributions.Uniform)  
Uniform distribution implementation.

[distributions.Weibull](distributions.Weibull.md#sim_tools.distributions.Weibull)  
Weibull distribution implementation.

[output_analysis.OnlineStatistics](output_analysis.OnlineStatistics.md#sim_tools.output_analysis.OnlineStatistics)  
Computes running sample mean and variance using Welford's algorithm.

[output_analysis.ReplicationTabulizer](output_analysis.ReplicationTabulizer.md#sim_tools.output_analysis.ReplicationTabulizer)  
Observer class for recording replication results from an

[output_analysis.ReplicationsAlgorithm](output_analysis.ReplicationsAlgorithm.md#sim_tools.output_analysis.ReplicationsAlgorithm)  
Automatically determine the number of simulation replications needed

[time_dependent.DistributionRegistry](time_dependent.DistributionRegistry.md#sim_tools.time_dependent.DistributionRegistry)  
Registry for probability distribution classes with batch creation

[time_dependent.NSPPThinning](time_dependent.NSPPThinning.md#sim_tools.time_dependent.NSPPThinning)  
Non Stationary Poisson Process via Thinning.


## Abstract Classes


Abstract base classes


[trace.Traceable](trace.Traceable.md#sim_tools.trace.Traceable)  
Provides basic trace functionality for a process to subclass.


## Protocols


Protocol / structural-typing interfaces


[distributions.Distribution](distributions.Distribution.md#sim_tools.distributions.Distribution)  
Distribution protocol defining the interface for probability distributions.

[output_analysis.AlgorithmObserver](output_analysis.AlgorithmObserver.md#sim_tools.output_analysis.AlgorithmObserver)  
Protocol for observer classes used in ReplicationsAlgorithm.

[output_analysis.ReplicationObserver](output_analysis.ReplicationObserver.md#sim_tools.output_analysis.ReplicationObserver)  
Interface (protocol) for observers that track simulation replication

[output_analysis.ReplicationsAlgorithmModelAdapter](output_analysis.ReplicationsAlgorithmModelAdapter.md#sim_tools.output_analysis.ReplicationsAlgorithmModelAdapter)  
Adapter pattern for the "Replications Algorithm".


## Functions


Utility functions


[datasets.load_banks_et_al_nspp()](datasets.load_banks_et_al_nspp.md#sim_tools.datasets.load_banks_et_al_nspp)  
Load example Non-stationary poisson process data from Banks et al.

[distributions.is_integer()](distributions.is_integer.md#sim_tools.distributions.is_integer)  
Validates that a value is an integer.

[distributions.is_non_negative()](distributions.is_non_negative.md#sim_tools.distributions.is_non_negative)  
Validates that a value is greater than or equal to 0.

[distributions.is_numeric()](distributions.is_numeric.md#sim_tools.distributions.is_numeric)  
Validates that a value is a number (int or float).

[distributions.is_ordered_pair()](distributions.is_ordered_pair.md#sim_tools.distributions.is_ordered_pair)  
Validates that two values are in ascending order (low \< high).

[distributions.is_ordered_triplet()](distributions.is_ordered_triplet.md#sim_tools.distributions.is_ordered_triplet)  
Validates that three values are in ascending order.

[distributions.is_positive()](distributions.is_positive.md#sim_tools.distributions.is_positive)  
Validates that a value is positive (\> 0).

[distributions.is_positive_array()](distributions.is_positive_array.md#sim_tools.distributions.is_positive_array)  
Validates that all elements in the array are positive.

[distributions.is_probability()](distributions.is_probability.md#sim_tools.distributions.is_probability)  
Validates that a value is a valid probability (between 0 and 1).

[distributions.is_probability_vector()](distributions.is_probability_vector.md#sim_tools.distributions.is_probability_vector)  
Validates that the array is a valid probability vector.

[distributions.spawn_seeds()](distributions.spawn_seeds.md#sim_tools.distributions.spawn_seeds)  
Generate multiple statistically independent random seeds.

[distributions.validate()](distributions.validate.md#sim_tools.distributions.validate)  
Applies multiple validators to a value.

[output_analysis.confidence_interval_method()](output_analysis.confidence_interval_method.md#sim_tools.output_analysis.confidence_interval_method)  
Determine the minimum number of simulation replications required to achieve

[output_analysis.plotly_confidence_interval_method()](output_analysis.plotly_confidence_interval_method.md#sim_tools.output_analysis.plotly_confidence_interval_method)  
Create an interactive Plotly visualisation of the cumulative mean and

[time_dependent.nspp_plot()](time_dependent.nspp_plot.md#sim_tools.time_dependent.nspp_plot)  
Generate a matplotlib chart to visualise a non-stationary poisson process

[time_dependent.nspp_simulation()](time_dependent.nspp_simulation.md#sim_tools.time_dependent.nspp_simulation)  
Generate a pandas dataframe that contains multiple replications of


## Constants


Module-level constants and data


[datasets.FILE_NAME_NSPP_1](datasets.FILE_NAME_NSPP_1.md#sim_tools.datasets.FILE_NAME_NSPP_1)  

[datasets.PATH_NSPP_1](datasets.PATH_NSPP_1.md#sim_tools.datasets.PATH_NSPP_1)  

[distributions.T](distributions.T.md#sim_tools.distributions.T)  

[output_analysis.ALG_INTERFACE_ERROR](output_analysis.ALG_INTERFACE_ERROR.md#sim_tools.output_analysis.ALG_INTERFACE_ERROR)  

[output_analysis.OBSERVER_INTERFACE_ERROR](output_analysis.OBSERVER_INTERFACE_ERROR.md#sim_tools.output_analysis.OBSERVER_INTERFACE_ERROR)  

[trace.CONFIG_ERROR](trace.CONFIG_ERROR.md#sim_tools.trace.CONFIG_ERROR)  

[trace.DEFAULT_DEBUG](trace.DEFAULT_DEBUG.md#sim_tools.trace.DEFAULT_DEBUG)  


## Other


Additional exports


[ovs](ovs.md#sim_tools.ovs)
