Loading...
Searching...
No Matches
roboptim::GenericSumOfC1Squares< T > Class Template Reference

Generic sum of the squares of differentiable functions. More...

#include <roboptim/core/sum-of-c1-squares.hh>

Inheritance diagram for roboptim::GenericSumOfC1Squares< T >:
Collaboration diagram for roboptim::GenericSumOfC1Squares< T >:

Public Member Functions

 GenericSumOfC1Squares (const boost::shared_ptr< parent_t > &function, const std::string &name)
 Constructor by vector valued functions The value of this scalar valued function is the sum of the squares of the coordinates of the vector valued base function.
 
 GenericSumOfC1Squares (const GenericSumOfC1Squares< T > &function)
 
virtual ~GenericSumOfC1Squares ()
 
const boost::shared_ptr< const parent_t > & baseFunction () const
 Get base function Base function is the vector valued function given at construction of this class.
 
Types
 ROBOPTIM_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ (GenericDifferentiableFunction< T >)
 
- Public Member Functions inherited from roboptim::GenericDifferentiableFunction< T >
 ROBOPTIM_FUNCTION_FWD_TYPEDEFS_ (GenericFunction< T >)
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (gradient)
 Gradient type.
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (jacobian)
 Jacobian type.
 
size_type gradientSize () const
 Return the gradient size.
 
jacobianSize_t jacobianSize () const
 Return the jacobian size as a pair.
 
bool isValidGradient (const_gradient_ref gradient) const
 Check if the gradient is valid (check size).
 
bool isValidJacobian (const_jacobian_ref jacobian) const
 Check if the jacobian is valid (check sizes).
 
jacobian_t jacobian (const_argument_ref argument) const
 Computes the jacobian.
 
void jacobian (jacobian_ref jacobian, const_argument_ref argument) const
 Computes the jacobian.
 
gradient_t gradient (const_argument_ref argument, size_type functionId=0) const
 Computes the gradient.
 
void gradient (gradient_ref gradient, const_argument_ref argument, size_type functionId=0) const
 Computes the gradient.
 
virtual std::ostream & print (std::ostream &o) const
 Display the function on the specified output stream.
 
- Public Member Functions inherited from roboptim::GenericFunction< T >
 ROBOPTIM_GENERATE_TRAITS_REFS_ (vector)
 Basic (column) vector type.
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (rowVector)
 Row vector type.
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (matrix)
 Basic matrix type.
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (result)
 Type of a function evaluation result.
 
 ROBOPTIM_GENERATE_TRAITS_REFS_ (argument)
 Type of a function evaluation argument.
 
bool isValidResult (const_result_ref result) const
 Check the given result size is valid.
 
GenericFunction< T >::size_type inputSize () const
 Return the input size (i.e.
 
GenericFunction< T >::size_type outputSize () const
 Return the output size (i.e.
 
virtual ~GenericFunction ()
 Trivial destructor.
 
result_t operator() (const_argument_ref argument) const
 Evaluate the function at a specified point.
 
void operator() (result_ref result, const_argument_ref argument) const
 Evaluate the function at a specified point.
 
const std::string & getName () const
 Get function name.
 

Protected Member Functions

virtual void impl_compute (result_ref result, const_argument_ref x) const
 Compute value of function Value is sum of squares of coordinates of vector valued base function.
 
virtual void impl_gradient (gradient_ref gradient, const_argument_ref x, size_type row=0) const
 Gradient.
 
- Protected Member Functions inherited from roboptim::GenericDifferentiableFunction< T >
 GenericDifferentiableFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string())
 Concrete class constructor should call this constructor.
 
virtual void impl_jacobian (jacobian_ref jacobian, const_argument_ref arg) const
 Jacobian evaluation.
 
void impl_jacobian (jacobian_ref jacobian, const_argument_ref argument) const
 
- Protected Member Functions inherited from roboptim::GenericFunction< T >
 GenericFunction (size_type inputSize, size_type outputSize=1, std::string name=std::string())
 Concrete class constructor should call this constructor.
 

Additional Inherited Members

- Public Types inherited from roboptim::GenericDifferentiableFunction< T >
typedef std::pair< size_type, size_typejacobianSize_t
 Jacobian size type (pair of values).
 
- Public Types inherited from roboptim::GenericFunction< T >
typedef T traits_t
 Traits type.
 
typedef GenericFunctionTraits< T >::value_type value_type
 Values type.
 
typedef GenericFunctionTraits< T >::size_type size_type
 Size type.
 
typedef std::string name_t
 Type of a function argument name.
 
typedef std::vector< name_tnames_t
 Type of a vector of function argument names.
 
typedef std::pair< value_type, value_typeinterval_t
 Interval type (lower, upper).
 
typedef std::vector< interval_tintervals_t
 Vector of intervals.
 
typedef boost::tuple< value_type, value_type, value_typediscreteInterval_t
 Types representing a discrete interval.
 
- 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.
 
static value_type infinity ()
 Get the value that symbolizes positive infinity.
 
static interval_t makeInterval (value_type l, value_type u)
 Construct an interval from a lower and upper bound.
 
static interval_t makeInfiniteInterval ()
 Construct an infinite interval.
 
static interval_t makeLowerInterval (value_type l)
 Construct an interval from a lower bound.
 
static interval_t makeUpperInterval (value_type u)
 Construct an interval from an upper bound.
 
static value_type getLowerBound (const interval_t &interval)
 Get the lower bound of an interval.
 
static value_type getUpperBound (const interval_t &interval)
 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 value_type getLowerBound (const discreteInterval_t &interval)
 Get the lower bound of a discrete interval.
 
static value_type getUpperBound (const discreteInterval_t &interval)
 Get the upper bound of a discrete interval.
 
static value_type getStep (const discreteInterval_t &interval)
 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.
 
- 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::GenericSumOfC1Squares< T >

Generic sum of the squares of differentiable functions.

This type enables roboptim to handle Levenberg-Marquardt algorithm. This algorithm indeed minimizes the sum of squares of differentiable functions.

The differentiable functions are stored in a vector valued function called base function.

Template Parameters
Tfunction type

Constructor & Destructor Documentation

◆ GenericSumOfC1Squares() [1/2]

template<typename T >
roboptim::GenericSumOfC1Squares< T >::GenericSumOfC1Squares ( const boost::shared_ptr< parent_t > & function,
const std::string & name )
explicit

Constructor by vector valued functions The value of this scalar valued function is the sum of the squares of the coordinates of the vector valued base function.

◆ GenericSumOfC1Squares() [2/2]

template<typename T >
roboptim::GenericSumOfC1Squares< T >::GenericSumOfC1Squares ( const GenericSumOfC1Squares< T > & function)
explicit

◆ ~GenericSumOfC1Squares()

template<typename T >
roboptim::GenericSumOfC1Squares< T >::~GenericSumOfC1Squares ( )
virtual

Member Function Documentation

◆ baseFunction()

template<typename T >
const boost::shared_ptr< const typename GenericSumOfC1Squares< T >::parent_t > & roboptim::GenericSumOfC1Squares< T >::baseFunction ( ) const

Get base function Base function is the vector valued function given at construction of this class.

◆ impl_compute()

template<typename T >
void roboptim::GenericSumOfC1Squares< T >::impl_compute ( result_ref result,
const_argument_ref x ) const
protectedvirtual

Compute value of function Value is sum of squares of coordinates of vector valued base function.

Implements roboptim::GenericFunction< T >.

◆ impl_gradient()

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

◆ ROBOPTIM_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_()

template<typename T >
roboptim::GenericSumOfC1Squares< T >::ROBOPTIM_DIFFERENTIABLE_FUNCTION_FWD_TYPEDEFS_ ( GenericDifferentiableFunction< T > )