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. More...
 
typedef std::pair< size_type, size_typehessianSize_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_typejacobianSize_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_typeinterval_t
 Interval type (lower, upper). More...
 
typedef std::vector< interval_tintervals_t
 Vector of intervals. More...
 
typedef boost::tuple< value_type, value_type, value_typediscreteInterval_t
 Types representing a discrete interval. More...
 

Public Member Functions

 GenericQuadraticFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string()) throw ()
 Concrete class constructor should call this constructor. More...
 
virtual std::ostream & print (std::ostream &) const throw ()
 Display the function on the specified output stream. 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...
 

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. 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...
 
- 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...
 
virtual void impl_hessian (hessian_t &hessian, const argument_t &argument, size_type functionId=0) const =0 throw ()
 Hessian evaluation. 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...
 
virtual void impl_jacobian (jacobian_t &jacobian, const argument_t &arg) const throw ()
 Jacobian evaluation. More...
 
virtual void impl_gradient (gradient_t &gradient, const argument_t &argument, size_type functionId=0) const =0 throw ()
 Gradient evaluation. 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...
 
virtual void impl_compute (result_t &result, const argument_t &argument) const =0 throw ()
 Function evaluation. More...
 
- Static Protected Attributes inherited from roboptim::GenericFunction< T >
static log4cxx::LoggerPtr logger
 Pointer to function logger (see log4cxx documentation). More...
 

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.