21#ifndef DISPERSION_ENGINE_H
22#define DISPERSION_ENGINE_H
86 void initialize(
int seed,
int run,
int nruns=1000);
103 double default_val,
double min,
double max);
112 double default_val,
double mean,
double stdev);
129 int _hash(
int run_number,
int seed);
Class for inter-object communication.
Definition DataIO.hpp:60
Base class for object organization.
Definition GraphTreeObject.h:98
const char * name() const
Getter and setter for object name.
Definition GraphTreeObject.h:135
Executive derivation specifically to run flight systems.
Definition FlightExecutive.h:46
UniformDispersion & createUniformInputDispersion(const std::string &name, double default_val, double min, double max)
Function to generate a uniform input dispersion.
Definition DispersionEngine.cpp:72
int hash_seed
Definition DispersionEngine.h:123
int _hash_value
Definition DispersionEngine.h:132
void setNormalValue(NormalDispersion *dispersion_ptr)
Function to set the value of a dispersion.
Definition DispersionEngine.cpp:57
NormalRandom< double > * _normal_dist
Definition DispersionEngine.h:146
~DispersionEngine()
Definition DispersionEngine.cpp:20
NormalDispersion & createNormalInputDispersion(const std::string &name, double default_val, double mean, double stdev)
Function to generate a normal input dispersion.
Definition DispersionEngine.cpp:86
int _nruns
Definition DispersionEngine.h:138
UniformRandom< double > * _uniform_dist
Definition DispersionEngine.h:145
int _hash(int run_number, int seed)
Function to generate a hashed seed from run number and seed.
Definition DispersionEngine.cpp:116
int _run_number
Definition DispersionEngine.h:135
std::vector< UniformDispersion * > _uniform_dispersions
Definition DispersionEngine.h:141
void initialize(int seed, int run, int nruns=1000)
Function to initialize the dispersion engine.
Definition DispersionEngine.cpp:31
DispersionEngine(warpos::FlightExecutive &e)
Definition DispersionEngine.h:79
warpos::FlightExecutive & exc
Definition DispersionEngine.h:120
Dispersion * operator()(const std::string &query)
Call operator to get pointer to dispersion matching string.
Definition DispersionEngine.cpp:100
std::vector< NormalDispersion * > _normal_dispersions
Definition DispersionEngine.h:142
void setUniformValue(UniformDispersion *dispersion_ptr)
Function to set the value of a dispersion.
Definition DispersionEngine.cpp:42
Class to generate random numbers according to normal distribution.
Definition NormalRandom.hpp:40
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
const int HASH_MULTIPLIER
Definition DispersionEngine.h:63
int min(T *array, unsigned int size, T &result)
Definition statistics.hpp:85
int stdev(T *array, unsigned int size, T &result)
Definition statistics.hpp:55
int mean(T *array, unsigned int size, T &result)
Definition statistics.hpp:25
const int HASH_ADDER
Definition DispersionEngine.h:64
int max(T *array, unsigned int size, T &result)
Definition statistics.hpp:67
Struct to store all data associated with dispersion.
Definition DispersionEngine.h:35
clockwerk::DataIO< double > value
Definition DispersionEngine.h:39
clockwerk::DataIO< double > & operator()()
Definition DispersionEngine.h:40
double default_val
Definition DispersionEngine.h:38
Dispersion(std::string nme, double d_v, clockwerk::GraphTreeObject *parent)
Definition DispersionEngine.h:36
Struct to store all data associated with normal dispersion.
Definition DispersionEngine.h:56
NormalDispersion(std::string nme, double d_v, double mn, double sd, clockwerk::GraphTreeObject *parent)
Definition DispersionEngine.h:57
double mean
Definition DispersionEngine.h:59
double stdev
Definition DispersionEngine.h:60