STK++ 0.9.13
STK::IBasis< Data, Coefs > Class Template Reference

Interface base class for all basis function. More...

#include <STK_IBasis.h>

Inheritance diagram for STK::IBasis< Data, Coefs >:
Inheritance graph

Public Types

typedef Data::Type Type
 

Public Member Functions

 IBasis ()
 default constructor
 
 IBasis (Data const *p_data, int dim, bool useDataValues=true)
 constructor
 
 IBasis (Data const &data, int dim, bool useDataValues=true)
 constructor
 
 IBasis (IBasis const &basis)
 copy constructor.
 
virtual ~IBasis ()
 destructor
 
int dim () const
 
Coefs constcoefficients () const
 
Type minValue () const
 
Type maxValue () const
 
void setData (Data const &data)
 Set the data set.
 
void setDim (int dim)
 
void setMinValue (Type const &minValue)
 
void setMaxValue (Type const &maxValue)
 
bool initializeStep ()
 Initialize the parameters minValue_ and maxValue_ using data set.
 
- Public Member Functions inherited from STK::IRunnerBase
String consterror () const
 get the last error message.
 
virtual bool run ()=0
 run the computations.
 

Protected Member Functions

virtual void update ()
 update IBasis if a parameter or a new data set is set, update the state of this runner.
 
- Protected Member Functions inherited from STK::IRunnerBase
 IRunnerBase ()
 default constructor
 
 IRunnerBase (IRunnerBase const &runner)
 copy constructor
 
virtual ~IRunnerBase ()
 destructor
 

Protected Attributes

Data constp_data_
 the input data set
 
int dim_
 number of dimension to build
 
bool useDataValues_
 
Type minValue_
 Minimal value of the data.
 
Type maxValue_
 Maximal value of the data.
 
Coefs coefficients_
 Array2D of the coefficients.
 
- Protected Attributes inherited from STK::IRunnerBase
String msg_error_
 String with the last error message.
 
bool hasRun_
 true if run has been used, false otherwise
 

Detailed Description

template<class Data, class Coefs = ArrayXX>
class STK::IBasis< Data, Coefs >

Interface base class for all basis function.

Definition at line 48 of file STK_IBasis.h.

Member Typedef Documentation

◆ Type

template<class Data , class Coefs = ArrayXX>
typedef Data::Type STK::IBasis< Data, Coefs >::Type

Definition at line 51 of file STK_IBasis.h.

Constructor & Destructor Documentation

◆ IBasis() [1/4]

template<class Data , class Coefs >
STK::IBasis< Data, Coefs >::IBasis ( )

default constructor

Definition at line 125 of file STK_IBasis.h.

125 : IRunnerBase()
126 , p_data_(0)
127 , dim_()
128 , useDataValues_(true)
129 , minValue_( Arithmetic<Type>::max())
130 , maxValue_(-Arithmetic<Type>::max())
131 , coefficients_()
132{}
Data const * p_data_
the input data set
Definition STK_IBasis.h:110
Type minValue_
Minimal value of the data.
Definition STK_IBasis.h:116
Type maxValue_
Maximal value of the data.
Definition STK_IBasis.h:118
bool useDataValues_
Definition STK_IBasis.h:114
int dim_
number of dimension to build
Definition STK_IBasis.h:112
Coefs coefficients_
Array2D of the coefficients.
Definition STK_IBasis.h:121
IRunnerBase()
default constructor
Definition STK_IRunner.h:68

◆ IBasis() [2/4]

template<class Data , class Coefs >
STK::IBasis< Data, Coefs >::IBasis ( Data const p_data,
int  dim,
bool  useDataValues = true 
)

constructor

Parameters
p_datapointer on the data set (can be null)
dimdimension of the basis
useDataValuesif true use data in order to find the minValue_ and maxValue_, use values set otherwise.

Definition at line 135 of file STK_IBasis.h.

136 : IRunnerBase()
137 , p_data_(p_data)
138 , dim_(dim)
139 , useDataValues_(useDataValues)
140 , minValue_( Arithmetic<Type>::max())
141 , maxValue_(-Arithmetic<Type>::max())
142 , coefficients_()
143{}
int dim() const
Definition STK_IBasis.h:77

◆ IBasis() [3/4]

template<class Data , class Coefs >
STK::IBasis< Data, Coefs >::IBasis ( Data const data,
int  dim,
bool  useDataValues = true 
)

constructor

Parameters
datareference on the data set
dimdimension of the basis
useDataValuesif true use data in order to find the minValue_ and maxValue_, use values set otherwise.

Definition at line 145 of file STK_IBasis.h.

146 : IRunnerBase()
147 , p_data_(&data)
148 , dim_(dim)
149 , useDataValues_(useDataValues)
150 , minValue_( Arithmetic<Type>::max())
151 , maxValue_(-Arithmetic<Type>::max())
152 , coefficients_()
153{}

◆ IBasis() [4/4]

template<class Data , class Coefs >
STK::IBasis< Data, Coefs >::IBasis ( IBasis< Data, Coefs > const basis)

copy constructor.

Parameters
basisthe basis to copy

Definition at line 156 of file STK_IBasis.h.

157 : IRunnerBase(basis)
158 , p_data_(basis.p_data_)
159 , dim_(basis.dim_)
160 , useDataValues_(basis.useDataValues_)
161 , minValue_(basis.minValue_)
162 , maxValue_(basis.maxValue_)
163 , coefficients_(basis.coefficients_)
164{}

◆ ~IBasis()

template<class Data , class Coefs = ArrayXX>
virtual STK::IBasis< Data, Coefs >::~IBasis ( )
inlinevirtual

destructor

Definition at line 73 of file STK_IBasis.h.

73{}

Member Function Documentation

◆ coefficients()

template<class Data , class Coefs = ArrayXX>
Coefs const & STK::IBasis< Data, Coefs >::coefficients ( ) const
inline
Returns
the matrix with the coefficients of the basis curve.

Definition at line 79 of file STK_IBasis.h.

79{ return coefficients_;}

References STK::IBasis< Data, Coefs >::coefficients_.

Referenced by STK::BSplineRegression< YArray, XVector, Weights >::coefficients().

◆ dim()

template<class Data , class Coefs = ArrayXX>
int STK::IBasis< Data, Coefs >::dim ( ) const
inline
Returns
the dimension of the basis

Definition at line 77 of file STK_IBasis.h.

77{ return dim_;}

References STK::IBasis< Data, Coefs >::dim_.

Referenced by STK::IBasis< Data, Coefs >::setDim().

◆ initializeStep()

template<class Data , class Coefs >
bool STK::IBasis< Data, Coefs >::initializeStep ( )

Initialize the parameters minValue_ and maxValue_ using data set.

Definition at line 181 of file STK_IBasis.h.

182{
183 // resize and initialize coeficients
184 coefficients_.resize(p_data_->range(), Range(0, dim_)) =0;
185 // compute min and max value
186 if (useDataValues_)
187 {
188 minValue_ = Arithmetic<Type>::max();
189 maxValue_ = -Arithmetic<Type>::max();
190 for (int i=p_data_->begin(); i< p_data_->end(); i++)
191 {
192 minValue_ = std::min(minValue_, (*p_data_)[i]);
193 maxValue_ = std::max(maxValue_, (*p_data_)[i]);
194 }
195 }
196 // if all value are equals
197 if (minValue_ == maxValue_)
198 {
199 msg_error_ = STKERROR_NO_ARG(IBasis::initializeStep,All values are equal);
200 return false;
201 }
202 // if values are incorrect
203 if (minValue_ > maxValue_)
204 {
206 return false;
207 }
208 return true;
209}
#define STKERROR_NO_ARG(Where, Error)
Definition STK_Macros.h:49
bool initializeStep()
Initialize the parameters minValue_ and maxValue_ using data set.
Definition STK_IBasis.h:181
String msg_error_
String with the last error message.
Definition STK_IRunner.h:96
TRange< UnknownSize > Range
Definition STK_Range.h:59

References STK::IBasis< Data, Coefs >::initializeStep(), STK::IRunnerBase::msg_error_, and STKERROR_NO_ARG.

Referenced by STK::IBasis< Data, Coefs >::initializeStep().

◆ maxValue()

template<class Data , class Coefs = ArrayXX>
Type STK::IBasis< Data, Coefs >::maxValue ( ) const
inline
Returns
the maximal value of the data

Definition at line 83 of file STK_IBasis.h.

83{ return maxValue_;}

References STK::IBasis< Data, Coefs >::maxValue_.

Referenced by STK::IBasis< Data, Coefs >::setMaxValue().

◆ minValue()

template<class Data , class Coefs = ArrayXX>
Type STK::IBasis< Data, Coefs >::minValue ( ) const
inline
Returns
the minimal value of the data

Definition at line 81 of file STK_IBasis.h.

81{ return minValue_;}

References STK::IBasis< Data, Coefs >::minValue_.

Referenced by STK::IBasis< Data, Coefs >::setMinValue().

◆ setData()

template<class Data , class Coefs = ArrayXX>
void STK::IBasis< Data, Coefs >::setData ( Data const data)
inline

Set the data set.

Parameters
datathe input data values

Definition at line 89 of file STK_IBasis.h.

90 {
91 p_data_ = &data;
92 update();
93 }
virtual void update()
update IBasis if a parameter or a new data set is set, update the state of this runner.
Definition STK_IBasis.h:170

References STK::IBasis< Data, Coefs >::p_data_, and STK::IBasis< Data, Coefs >::update().

◆ setDim()

template<class Data , class Coefs = ArrayXX>
void STK::IBasis< Data, Coefs >::setDim ( int  dim)
inline
Parameters
dimnumber of dimension

Definition at line 95 of file STK_IBasis.h.

95{ dim_ = dim; update();}

References STK::IBasis< Data, Coefs >::dim(), STK::IBasis< Data, Coefs >::dim_, and STK::IBasis< Data, Coefs >::update().

◆ setMaxValue()

template<class Data , class Coefs = ArrayXX>
void STK::IBasis< Data, Coefs >::setMaxValue ( Type const maxValue)
inline
Parameters
maxValuemaximal value of the data

Definition at line 99 of file STK_IBasis.h.

Type maxValue() const
Definition STK_IBasis.h:83

References STK::IBasis< Data, Coefs >::maxValue(), and STK::IBasis< Data, Coefs >::maxValue_.

◆ setMinValue()

template<class Data , class Coefs = ArrayXX>
void STK::IBasis< Data, Coefs >::setMinValue ( Type const minValue)
inline
Parameters
minValueminimal value of the data

Definition at line 97 of file STK_IBasis.h.

Type minValue() const
Definition STK_IBasis.h:81

References STK::IBasis< Data, Coefs >::minValue(), and STK::IBasis< Data, Coefs >::minValue_.

◆ update()

template<class Data , class Coefs >
void STK::IBasis< Data, Coefs >::update ( )
protectedvirtual

update IBasis if a parameter or a new data set is set, update the state of this runner.

Reimplemented from STK::IRunnerBase.

Definition at line 170 of file STK_IBasis.h.

171{
172 if (useDataValues_)
173 {
174 minValue_ = Arithmetic<Type>::max();
175 maxValue_ = -Arithmetic<Type>::max();
176 }
177 hasRun_ = false;
178}
bool hasRun_
true if run has been used, false otherwise
Definition STK_IRunner.h:98

References STK::IRunnerBase::hasRun_.

Referenced by STK::IBasis< Data, Coefs >::setData(), and STK::IBasis< Data, Coefs >::setDim().

Member Data Documentation

◆ coefficients_

template<class Data , class Coefs = ArrayXX>
Coefs STK::IBasis< Data, Coefs >::coefficients_
protected

Array2D of the coefficients.

Definition at line 121 of file STK_IBasis.h.

Referenced by STK::IBasis< Data, Coefs >::coefficients().

◆ dim_

template<class Data , class Coefs = ArrayXX>
int STK::IBasis< Data, Coefs >::dim_
protected

number of dimension to build

Definition at line 112 of file STK_IBasis.h.

Referenced by STK::IBasis< Data, Coefs >::dim(), and STK::IBasis< Data, Coefs >::setDim().

◆ maxValue_

template<class Data , class Coefs = ArrayXX>
Type STK::IBasis< Data, Coefs >::maxValue_
protected

Maximal value of the data.

Definition at line 118 of file STK_IBasis.h.

Referenced by STK::IBasis< Data, Coefs >::maxValue(), and STK::IBasis< Data, Coefs >::setMaxValue().

◆ minValue_

template<class Data , class Coefs = ArrayXX>
Type STK::IBasis< Data, Coefs >::minValue_
protected

Minimal value of the data.

Definition at line 116 of file STK_IBasis.h.

Referenced by STK::IBasis< Data, Coefs >::minValue(), and STK::IBasis< Data, Coefs >::setMinValue().

◆ p_data_

template<class Data , class Coefs = ArrayXX>
Data const* STK::IBasis< Data, Coefs >::p_data_
protected

the input data set

Definition at line 110 of file STK_IBasis.h.

Referenced by STK::IBasis< Data, Coefs >::setData().

◆ useDataValues_

template<class Data , class Coefs = ArrayXX>
bool STK::IBasis< Data, Coefs >::useDataValues_
protected

Definition at line 114 of file STK_IBasis.h.


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