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::GenericNumericQuadraticFunction< T > roboptim::GenericConstantFunction< T > roboptim::GenericIdentityFunction< T > roboptim::GenericNumericLinearFunction< T >

Public Types

typedef
GenericTwiceDifferentiableFunction
< T > 
parent_t
 
typedef parent_t::size_type size_type
 
- Public Types inherited from roboptim::GenericTwiceDifferentiableFunction< T >
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 std::pair< size_type,
size_type
jacobianSize_t
 Jacobian size type (pair of values). More...
 
- Public Types inherited from roboptim::GenericFunction< T >
typedef T traits_t
 Traits type. More...
 
typedef GenericFunctionTraits
< T >::value_type 
value_type
 Values type. More...
 
typedef GenericFunctionTraits
< T >::size_type 
size_type
 Size type. More...
 
typedef std::string name_t
 Type of a function argument name. More...
 
typedef std::vector< name_tnames_t
 Type of a vector of function argument names. More...
 
typedef std::pair< value_type,
value_type
interval_t
 Interval type (lower, upper). More...
 
typedef std::vector< interval_tintervals_t
 Vector of intervals. More...
 
typedef boost::tuple
< value_type, value_type,
value_type
discreteInterval_t
 Types representing a discrete interval. More...
 

Public Member Functions

 ROBOPTIM_ADD_FLAG (ROBOPTIM_IS_QUADRATIC)
 
 GenericQuadraticFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string())
 Concrete class constructor should call this constructor. More...
 
virtual std::ostream & print (std::ostream &) const
 Display the function on the specified output stream. More...
 
- Public Member Functions inherited from roboptim::GenericTwiceDifferentiableFunction< T >
 ROBOPTIM_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ (GenericDifferentiableFunction< T >)
 
 ROBOPTIM_ADD_FLAG (ROBOPTIM_IS_TWICE_DIFFERENTIABLE)
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (hessian)
 Hessian type. More...
 
hessianSize_t hessianSize () const
 Return the size of a hessian. More...
 
bool isValidHessian (const_hessian_ref hessian) const
 Check if the hessian is valid (check sizes). More...
 
hessian_t hessian (const_argument_ref argument, size_type functionId=0) const
 Compute the hessian at a given point. More...
 
void hessian (hessian_ref hessian, const_argument_ref argument, size_type functionId=0) const
 Compute the hessian at a given point. More...
 
- Public Member Functions inherited from roboptim::GenericDifferentiableFunction< T >
 ROBOPTIM_FUNCTION_FWD_TYPEDEFS_ (GenericFunction< T >)
 
 ROBOPTIM_ADD_FLAG (ROBOPTIM_IS_DIFFERENTIABLE)
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (gradient)
 Gradient type. More...
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (jacobian)
 Jacobian type. More...
 
size_type gradientSize () const
 Return the gradient size. More...
 
jacobianSize_t jacobianSize () const
 Return the jacobian size as a pair. More...
 
bool isValidGradient (const_gradient_ref gradient) const
 Check if the gradient is valid (check size). More...
 
bool isValidJacobian (const_jacobian_ref jacobian) const
 Check if the jacobian is valid (check sizes). More...
 
jacobian_t jacobian (const_argument_ref argument) const
 Computes the jacobian. More...
 
void jacobian (jacobian_ref jacobian, const_argument_ref argument) const
 Computes the jacobian. More...
 
gradient_t gradient (const_argument_ref argument, size_type functionId=0) const
 Computes the gradient. More...
 
void gradient (gradient_ref gradient, const_argument_ref argument, size_type functionId=0) const
 Computes the gradient. More...
 
- Public Member Functions inherited from roboptim::GenericFunction< T >
 ROBOPTIM_DEFINE_FLAG_TYPE ()
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (vector)
 Basic (column) vector type. More...
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (rowVector)
 Row vector type. More...
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (matrix)
 Basic matrix type. More...
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (result)
 Type of a function evaluation result. More...
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (argument)
 Type of a function evaluation argument. More...
 
bool isValidResult (const_result_ref result) const
 Check the given result size is valid. More...
 
GenericFunction< T >::size_type inputSize () const
 Return the input size (i.e. More...
 
GenericFunction< T >::size_type outputSize () const
 Return the output size (i.e. More...
 
virtual ~GenericFunction ()
 Trivial destructor. More...
 
result_t operator() (const_argument_ref argument) const
 Evaluate the function at a specified point. More...
 
void operator() (result_ref result, const_argument_ref argument) const
 Evaluate the function at a specified point. More...
 
const std::string & getName () const
 Get function name. More...
 
virtual flag_t getFlags () const
 Get the type-checking flag. More...
 
template<typename F >
void foreach (const discreteInterval_t interval, F functor)
 
template<typename F >
void foreach (const interval_t interval, const size_type n, F functor)
 
template<class ExpectedType >
ExpectedType * castInto (bool check=false)
 Cast function to ExpectedType. More...
 
template<class ExpectedType >
const ExpectedType * castInto (bool check=false) const
 Cast function to ExpectedType (const). More...
 
template<class ExpectedType >
bool asType () const
 Fonction type checking. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from roboptim::GenericFunction< T >
static value_type epsilon ()
 Get the value of the machine epsilon, useful for floating types comparison. More...
 
static value_type infinity ()
 Get the value that symbolizes positive infinity. More...
 
static interval_t makeInterval (value_type l, value_type u)
 Construct an interval from a lower and upper bound. More...
 
static interval_t makeInfiniteInterval ()
 Construct an infinite interval. More...
 
static interval_t makeLowerInterval (value_type l)
 Construct an interval from a lower bound. More...
 
static interval_t makeUpperInterval (value_type u)
 Construct an interval from an upper bound. More...
 
static value_type getLowerBound (const interval_t &interval)
 Get the lower bound of an interval. More...
 
static value_type getUpperBound (const interval_t &interval)
 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 value_type getLowerBound (const discreteInterval_t &interval)
 Get the lower bound of a discrete interval. More...
 
static value_type getUpperBound (const discreteInterval_t &interval)
 Get the upper bound of a discrete interval. More...
 
static value_type getStep (const discreteInterval_t &interval)
 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 Public Attributes inherited from roboptim::GenericFunction< T >
static const flag_t flags = ROBOPTIM_IS_FUNCTION
 Flag representing the Roboptim Function type. More...
 
- Protected Member Functions inherited from roboptim::GenericTwiceDifferentiableFunction< T >
 GenericTwiceDifferentiableFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string())
 Concrete class constructor should call this constructor. More...
 
virtual void impl_hessian (hessian_ref hessian, const_argument_ref argument, size_type functionId=0) const =0
 Hessian evaluation. More...
 
void setZero (hessian_ref symmetric) const
 Set a symmetric matrix to zero. 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 () 
)

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
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::GenericNumericQuadraticFunction< T >, roboptim::GenericConstantFunction< T >, roboptim::GenericNumericLinearFunction< T >, roboptim::GenericIdentityFunction< T >, and roboptim::GenericLinearFunction< T >.

template<typename T >
roboptim::GenericQuadraticFunction< T >::ROBOPTIM_ADD_FLAG ( ROBOPTIM_IS_QUADRATIC  )