roboptim::GenericNumericQuadraticFunction< T > Class Template Reference

Build a quadratic function from a matrix and a vector. More...

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

Public Types

typedef matrix_t symmetric_t
 Symmetric matrix type. More...
 
typedef const_matrix_ref const_symmetric_ref
 

Public Member Functions

 ROBOPTIM_TWICE_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ (GenericQuadraticFunction< T >)
 
 GenericNumericQuadraticFunction (const_symmetric_ref A, const_vector_ref b)
 Build a quadratic function from a matrix and a vector. More...
 
 GenericNumericQuadraticFunction (const_symmetric_ref A, const_vector_ref b, const_vector_ref c)
 Build a quadratic function from a matrix and a vector. More...
 
 ~GenericNumericQuadraticFunction ()
 
virtual std::ostream & print (std::ostream &) const
 Display the function on the specified output stream. More...
 
const_matrix_ref A () const
 
const_vector_ref b () const
 
const_vector_ref c () const
 
matrix_ref A ()
 
vector_ref b ()
 
vector_ref c ()
 

Protected Member Functions

void impl_compute (result_ref, const_argument_ref) const
 
void impl_gradient (gradient_ref, const_argument_ref, size_type=0) const
 
void impl_jacobian (jacobian_ref, const_argument_ref) const
 
void impl_hessian (hessian_ref hessian, const_argument_ref argument, size_type functionId=0) const
 
void impl_jacobian (jacobian_ref jacobian, const_argument_ref x) const
 
void impl_gradient (gradient_ref gradient, const_argument_ref x, size_type) const
 

Detailed Description

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

Build a quadratic function from a matrix and a vector.

Implement a quadratic function using the general formula:

\[f(x) = x^t A x + b^t x + c\]

where $A$ and $B$ are set when the class is instantiated.

Note
A is a symmetric matrix.
Examples
numeric-quadratic-function.cc.

Member Typedef Documentation

◆ const_symmetric_ref

template<typename T >
typedef const_matrix_ref roboptim::GenericNumericQuadraticFunction< T >::const_symmetric_ref

◆ symmetric_t

template<typename T >
typedef matrix_t roboptim::GenericNumericQuadraticFunction< T >::symmetric_t

Symmetric matrix type.

Constructor & Destructor Documentation

◆ GenericNumericQuadraticFunction() [1/2]

template<typename T >
roboptim::GenericNumericQuadraticFunction< T >::GenericNumericQuadraticFunction ( const_symmetric_ref  A,
const_vector_ref  b 
)

Build a quadratic function from a matrix and a vector.

c here is omitted and set to zero.

See class documentation for A and b definition.

Parameters
AA symmetric matrix
bb vector

◆ GenericNumericQuadraticFunction() [2/2]

template<typename T >
roboptim::GenericNumericQuadraticFunction< T >::GenericNumericQuadraticFunction ( const_symmetric_ref  A,
const_vector_ref  b,
const_vector_ref  c 
)

Build a quadratic function from a matrix and a vector.

See class documentation for A, b, c definition.

Parameters
AA symmetric matrix (inputSize * inputSize)
bb vector (size inputSize)
cc vector (size one)

◆ ~GenericNumericQuadraticFunction()

Member Function Documentation

◆ A() [1/2]

template<typename T >
matrix_ref roboptim::GenericNumericQuadraticFunction< T >::A ( )
inline

◆ A() [2/2]

template<typename T >
const_matrix_ref roboptim::GenericNumericQuadraticFunction< T >::A ( ) const
inline

◆ b() [1/2]

template<typename T >
vector_ref roboptim::GenericNumericQuadraticFunction< T >::b ( )
inline

◆ b() [2/2]

template<typename T >
const_vector_ref roboptim::GenericNumericQuadraticFunction< T >::b ( ) const
inline

◆ c() [1/2]

template<typename T >
vector_ref roboptim::GenericNumericQuadraticFunction< T >::c ( )
inline

◆ c() [2/2]

template<typename T >
const_vector_ref roboptim::GenericNumericQuadraticFunction< T >::c ( ) const
inline

◆ impl_compute()

template<typename T >
void roboptim::GenericNumericQuadraticFunction< T >::impl_compute ( result_ref  result,
const_argument_ref  argument 
) const
protected

◆ impl_gradient() [1/2]

void roboptim::GenericNumericQuadraticFunction< EigenMatrixSparse >::impl_gradient ( gradient_ref  gradient,
const_argument_ref  x,
size_type   
) const
inlineprotected

◆ impl_gradient() [2/2]

template<typename T >
void roboptim::GenericNumericQuadraticFunction< T >::impl_gradient ( gradient_ref  gradient,
const_argument_ref  x,
size_type  = 0 
) const
protected

◆ impl_hessian()

template<typename T >
void roboptim::GenericNumericQuadraticFunction< T >::impl_hessian ( hessian_ref  hessian,
const_argument_ref  argument,
size_type  functionId = 0 
) const
protected

◆ impl_jacobian() [1/2]

void roboptim::GenericNumericQuadraticFunction< EigenMatrixSparse >::impl_jacobian ( jacobian_ref  jacobian,
const_argument_ref  x 
) const
inlineprotected

ROBOPTIM_DO_NOT_CHECK_ALLOCATION

ROBOPTIM_DO_NOT_CHECK_ALLOCATION

References roboptim::is_malloc_allowed(), and roboptim::set_is_malloc_allowed().

◆ impl_jacobian() [2/2]

template<typename T >
void roboptim::GenericNumericQuadraticFunction< T >::impl_jacobian ( jacobian_ref  jacobian,
const_argument_ref  x 
) const
protected

◆ print()

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

Display the function on the specified output stream.

Parameters
ooutput stream used for display
Returns
output stream

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

◆ ROBOPTIM_TWICE_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_()

template<typename T >
roboptim::GenericNumericQuadraticFunction< T >::ROBOPTIM_TWICE_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ ( GenericQuadraticFunction< T >  )