BALL::PiecewiseFunction Class Reference

#include <BALL/MATHS/piecewiseFunction.h>

Inheritance diagram for BALL::PiecewiseFunction:
BALL::PiecewisePolynomial

List of all members.


Public Member Functions

Constructors and Destructors
 PiecewiseFunction ()
 PiecewiseFunction (const PiecewiseFunction &function)
 PiecewiseFunction (const std::vector< Interval > &intervals, const std::vector< Coefficients > &coeffs)
virtual ~PiecewiseFunction ()
Assignment
PiecewiseFunctionoperator= (const PiecewiseFunction &function)
void clear ()
Accessors
void setIntervals (const std::vector< Interval > &intervals)
const std::vector< Interval > & getIntervals () const
const IntervalgetInterval (double x) const throw (Exception::OutOfRange)
const IntervalgetInterval (Position index) const throw (Exception::IndexOverflow)
Position getIntervalIndex (double x) const throw (Exception::OutOfRange)
const IntervalgetRange () const
void setCoefficients (const vector< Coefficients > &coefficients)
const std::vector< Coefficients > & getCoefficients () const
const CoefficientsgetCoefficients (double x) const throw (Exception::OutOfRange)
const CoefficientsgetCoefficients (Position index) const throw (Exception::IndexOverflow)
virtual double operator() (double x) const
void set (const std::vector< Interval > &intervals, const std::vector< Coefficients > &coeffs)
Predicates
bool isInRange (double x) const
virtual bool isValid () const
bool operator== (const PiecewiseFunction &function) const
Debugging and Diagnostics
virtual void dump (std::ostream &s=std::cout, Size depth=0) const

Protected Attributes

std::vector< Intervalintervals_
std::vector< Coefficientscoefficients_
bool valid_

Private Member Functions

void calculateRange ()

Private Attributes

Interval range_

Detailed Description

Piecewise function object. This class provides the interface for piecewise functions needed as representation of radial distribution functions (

See also:
RadialDistributionFunction). It implements the Function interface.
Note that intervals must be disjunct and interval limits have to meet. We require the intervals to be sorted such that the lowest interval limit is the first interval of the vector.

Constructor & Destructor Documentation

BALL::PiecewiseFunction::PiecewiseFunction (  ) 

Default constructor

BALL::PiecewiseFunction::PiecewiseFunction ( const PiecewiseFunction function  ) 

Copy constructor

BALL::PiecewiseFunction::PiecewiseFunction ( const std::vector< Interval > &  intervals,
const std::vector< Coefficients > &  coeffs 
)

Detailed constructor

virtual BALL::PiecewiseFunction::~PiecewiseFunction (  )  [virtual]

Destructor


Member Function Documentation

void BALL::PiecewiseFunction::calculateRange (  )  [private]
void BALL::PiecewiseFunction::clear (  ) 

Clear function

Reimplemented in BALL::PiecewisePolynomial.

virtual void BALL::PiecewiseFunction::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const [virtual]

Dumps the whole content of the object

Reimplemented in BALL::PiecewisePolynomial.

const Coefficients& BALL::PiecewiseFunction::getCoefficients ( Position  index  )  const throw (Exception::IndexOverflow)

get coefficients from index

const Coefficients& BALL::PiecewiseFunction::getCoefficients ( double  x  )  const throw (Exception::OutOfRange)

Get the coefficients for a given x

const std::vector<Coefficients>& BALL::PiecewiseFunction::getCoefficients (  )  const
const Interval& BALL::PiecewiseFunction::getInterval ( Position  index  )  const throw (Exception::IndexOverflow)

Get interval limits by index

const Interval& BALL::PiecewiseFunction::getInterval ( double  x  )  const throw (Exception::OutOfRange)

Get the interval a given x belongs to

Position BALL::PiecewiseFunction::getIntervalIndex ( double  x  )  const throw (Exception::OutOfRange)

Get the interval index for a given x

const std::vector<Interval>& BALL::PiecewiseFunction::getIntervals (  )  const

Get all the intervals

const Interval& BALL::PiecewiseFunction::getRange (  )  const

Return the range of the definition

bool BALL::PiecewiseFunction::isInRange ( double  x  )  const

Check whether a given x is in the range of definition

virtual bool BALL::PiecewiseFunction::isValid (  )  const [virtual]

check validity of the definition

virtual double BALL::PiecewiseFunction::operator() ( double  x  )  const [virtual]

compute the value of the piecewise function data for a given x

Reimplemented in BALL::PiecewisePolynomial.

PiecewiseFunction& BALL::PiecewiseFunction::operator= ( const PiecewiseFunction function  ) 

Assignemnt operator

bool BALL::PiecewiseFunction::operator== ( const PiecewiseFunction function  )  const

Equality operator

void BALL::PiecewiseFunction::set ( const std::vector< Interval > &  intervals,
const std::vector< Coefficients > &  coeffs 
)
void BALL::PiecewiseFunction::setCoefficients ( const vector< Coefficients > &  coefficients  ) 

Set the coefficients. Note that this method does not check the vector of coefficients for sanity.

void BALL::PiecewiseFunction::setIntervals ( const std::vector< Interval > &  intervals  ) 

Set the intervals for the piecewise definition. Note that this method does not check the definition of the intervals for sanity.


Member Data Documentation