roboptim::QuadraticFunction Class Reference

Define an abstract quadratic function. More...

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

+ Inheritance diagram for roboptim::QuadraticFunction:

Public Member Functions

 QuadraticFunction (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::TwiceDerivableFunction
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::DerivableFunction
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::Function
bool isValidResult (const result_t &result) const throw ()
 Check the given result size is valid. More...
 
size_type inputSize () const throw ()
 Return the input size (i.e. argument's vector size). More...
 
size_type outputSize () const throw ()
 Return the output size (i.e. result's vector size). More...
 
virtual ~Function () 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

- Public Types inherited from roboptim::TwiceDerivableFunction
typedef
ublas::symmetric_matrix
< value_type, ublas::lower > 
hessian_t
 Hessian type. More...
 
typedef std::pair< size_type,
size_type
hessianSize_t
 Hessian size type represented as a pair of values. More...
 
- Static Public Member Functions inherited from roboptim::Function
static const 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::TwiceDerivableFunction
 TwiceDerivableFunction (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...
 

Detailed Description

Define an abstract quadratic function.

Inherit from this class when implementing quadratic functions.

Constructor & Destructor Documentation

roboptim::QuadraticFunction::QuadraticFunction ( 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

std::ostream & roboptim::QuadraticFunction::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::TwiceDerivableFunction.

Reimplemented in roboptim::NumericQuadraticFunction, roboptim::LinearFunction, roboptim::NumericLinearFunction, roboptim::ConstantFunction, and roboptim::IdentityFunction.