BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IChiSquaredModule Class Referenceabstract
Inheritance diagram for IChiSquaredModule:
Collaboration diagram for IChiSquaredModule:

Public Member Functions

 IChiSquaredModule ()
 
virtual ~IChiSquaredModule ()
 
virtual IChiSquaredModuleclone () const =0
 
const IVarianceFunctionvarianceFunction () const
 
void setVarianceFunction (const IVarianceFunction &variance_function)
 
virtual const IIntensityFunctiongetIntensityFunction () const
 
virtual void setIntensityFunction (const IIntensityFunction &intensity_function)
 
virtual double residual (double a, double b, double weight)=0
 
virtual void transferToCPP ()
 

Protected Member Functions

 IChiSquaredModule (const IChiSquaredModule &other)
 

Protected Attributes

std::unique_ptr< IVarianceFunctionm_variance_function
 
std::unique_ptr< IIntensityFunctionmp_intensity_function
 

Detailed Description

Interface residual calculations.

Definition at line 27 of file IChiSquaredModule.h.

Constructor & Destructor Documentation

◆ IChiSquaredModule() [1/2]

IChiSquaredModule::IChiSquaredModule ( )

Definition at line 19 of file IChiSquaredModule.cpp.

std::unique_ptr< IVarianceFunction > m_variance_function
Returns max(sim, epsilon)

◆ ~IChiSquaredModule()

IChiSquaredModule::~IChiSquaredModule ( )
virtualdefault

◆ IChiSquaredModule() [2/2]

IChiSquaredModule::IChiSquaredModule ( const IChiSquaredModule other)
protected

Definition at line 26 of file IChiSquaredModule.cpp.

26  : ICloneable()
27 {
28  if (other.m_variance_function)
29  m_variance_function.reset(other.m_variance_function->clone());
30 
31  if (other.mp_intensity_function)
32  mp_intensity_function.reset(other.mp_intensity_function->clone());
33 }
std::unique_ptr< IIntensityFunction > mp_intensity_function
ICloneable()=default

References m_variance_function, and mp_intensity_function.

Member Function Documentation

◆ clone()

virtual IChiSquaredModule* IChiSquaredModule::clone ( ) const
pure virtual

clone method

Implements ICloneable.

Implemented in ChiSquaredModule.

Referenced by FitObjective::setChiSquaredModule().

◆ varianceFunction()

const IVarianceFunction * IChiSquaredModule::varianceFunction ( ) const

Returns squared function.

Definition at line 21 of file IChiSquaredModule.cpp.

22 {
23  return m_variance_function.get();
24 }

References m_variance_function.

◆ setVarianceFunction()

void IChiSquaredModule::setVarianceFunction ( const IVarianceFunction variance_function)

Sets squared function.

Definition at line 37 of file IChiSquaredModule.cpp.

38 {
39  m_variance_function.reset(variance_function.clone());
40 }
virtual IVarianceFunction * clone() const =0

References IVarianceFunction::clone(), and m_variance_function.

Here is the call graph for this function:

◆ getIntensityFunction()

const IIntensityFunction * IChiSquaredModule::getIntensityFunction ( ) const
virtual

Returns data rescaler.

Definition at line 42 of file IChiSquaredModule.cpp.

43 {
44  return mp_intensity_function.get();
45 }

References mp_intensity_function.

◆ setIntensityFunction()

void IChiSquaredModule::setIntensityFunction ( const IIntensityFunction intensity_function)
virtual

Sets data rescaler.

Definition at line 47 of file IChiSquaredModule.cpp.

48 {
49  mp_intensity_function.reset(intensity_function.clone());
50 }
virtual IIntensityFunction * clone() const =0

References IIntensityFunction::clone(), and mp_intensity_function.

Here is the call graph for this function:

◆ residual()

virtual double IChiSquaredModule::residual ( double  a,
double  b,
double  weight 
)
pure virtual

Implemented in ChiSquaredModule.

◆ transferToCPP()

virtual void ICloneable::transferToCPP ( )
inlinevirtualinherited

Used for Python overriding of clone (see swig/tweaks.py)

Definition at line 34 of file ICloneable.h.

Member Data Documentation

◆ m_variance_function

std::unique_ptr<IVarianceFunction> IChiSquaredModule::m_variance_function
protected

◆ mp_intensity_function

std::unique_ptr<IIntensityFunction> IChiSquaredModule::mp_intensity_function
protected

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