8#ifndef LAR_DISCRETE_PROBABILITY_VECTOR_H
9#define LAR_DISCRETE_PROBABILITY_VECTOR_H 1
28 template <
typename TX,
typename TY>
31 template <
typename TX,
typename TY>
45 template <
typename TX,
typename TY>
87 float GetX(
const unsigned int index)
const;
123 float GetWidth(
const unsigned int index)
const;
134 void GetAllAtIndex(
const unsigned int index,
float &x,
float &probabilityDensity,
float &cumulativeProbability,
float &width)
const;
197 template <
typename TX,
typename TY>
231 template <
typename TX,
typename TY>
241 template <
typename TX,
typename TY>
316 const unsigned int index,
float &x,
float &probabilityDensity,
float &cumulativeProbability,
float &width)
const
330 const float x,
const float densityDatum,
const float cumulativeDatum,
const float width) :
332 m_densityDatum(densityDatum),
333 m_cumulativeDatum(cumulativeDatum),
349 return m_densityDatum;
356 return m_cumulativeDatum;
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
DiscreteProbabilityData class.
float m_x
The x coordinate.
float GetX() const
Get the x value for the datum.
DiscreteProbabilityDatum(const float x, const float densityDatum, const float cumulativeDatum, const float width)
Constructor.
float GetWidth() const
Get the width of the datum.
float m_width
The width of the probability bin.
float GetDensityDatum() const
Get the probability density for the datum.
float m_cumulativeDatum
The cumulative probability value.
float GetCumulativeDatum() const
Get the cumulative probability for the datum.
float m_densityDatum
The probability density value.
DiscreteProbabilityVector class.
void VerifyCompleteData() const
Verify the integrity of the complete probability vector.
DiscreteProbabilityData InitialiseDiscreteProbabilityData(InputData< TX, TY > inputData) const
Get a initialised probability data vector from the input data.
pandora::FloatVector ResamplingPoints
float GetCumulativeProbability(const unsigned int index) const
Get the cumulative probability value of the element in the vector.
float GetProbability(const unsigned int index) const
Get the probability value of the element in the vector.
float m_xUpperBound
the upper bound of the probability vector
DiscreteProbabilityData ResampleDiscreteProbabilityData(const DiscreteProbabilityVector &discreteProbabilityVector, const ResamplingPoints &resamplingPoints) const
Get a resampled probability data vector by resampling another probability data vector.
float GetWidth(const unsigned int index) const
Get the width of the element in the vectorr.
bool m_useWidths
controls whether bin widths are used in calculations
float CalculateNormalisation(const InputData< TX, TY > &inputData) const
Calculate the probability normalisation.
DiscreteProbabilityData RandomiseDiscreteProbabilityData(const DiscreteProbabilityVector &discreteProbabilityVector, std::mt19937 &randomNumberGenerator) const
Get a randomised probability data vector in which the x values are unchanged, the probability density...
void GetAllAtIndex(const unsigned int index, float &x, float &probabilityDensity, float &cumulativeProbability, float &width) const
Get all information stored at a particular index.
unsigned int GetSize() const
Get the size of the probability vector.
float EvaluateCumulativeProbability(const float x) const
Evaluate the cumulative probability at arbitrary x.
float GetProbabilityDensity(const unsigned int index) const
Get the probability density value of the element in the vector.
float GetX(const unsigned int index) const
Get the x value of the element in the vector.
static bool SortInputDataByX(const InputDatum< TX, TY > &lhs, const InputDatum< TX, TY > &rhs)
Sort the input data according to their x value.
InputData< float, float > AllFloatInputData
std::vector< InputDatum< TX, TY > > InputData
std::pair< TX, TY > InputDatum
std::vector< DiscreteProbabilityDatum > DiscreteProbabilityData
DiscreteProbabilityData m_discreteProbabilityData
the probability data
void VerifyElementRequest(const unsigned int index) const
Verify the integrity of the element request.
StatusCodeException class.
std::vector< float > FloatVector