All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
roboptim::IdentityFunction Class Reference
Mathematical functions

Identity function. More...

`#include <roboptim/core/identity-function.hh>`

Inheritance diagram for roboptim::IdentityFunction:

## Public Member Functions

| IdentityFunction (const vector_t &offset) throw ()
| Build an identity function. More...
| ~IdentityFunction () throw ()
virtual std::ostream & | print (std::ostream &) const throw ()
| Display the function on the specified output stream. More...
Public Member Functions inherited from roboptim::GenericLinearFunction< T >
| GenericLinearFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
| Concrete class constructor should call this constructor. More...
Public Member Functions inherited from roboptim::GenericQuadraticFunction< T >
| GenericQuadraticFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
| Concrete class constructor should call this constructor. More...
Public Member Functions inherited from roboptim::GenericTwiceDifferentiableFunction< T >
| ROBOPTIM_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ (GenericDifferentiableFunction< T >)
hessianSize_t | hessianSize () const throw ()
| Return the size of a hessian. More...
bool | isValidHessian (const hessian_t &hessian) const throw ()
| Check if the hessian is valid (check sizes). More...
hessian_t | hessian (const argument_t &argument, size_type functionId=0) const throw ()
| Compute the hessian at a given point. More...
void | hessian (hessian_t &hessian, const argument_t &argument, size_type functionId=0) const throw ()
| Compute the hessian at a given point. More...
Public Member Functions inherited from roboptim::GenericDifferentiableFunction< T >
| ROBOPTIM_FUNCTION_FWD_TYPEDEFS_ (GenericFunction< T >)
size_type | gradientSize () const throw ()
| Return the gradient size. More...
jacobianSize_t | jacobianSize () const throw ()
| Return the jacobian size as a pair. More...
bool | isValidGradient (const gradient_t &gradient) const throw ()
| Check if the gradient is valid (check size). More...
bool | isValidJacobian (const jacobian_t &jacobian) const throw ()
| Check if the jacobian is valid (check sizes). More...
jacobian_t | jacobian (const argument_t &argument) const throw ()
| Computes the jacobian. More...
void | jacobian (jacobian_t &jacobian, const argument_t &argument) const throw ()
| Computes the jacobian. More...
gradient_t | gradient (const argument_t &argument, size_type functionId=0) const throw ()
| Computes the gradient. More...
void | gradient (gradient_t &gradient, const argument_t &argument, size_type functionId=0) const throw ()
| Computes the gradient. More...
Public Member Functions inherited from roboptim::GenericFunction< T >
bool | isValidResult (const result_t &result) const throw ()
| Check the given result size is valid. More...
GenericFunction< T >::size_type | inputSize () const throw ()
| Return the input size (i.e. More...
GenericFunction< T >::size_type | outputSize () const throw ()
| Return the output size (i.e. More...
virtual | ~GenericFunction () throw ()
| Trivial destructor. More...
result_t | operator() (const argument_t &argument) const throw ()
| Evaluate the function at a specified point. More...
void | operator() (result_t &result, const argument_t &argument) const throw ()
| Evaluate the function at a specified point. More...
const std::string & | getName () const throw ()
| Get function name. More...

## Protected Member Functions

void | impl_compute (result_t &, const argument_t &) const throw ()
| Function evaluation. More...
void | impl_gradient (gradient_t &, const argument_t &, size_type=0) const throw ()
| Gradient evaluation. More...
void | impl_jacobian (jacobian_t &, const argument_t &) const throw ()
| Jacobian evaluation. More...
Protected Member Functions inherited from roboptim::GenericLinearFunction< T >
void | impl_hessian (hessian_t &hessian, const argument_t &argument, size_type functionId=0) const throw ()
| Hessian evaluation. More...
Protected Member Functions inherited from roboptim::GenericTwiceDifferentiableFunction< T >
| GenericTwiceDifferentiableFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
| Concrete class constructor should call this constructor. More...
void | setZero (hessian_t &symmetric) const
| Set a symmetric matrix to zero. More...
Protected Member Functions inherited from roboptim::GenericDifferentiableFunction< T >
| GenericDifferentiableFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
| Concrete class constructor should call this constructor. More...
template<>
void | impl_jacobian (jacobian_t &jacobian, const argument_t &argument) const throw()
Protected Member Functions inherited from roboptim::GenericFunction< T >
| GenericFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
| Concrete class constructor should call this constructor. More...

## Additional Inherited Members

Public Types inherited from roboptim::GenericLinearFunction< T >
typedef GenericQuadraticFunction< T > | parent_t
typedef parent_t::size_type | size_type
typedef parent_t::vector_t | vector_t
typedef parent_t::argument_t | argument_t
typedef parent_t::result_t | result_t
typedef parent_t::hessian_t | hessian_t
Public Types inherited from roboptim::GenericQuadraticFunction< T >
typedef GenericTwiceDifferentiableFunction < T > | parent_t
typedef parent_t::size_type | size_type
Public Types inherited from roboptim::GenericTwiceDifferentiableFunction< T >
typedef matrix_t | hessian_t
| Hessian type. More...
typedef std::pair< size_type, size_type > | hessianSize_t
| Hessian size type represented as a pair of values. More...
Public Types inherited from roboptim::GenericDifferentiableFunction< T >
typedef GenericFunctionTraits < T >::gradient_t | gradient_t
| Gradient type. More...
typedef GenericFunctionTraits < T >::jacobian_t | jacobian_t
| Jacobian type. More...
typedef std::pair< size_type, size_type > | jacobianSize_t
| Jacobian size type (pair of values). More...
Public Types inherited from roboptim::GenericFunction< T >
typedef GenericFunctionTraits < T >::value_type | value_type
| Values type. More...
typedef GenericFunctionTraits < T >::vector_t | vector_t
| Basic vector type. More...
typedef GenericFunctionTraits < T >::matrix_t | matrix_t
| Basic matrix type. More...
typedef GenericFunctionTraits < T >::size_type | size_type
| Size type. More...
typedef GenericFunctionTraits < T >::result_t | result_t
| Type of a function evaluation result. More...
typedef GenericFunctionTraits < T >::argument_t | argument_t
| Type of a function evaluation argument. More...
typedef std::pair< value_type, value_type > | interval_t
| Interval type (lower, upper). More...
typedef std::vector< interval_t > | intervals_t
| Vector of intervals. More...
typedef boost::tuple < value_type, value_type, value_type > | discreteInterval_t
| Types representing a discrete interval. More...
Static Public Member Functions inherited from roboptim::GenericFunction< T >
static value_type | epsilon () throw ()
| Get the value of the machine epsilon, useful for floating types comparison. More...
static value_type | infinity () throw ()
| Get the value that symbolizes positive infinity. More...
static interval_t | makeInterval (value_type l, value_type u) throw ()
| Construct an interval from a lower and upper bound. More...
static interval_t | makeInfiniteInterval () throw ()
| Construct an infinite interval. More...
static interval_t | makeLowerInterval (value_type l) throw ()
| Construct an interval from a lower bound. More...
static interval_t | makeUpperInterval (value_type u) throw ()
| Construct an interval from an upper bound. More...
static double | getLowerBound (const interval_t &interval) throw ()
| Get the lower bound of an interval. More...
static double | getUpperBound (const interval_t &interval) throw ()
| Get the upper bound of an interval. More...
static discreteInterval_t | makeDiscreteInterval (value_type min, value_type max, value_type step)
| Construct a discrete interval. More...
static discreteInterval_t | makeDiscreteInterval (interval_t interval, value_type step)
| Construct a discrete interval. More...
static double | getLowerBound (const discreteInterval_t &interval) throw ()
| Get the lower bound of a discrete interval. More...
static double | getUpperBound (const discreteInterval_t &interval) throw ()
| Get the upper bound of a discrete interval. More...
static double | getStep (const discreteInterval_t &interval) throw ()
| Get the upper step of a discrete interval. More...
template<typename F >
static void | foreach (const discreteInterval_t interval, F functor)
| Iterate on an interval. More...
template<typename F >
static void | foreach (const interval_t interval, const size_type n, F functor)
| Iterate on an interval. More...
Static Protected Attributes inherited from roboptim::GenericFunction< T >
static log4cxx::LoggerPtr | logger
| Pointer to function logger (see log4cxx documentation). More...

## Detailed Description

Identity function.

Implement a linear function using the formula:

where and are set when the class is instantiated.

Examples:
  identity-function.cc.

## Constructor & Destructor Documentation

roboptim::IdentityFunction::IdentityFunction | ( | const vector_t & | offset | ) |
throw | ( |
| ) |  |

Build an identity function.

Parameters

  offset | identity function offset

roboptim::IdentityFunction::~IdentityFunction | ( |  | ) |
throw | ( |
| ) |  |

## Member Function Documentation

void roboptim::IdentityFunction::impl_compute | ( | result_t & | result,
|  | const argument_t & | argument
| ) |  | const
throw | ( |
| ) |  |

protected virtual

Function evaluation.

Evaluate the function, has to be implemented in concrete classes.

Warning
  Do not call this function directly, call #operator()(result_t&, const argument_t&) const throw () instead.

Parameters

  result | result will be stored in this vector
  argument | point at which the function will be evaluated

Implements roboptim::GenericFunction< T >.

void roboptim::IdentityFunction::impl_gradient | ( | gradient_t & | gradient,
|  | const argument_t & | argument,
|  | size_type | functionId = `0`
| ) |  | const
throw | ( |
| ) |  |

protected virtual

Gradient evaluation.

Compute the gradient, has to be implemented in concrete classes. The gradient is computed for a specific sub-function which id is passed through the functionId argument.

Warning
  Do not call this function directly, call gradient instead.

Parameters

  gradient | gradient will be store in this argument
  argument | point where the gradient will be computed
  functionId | evaluated function id in the split representation

Implements roboptim::GenericDifferentiableFunction< T >.

void roboptim::IdentityFunction::impl_jacobian | ( | jacobian_t & | jacobian,
|  | const argument_t & | arg
| ) |  | const
throw | ( |
| ) |  |

protected virtual

Jacobian evaluation.

Computes the jacobian, can be overridden by concrete classes. The default behavior is to compute the jacobian from the gradient.

Warning
  Do not call this function directly, call jacobian instead.

Parameters

  jacobian | jacobian will be store in this argument
  arg | point where the jacobian will be computed

ROBOPTIM_DO_NOT_CHECK_ALLOCATION

Reimplemented from roboptim::GenericDifferentiableFunction< T >.

References roboptim::GenericDifferentiableFunction< T >::jacobianSize().

std::ostream & roboptim::IdentityFunction::print | ( | std::ostream & | o | ) | const
throw | ( |
| ) |  |

virtual

Display the function on the specified output stream.

Parameters

  o | output stream used for display

Returns
  output stream

Reimplemented from roboptim::GenericLinearFunction< T >.

References roboptim::decindent(), roboptim::iendl(), and roboptim::incindent().