BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
CumulativeValue Class Reference
Collaboration diagram for CumulativeValue:

Public Member Functions

 CumulativeValue ()
 
void clear ()
 
void setContent (double value)
 
void add (double value, double weight=1.0)
 
int getNumberOfEntries () const
 
double getContent () const
 
double getAverage () const
 
double getRMS () const
 

Private Attributes

int m_n_entries
 
double m_sum
 
double m_average
 
double m_rms2
 
double m_sum_of_weights
 

Detailed Description

The cumulative value with average and rms on-the-flight calculations.

Definition at line 21 of file CumulativeValue.h.

Constructor & Destructor Documentation

◆ CumulativeValue()

CumulativeValue::CumulativeValue ( )
inline

Definition at line 24 of file CumulativeValue.h.

24 { clear(); }

References clear().

Here is the call graph for this function:

Member Function Documentation

◆ clear()

void CumulativeValue::clear ( )

Definition at line 35 of file CumulativeValue.cpp.

36 {
37  m_n_entries = 0;
38  m_sum = 0.0;
39  m_average = 0.0;
40  m_rms2 = 0.0;
41  m_sum_of_weights = 0.0;
42 }

References m_average, m_n_entries, m_rms2, m_sum, and m_sum_of_weights.

Referenced by CumulativeValue().

◆ setContent()

void CumulativeValue::setContent ( double  value)
inline

Definition at line 27 of file CumulativeValue.h.

27 { m_sum = value; }

References m_sum.

◆ add()

void CumulativeValue::add ( double  value,
double  weight = 1.0 
)

Definition at line 23 of file CumulativeValue.cpp.

24 {
25  m_n_entries++;
26  m_sum += value;
27  m_rms2 =
28  (m_sum_of_weights / (m_sum_of_weights + weight))
29  * (m_rms2
30  + (weight / (m_sum_of_weights + weight)) * (value - m_average) * (value - m_average));
31  m_average = m_average + (value - m_average) * weight / (m_sum_of_weights + weight);
32  m_sum_of_weights += weight;
33 }

References m_average, m_n_entries, m_rms2, m_sum, and m_sum_of_weights.

◆ getNumberOfEntries()

int CumulativeValue::getNumberOfEntries ( ) const
inline

Definition at line 30 of file CumulativeValue.h.

30 { return m_n_entries; }

References m_n_entries.

◆ getContent()

double CumulativeValue::getContent ( ) const
inline

Definition at line 31 of file CumulativeValue.h.

31 { return m_sum; }

References m_sum.

Referenced by operator<().

◆ getAverage()

double CumulativeValue::getAverage ( ) const
inline

Definition at line 32 of file CumulativeValue.h.

32 { return m_average; }

References m_average.

◆ getRMS()

double CumulativeValue::getRMS ( ) const

Definition at line 18 of file CumulativeValue.cpp.

19 {
20  return std::sqrt(m_rms2);
21 }

References m_rms2.

Member Data Documentation

◆ m_n_entries

int CumulativeValue::m_n_entries
private

Definition at line 36 of file CumulativeValue.h.

Referenced by add(), clear(), and getNumberOfEntries().

◆ m_sum

double CumulativeValue::m_sum
private

Definition at line 37 of file CumulativeValue.h.

Referenced by add(), clear(), getContent(), and setContent().

◆ m_average

double CumulativeValue::m_average
private

Definition at line 38 of file CumulativeValue.h.

Referenced by add(), clear(), and getAverage().

◆ m_rms2

double CumulativeValue::m_rms2
private

Definition at line 39 of file CumulativeValue.h.

Referenced by add(), clear(), and getRMS().

◆ m_sum_of_weights

double CumulativeValue::m_sum_of_weights
private

Definition at line 40 of file CumulativeValue.h.

Referenced by add(), and clear().


The documentation for this class was generated from the following files: