CSol
Public Member Functions | Protected Attributes | List of all members
Series Class Reference

Series implementation.

#include <series/csol_series.h>

Inheritance diagram for Series:
[legend]

Public Member Functions

 Series ()
 Series constructor. More...
 
 Series (const Series &)
 Series copy constructor. More...
 
 ~Series ()
 
void addValue (double, double)
 Adds a value to a series and re-calculates gradients. More...
 
double dv (const double, const double)
 Series derivative. More...
 
double get_xMax ()
 
double get_xMin ()
 
double get_yMax ()
 
double get_yMin ()
 
bool getIndex (int, double &, double &)
 Return values at series index. More...
 
int getN ()
 
QString getName ()
 
void init (double &)
 Create Series from constant value. More...
 
void init (QVector< double > &, const double, const double)
 Create Series with equal spacing. More...
 
void init (QVector< double > &, QVector< double > &, const double)
 Create Series for non-equally spaced steps for monotone cubic hermite interpolation. More...
 
bool inRange (const double)
 Find if a value is within the range of a series. More...
 
bool isConstant ()
 
bool isInitialised () const
 
Seriesoperator= (const Series &)
 Series assignment operator. More...
 
void setBounds (double y_upperBound_, double y_lowerBound_)
 
void setIndex (int, double)
 Sets a value associated with a series index and re-calculates gradients. More...
 
void setInterpolation (SeriesInterpolation::Type interpolation_)
 
void setName (QString &name_)
 
void update ()
 Calculate gradients for monotone cubic hermite interpolation. More...
 
void updateLimits ()
 Find maximum and minimum values in series. More...
 
double v (const double)
 Series interpolation. More...
 
double vBoundedLinear (const double)
 Bounded linear series interpolation. More...
 
double vLinear (const double)
 Linear series interpolation. More...
 
double vMonotoneCubic (const double)
 Monotone cubic series interpolation. More...
 

Protected Attributes

SeriesInterpolation::Type interpolation
 Interpolation type. More...
 
QString name
 Series name. More...
 
QVector< double > slopes
 Slope tangents for non-constant series. More...
 
QVector< QPair< double, double > > values
 Values stores as x, y pair. More...
 
double x_max
 Abscissa limits. More...
 
double x_min
 
double y_lowerBound
 Interpolation bounds. More...
 
double y_max
 Ordinate limits. More...
 
double y_min
 
double y_upperBound
 

Constructor & Destructor Documentation

Series ( )
~Series ( )
inline
Series ( const Series r)
Parameters
rSeries to copy.

Member Function Documentation

void addValue ( double  y,
double  x 
)
Parameters
yordinate value
xabscissa value
double dv ( const double  x,
const double  dx 
)
Parameters
xabscissa value.
dxsampling size.
Returns
derivative of series at point x.
double get_xMax ( )
inline
double get_xMin ( )
inline
double get_yMax ( )
inline
double get_yMin ( )
inline
bool getIndex ( int  i,
double &  y,
double &  x 
)
Parameters
iindex.
yordinate value at index i.
xabscissa value at index i.
Returns
value of series at index i.
int getN ( )
inline
QString getName ( )
inline
void init ( double &  val)
Parameters
valinitialisation value.
void init ( QVector< double > &  py,
const double  dx,
const double  xOffset 
)
Parameters
pyvector of ordinate values.
dxabscissa value spacing.
xOffsetoffset added to x-values.
void init ( QVector< double > &  py,
QVector< double > &  px,
const double  xOffset 
)
Parameters
pyvector of ordinate values
pxvector of abscissa values
xOffsetoffset added to x-values. See: Monotone Piecewise Cubic Interpolation, Fritsch and Carlson, SIAM Journal Numerical Analysis 17 (1980). or Wikipedia article.
bool inRange ( const double  x)
Parameters
xabscissa value to check.
Returns
true if within range, false otherwise.
bool isConstant ( )
inline
bool isInitialised ( ) const
inline
Series & operator= ( const Series r)
Parameters
rSeries to copy.
void setBounds ( double  y_upperBound_,
double  y_lowerBound_ 
)
inline
void setIndex ( int  i,
double  y 
)
Parameters
iindex.
yordinate value to set for index i.
void setInterpolation ( SeriesInterpolation::Type  interpolation_)
inline
void setName ( QString &  name_)
inline
void update ( )

Derivatives are limited using Fritsch-Carlson method.

void updateLimits ( )
double v ( const double  x)
Parameters
xabscissa value.
Returns
constant value for constant series or monotone cubic interpolation of series at point x.
double vBoundedLinear ( const double  x)
Parameters
xabscissa value.
Returns
linear interpolation of series at point x.
double vLinear ( const double  x)
Parameters
xabscissa value.
Returns
linear interpolation of series at point x.
double vMonotoneCubic ( const double  x)
Parameters
xabscissa value.
Returns
monotone cubic interpolation of series at point x.

Member Data Documentation

SeriesInterpolation::Type interpolation
protected
QString name
protected
QVector<double> slopes
protected
QVector<QPair<double, double> > values
protected
double x_max
protected
double x_min
protected
double y_lowerBound
protected
double y_max
protected
double y_min
protected
double y_upperBound
protected