CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
Genfun::RKIntegrator::RKData Class Reference

#include <RKIntegrator.hh>

+ Inheritance diagram for Genfun::RKIntegrator::RKData:

Classes

struct  Data
 

Public Member Functions

 RKData ()
 
void lock ()
 
void recache ()
 
- Public Member Functions inherited from Genfun::RCBase
 RCBase ()
 
void ref () const
 
void unref () const
 
unsigned int refCount () const
 

Public Attributes

std::vector< Parameter * > _startingValParameter
 
std::vector< double_startingValParameterCache
 
std::vector< Parameter * > _controlParameter
 
std::vector< double_controlParameterCache
 
std::vector< const AbsFunction * > _diffEqn
 
std::set< Data_fx
 
bool _locked
 
const RKStepper_stepper
 

Friends

class ImaginaryFriend
 

Additional Inherited Members

- Protected Member Functions inherited from Genfun::RCBase
virtual ~RCBase ()
 

Detailed Description

Definition at line 102 of file RKIntegrator.hh.

Constructor & Destructor Documentation

◆ RKData()

Genfun::RKIntegrator::RKData::RKData ( )

Definition at line 85 of file RKIntegrator.cc.

85 :_locked(false) {
86}

Member Function Documentation

◆ lock()

void Genfun::RKIntegrator::RKData::lock ( )

Definition at line 145 of file RKIntegrator.cc.

145 {
146 if (!_locked) {
147 unsigned int size = (unsigned int)_diffEqn.size();
148 for (size_t i=0;i<size;i++) {
149 if (!(_diffEqn[i]->dimensionality()==size)) throw std::runtime_error("Runtime error in RKIntegrator");
150 }
151 _locked=true;
152 }
153}
std::vector< const AbsFunction * > _diffEqn

Referenced by Genfun::RKIntegrator::RKFunction::operator()().

◆ recache()

void Genfun::RKIntegrator::RKData::recache ( )

Definition at line 157 of file RKIntegrator.cc.

157 {
158
159 bool stale=false;
160 if (!stale) {
161 for (size_t p=0;p<_startingValParameter.size();p++) {
162 if (_startingValParameter[p]->getValue()!=_startingValParameterCache[p]) {
164 stale=true;
165 break;
166 }
167 }
168 }
169
170 if (!stale) {
171 for (size_t p=0;p<_controlParameter.size();p++) {
172 if (_controlParameter[p]->getValue()!=_controlParameterCache[p]) {
174 stale=true;
175 break;
176 }
177 }
178 }
179
180 if (stale) {
181 _fx.erase(_fx.begin(),_fx.end());
182 }
183
184}
std::vector< Parameter * > _startingValParameter
std::vector< double > _startingValParameterCache
std::vector< double > _controlParameterCache
std::vector< Parameter * > _controlParameter

Referenced by Genfun::RKIntegrator::RKFunction::operator()().

Friends And Related Function Documentation

◆ ImaginaryFriend

friend class ImaginaryFriend
friend

Definition at line 136 of file RKIntegrator.hh.

Member Data Documentation

◆ _controlParameter

std::vector<Parameter *> Genfun::RKIntegrator::RKData::_controlParameter

Definition at line 126 of file RKIntegrator.hh.

Referenced by Genfun::RKIntegrator::createControlParameter().

◆ _controlParameterCache

std::vector<double> Genfun::RKIntegrator::RKData::_controlParameterCache

Definition at line 127 of file RKIntegrator.hh.

Referenced by Genfun::RKIntegrator::createControlParameter().

◆ _diffEqn

std::vector<const AbsFunction *> Genfun::RKIntegrator::RKData::_diffEqn

◆ _fx

std::set<Data > Genfun::RKIntegrator::RKData::_fx

Definition at line 130 of file RKIntegrator.hh.

Referenced by Genfun::RKIntegrator::RKFunction::operator()().

◆ _locked

bool Genfun::RKIntegrator::RKData::_locked

Definition at line 131 of file RKIntegrator.hh.

Referenced by lock(), and Genfun::RKIntegrator::RKFunction::operator()().

◆ _startingValParameter

std::vector<Parameter *> Genfun::RKIntegrator::RKData::_startingValParameter

◆ _startingValParameterCache

std::vector<double> Genfun::RKIntegrator::RKData::_startingValParameterCache

◆ _stepper

const RKStepper* Genfun::RKIntegrator::RKData::_stepper

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