#include <BALL/MATHS/cubicSpline1D.h>
|
std::vector< float > | sample_positions_ |
|
std::vector< float > | sample_values_ |
|
std::vector< float > | curvature_ |
|
bool | return_average_ |
|
float | default_value_ |
|
float | lower_bound_ |
|
float | upper_bound_ |
|
bool | is_natural_ |
|
float | lower_derivative_ |
|
float | upper_derivative_ |
|
int | verbosity_ |
|
| CubicSpline1D () |
|
| CubicSpline1D (const std::vector< float > &sample_positions, const std::vector< float > &sample_values, bool return_average=false, bool is_natural=true, float lower_derivative=0.0, float upper_derivative=0.0, int verbosity=VERBOSITY_LEVEL_DEBUG) |
|
| CubicSpline1D (const std::vector< float > &sample_positions, const std::vector< float > &sample_values, float default_value, bool is_natural=true, float lower_derivative=0.0, float upper_derivative=0.0, int verbosity=VERBOSITY_LEVEL_DEBUG) |
|
| CubicSpline1D (const std::vector< float > &sample_positions, const std::vector< float > &sample_values, float default_value, float lower_bound, float upper_bound, bool is_natural=true, float lower_derivative=0.0, float upper_derivative=0.0, int verbosity=VERBOSITY_LEVEL_DEBUG) |
|
| CubicSpline1D (const std::vector< float > &sample_positions, const std::vector< float > &sample_values, float lower_bound, float upper_bound, bool return_average=false, float default_value=std::numeric_limits< float >::min(), bool is_natural=true, float lower_derivative=0.0, float upper_derivative=0.0, int verbosity=VERBOSITY_LEVEL_DEBUG) |
|
| CubicSpline1D (const CubicSpline1D &cs1D) |
|
virtual | ~CubicSpline1D () |
|
void | setVerbosity (int verbosity) |
|
int | getVerbosity () const |
|
float | operator() (float x) |
|
std::vector< float > | getCurvature () const |
|
void | setCurvature (std::vector< float > curvature) |
|
void | setValues (std::vector< float > values, bool recompute=true) |
|
std::vector< float > | getValues () const |
|
std::vector< float > | getPositions () const |
|
void | setPositions (std::vector< float > positions, bool recompute=true) |
|
void | setDefaultValue (float value) |
|
float | getDefaultValue () const |
|
void | setLowerBound (float lb) |
|
void | setUpperBound (float ub) |
|
float | getLowerBound () const |
|
float | getUpperBound () const |
|
bool | isNatural () const |
|
void | makeNatural (bool recompute=true) |
|
void | setBoudaryDerivatives (float lower_derivative, float upper_derivative, bool recompute=true) |
|
void | setLowerDerivative (float derivative, bool recompute=true) |
|
float | getLowerDerivative () const |
|
void | setUpperDerivative (float derivative, bool recompute=true) |
|
float | getUpperDerivative () const |
|
void | createSpline () |
|
Definition at line 18 of file cubicSpline1D.h.
BALL::CubicSpline1D::CubicSpline1D |
( |
| ) |
|
BALL::CubicSpline1D::CubicSpline1D |
( |
const std::vector< float > & |
sample_positions, |
|
|
const std::vector< float > & |
sample_values, |
|
|
bool |
return_average = false , |
|
|
bool |
is_natural = true , |
|
|
float |
lower_derivative = 0.0 , |
|
|
float |
upper_derivative = 0.0 , |
|
|
int |
verbosity = VERBOSITY_LEVEL_DEBUG |
|
) |
| |
Detailed constructor. Given increasingly sorted positions { sample_positions} and their corresponding values { sample_values}, cubic splines are computed by determing and storing the curvatures of the cubic splines. By default, we assume the first and the last values to be the lower and upper bounds. If the { return_average} flag is set to true, the { default_value_} is set to the average, otherwise it is set to std::numeric_limits<float>::min()
. If the { is_natural} flag is set to true, the spline will be natural. Otherwise { lower_derivative} and { upper_derivative} are taken as first derivative of the first/last sample position.
BALL::CubicSpline1D::CubicSpline1D |
( |
const std::vector< float > & |
sample_positions, |
|
|
const std::vector< float > & |
sample_values, |
|
|
float |
default_value, |
|
|
bool |
is_natural = true , |
|
|
float |
lower_derivative = 0.0 , |
|
|
float |
upper_derivative = 0.0 , |
|
|
int |
verbosity = VERBOSITY_LEVEL_DEBUG |
|
) |
| |
Detailed constructor. Given increasingly sorted positions { sample_positions} and their corresponding values { sample_values}, cubic splines are computed by determing and storing the curvatures of the cubic splines. The { default_value_} is set to the given default_value. By default, we assume the first and the last values to be the lower and upper bounds. If the { is_natural} flag is set to true, the spline will be natural. Otherwise { lower_derivative} and { upper_derivative} are taken as first derivative of the first/last sample position.
BALL::CubicSpline1D::CubicSpline1D |
( |
const std::vector< float > & |
sample_positions, |
|
|
const std::vector< float > & |
sample_values, |
|
|
float |
default_value, |
|
|
float |
lower_bound, |
|
|
float |
upper_bound, |
|
|
bool |
is_natural = true , |
|
|
float |
lower_derivative = 0.0 , |
|
|
float |
upper_derivative = 0.0 , |
|
|
int |
verbosity = VERBOSITY_LEVEL_DEBUG |
|
) |
| |
Detailed constructor. Given increasingly sorted positions { sample_positions} and their corresponding values { sample_values}, a cubic spline is computed by determing and storing the curvatures of the cubic splines. The { default_value_} is set to the given default_value. The { lower_bound_} variable is set to the given lower_bound value, the { upper_bound_} variable is set to the given upper_bound value. This allows extrapolation. If the { is_natural} flag is set to true, the spline will be natural. Otherwise { lower_derivative} and { upper_derivative} are taken as first derivative of the first/last sample position.
BALL::CubicSpline1D::CubicSpline1D |
( |
const std::vector< float > & |
sample_positions, |
|
|
const std::vector< float > & |
sample_values, |
|
|
float |
lower_bound, |
|
|
float |
upper_bound, |
|
|
bool |
return_average = false , |
|
|
float |
default_value = std::numeric_limits< float >::min() , |
|
|
bool |
is_natural = true , |
|
|
float |
lower_derivative = 0.0 , |
|
|
float |
upper_derivative = 0.0 , |
|
|
int |
verbosity = VERBOSITY_LEVEL_DEBUG |
|
) |
| |
Detailed constructor. Given increasingly sorted positions { sample_positions} and their corresponding values { sample_values}, cubic splines are computed by determing and storing the curvatures of the cubic splines. If the { return_average} flag is set to true, the { default_value_} is set to the average, otherwise it is set to std::numeric_limits<float>::min()
. The { lower_bound_} variable is set to the given lower_bound value, the { upper_bound_} variavle is set to the given upper_bound value. If the { is_natural} flag is set to true, the spline will be natural. Otherwise { lower_derivative} and { upper_derivative} are taken as first derivative of the first/last sample position.
virtual BALL::CubicSpline1D::~CubicSpline1D |
( |
| ) |
|
|
virtual |
void BALL::CubicSpline1D::createSpline |
( |
| ) |
|
|
private |
A method to create a spline. Note: - we assume the sample positions to be sorted increasingly!
- this method relies on the correct settings of the { is_natural_ } flag, the { lower_derivative_} and { upper_derivative_} variables.
std::vector<float> BALL::CubicSpline1D::getCurvature |
( |
| ) |
const |
|
inline |
float BALL::CubicSpline1D::getDefaultValue |
( |
| ) |
const |
|
inline |
float BALL::CubicSpline1D::getLowerBound |
( |
| ) |
const |
|
inline |
float BALL::CubicSpline1D::getLowerDerivative |
( |
| ) |
const |
|
inline |
Returns the first derivative of the lowest sample point of the spline.
Definition at line 216 of file cubicSpline1D.h.
std::vector<float> BALL::CubicSpline1D::getPositions |
( |
| ) |
const |
|
inline |
float BALL::CubicSpline1D::getUpperBound |
( |
| ) |
const |
|
inline |
float BALL::CubicSpline1D::getUpperDerivative |
( |
| ) |
const |
|
inline |
Returns the first derivative of the upper sample point of the spline.
Definition at line 226 of file cubicSpline1D.h.
std::vector<float> BALL::CubicSpline1D::getValues |
( |
| ) |
const |
|
inline |
int BALL::CubicSpline1D::getVerbosity |
( |
| ) |
const |
|
inline |
bool BALL::CubicSpline1D::isNatural |
( |
| ) |
const |
|
inline |
Returns true, if the spline is a natural spline.
Definition at line 195 of file cubicSpline1D.h.
void BALL::CubicSpline1D::makeNatural |
( |
bool |
recompute = true | ) |
|
Sets the variable { is_natural_} to true. By default the method recomputes the spline. If the argument is false, no recomputation is done.
A method to evaluate the spline at the access value x. If the access value is out of bound or if we have too less points given for the spline the { default_value} is returned. If the spacing is zero, std::numeric_limits<float>::min()
is returned.
void BALL::CubicSpline1D::setBoudaryDerivatives |
( |
float |
lower_derivative, |
|
|
float |
upper_derivative, |
|
|
bool |
recompute = true |
|
) |
| |
Sets the first derivatives of the boundary derivatives. By default the method recomputes the spline. If the argument is false, no recomputation is done.
void BALL::CubicSpline1D::setCurvature |
( |
std::vector< float > |
curvature | ) |
|
Set the curvature of the spline. Note: - the spline is not recomputed, but any access will consider the new curvature!
- a subsequent recomputation will overwrite the new curvature!
void BALL::CubicSpline1D::setDefaultValue |
( |
float |
value | ) |
|
|
inline |
A method to set the default value of the splines.
Definition at line 179 of file cubicSpline1D.h.
void BALL::CubicSpline1D::setLowerBound |
( |
float |
lb | ) |
|
|
inline |
Set the upper and lower bounds of the spline. We allow to set the spline upper and lower bounds to something different from the x-axis extrema. This allows extrapolation.
Definition at line 186 of file cubicSpline1D.h.
void BALL::CubicSpline1D::setLowerDerivative |
( |
float |
derivative, |
|
|
bool |
recompute = true |
|
) |
| |
Set the first derivative of the lowest sample point of the spline. The spline is no longer natural! If the flag recompute
is set to false, the spline is not recomputed.
void BALL::CubicSpline1D::setPositions |
( |
std::vector< float > |
positions, |
|
|
bool |
recompute = true |
|
) |
| |
Set the positions of the spline. Note: if the flag recompute
is set to false, the spline is not recomputed.
void BALL::CubicSpline1D::setUpperBound |
( |
float |
ub | ) |
|
|
inline |
void BALL::CubicSpline1D::setUpperDerivative |
( |
float |
derivative, |
|
|
bool |
recompute = true |
|
) |
| |
Set the first derivative of the upper sample point of the spline. The spline is no longer natural. If the flag recompute
is set to false, the spline is not recomputed.
void BALL::CubicSpline1D::setValues |
( |
std::vector< float > |
values, |
|
|
bool |
recompute = true |
|
) |
| |
Set the sample values of the spline. Note: if the flag recompute
is set to false, the spline will not be recomputed.
void BALL::CubicSpline1D::setVerbosity |
( |
int |
verbosity | ) |
|
|
inline |
std::vector<float> BALL::CubicSpline1D::curvature_ |
|
private |
float BALL::CubicSpline1D::default_value_ |
|
private |
The default value of the spline. In case the access-value is out of bounds or if we have to less points, the { default_value_} is returned.
Definition at line 251 of file cubicSpline1D.h.
bool BALL::CubicSpline1D::is_natural_ |
|
private |
float BALL::CubicSpline1D::lower_bound_ |
|
private |
float BALL::CubicSpline1D::lower_derivative_ |
|
private |
bool BALL::CubicSpline1D::return_average_ |
|
private |
std::vector<float> BALL::CubicSpline1D::sample_positions_ |
|
private |
std::vector<float> BALL::CubicSpline1D::sample_values_ |
|
private |
float BALL::CubicSpline1D::upper_bound_ |
|
private |
float BALL::CubicSpline1D::upper_derivative_ |
|
private |
int BALL::CubicSpline1D::verbosity_ |
|
private |
const int BALL::CubicSpline1D::VERBOSITY_LEVEL_CRITICAL |
|
static |
const int BALL::CubicSpline1D::VERBOSITY_LEVEL_DEBUG |
|
static |