All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
roboptim::GenericQuadraticFunction< T > Class Template Reference

Define an abstract quadratic function. More...

#include <roboptim/core/quadratic-function.hh>

Inheritance diagram for roboptim::GenericQuadraticFunction< T >:
roboptim::GenericTwiceDifferentiableFunction< T > roboptim::GenericDifferentiableFunction< T > roboptim::GenericFunction< T > roboptim::GenericLinearFunction< T > roboptim::NumericQuadraticFunction roboptim::ConstantFunction roboptim::GenericNumericLinearFunction< T > roboptim::IdentityFunction

Public Types

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.
typedef std::pair< size_type,
size_type
hessianSize_t
 Hessian size type represented as a pair of values.
- Public Types inherited from roboptim::GenericDifferentiableFunction< T >
typedef GenericFunctionTraits
< T >::gradient_t 
gradient_t
 Gradient type.
typedef GenericFunctionTraits
< T >::jacobian_t 
jacobian_t
 Jacobian type.
typedef std::pair< size_type,
size_type
jacobianSize_t
 Jacobian size type (pair of values).
- Public Types inherited from roboptim::GenericFunction< T >
typedef GenericFunctionTraits
< T >::value_type 
value_type
 Values type.
typedef GenericFunctionTraits
< T >::vector_t 
vector_t
 Basic vector type.
typedef GenericFunctionTraits
< T >::matrix_t 
matrix_t
 Basic matrix type.
typedef GenericFunctionTraits
< T >::size_type 
size_type
 Size type.
typedef GenericFunctionTraits
< T >::result_t 
result_t
 Type of a function evaluation result.
typedef GenericFunctionTraits
< T >::argument_t 
argument_t
 Type of a function evaluation argument.
typedef std::pair< value_type,
value_type
interval_t
 Interval type (lower, upper).
typedef std::vector< interval_tintervals_t
 Vector of intervals.
typedef boost::tuple
< value_type, value_type,
value_type
discreteInterval_t
 Types representing a discrete interval.

Public Member Functions

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

Additional Inherited Members

- 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.
static value_type infinity () throw ()
 Get the value that symbolizes positive infinity.
static interval_t makeInterval (value_type l, value_type u) throw ()
 Construct an interval from a lower and upper bound.
static interval_t makeInfiniteInterval () throw ()
 Construct an infinite interval.
static interval_t makeLowerInterval (value_type l) throw ()
 Construct an interval from a lower bound.
static interval_t makeUpperInterval (value_type u) throw ()
 Construct an interval from an upper bound.
static double getLowerBound (const interval_t &interval) throw ()
 Get the lower bound of an interval.
static double getUpperBound (const interval_t &interval) throw ()
 Get the upper bound of an interval.
static discreteInterval_t makeDiscreteInterval (value_type min, value_type max, value_type step)
 Construct a discrete interval.
static discreteInterval_t makeDiscreteInterval (interval_t interval, value_type step)
 Construct a discrete interval.
static double getLowerBound (const discreteInterval_t &interval) throw ()
 Get the lower bound of a discrete interval.
static double getUpperBound (const discreteInterval_t &interval) throw ()
 Get the upper bound of a discrete interval.
static double getStep (const discreteInterval_t &interval) throw ()
 Get the upper step of a discrete interval.
template<typename F >
static void foreach (const discreteInterval_t interval, F functor)
 Iterate on an interval.
template<typename F >
static void foreach (const interval_t interval, const size_type n, F functor)
 Iterate on an interval.
- 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.
virtual void impl_hessian (hessian_t &hessian, const argument_t &argument, size_type functionId=0) const =0 throw ()
 Hessian evaluation.
void setZero (hessian_t &symmetric) const
 Set a symmetric matrix to zero.
- Static Protected Attributes inherited from roboptim::GenericFunction< T >
static log4cxx::LoggerPtr logger
 Pointer to function logger (see log4cxx documentation).

Detailed Description

template<typename T>
class roboptim::GenericQuadraticFunction< T >

Define an abstract quadratic function.

Inherit from this class when implementing quadratic functions.

Member Typedef Documentation

Constructor & Destructor Documentation

template<typename T >
roboptim::GenericQuadraticFunction< T >::GenericQuadraticFunction ( size_type  inputSize,
size_type  outputSize = 1,
std::string  name = std::string () 
) throw ()

Concrete class constructor should call this constructor.

Parameters
inputSizefunction arity
outputSizeresult size
namefunction's name

Member Function Documentation

template<typename T >
std::ostream & roboptim::GenericQuadraticFunction< T >::print ( std::ostream &  o) const throw ()
virtual

Display the function on the specified output stream.

Parameters
ooutput stream used for display
Returns
output stream

Reimplemented from roboptim::GenericTwiceDifferentiableFunction< T >.

Reimplemented in roboptim::GenericLinearFunction< T >, roboptim::NumericQuadraticFunction, roboptim::GenericNumericLinearFunction< T >, roboptim::IdentityFunction, and roboptim::ConstantFunction.