Crocoddyl
ActivationModelSmooth1NormTpl< _Scalar > Class Template Reference

Smooth-abs activation. More...

#include <smooth-1norm.hpp>

Inheritance diagram for ActivationModelSmooth1NormTpl< _Scalar >:
ActivationModelAbstractTpl< _Scalar >

Public Types

typedef ActivationDataAbstractTpl< Scalar > ActivationDataAbstract
 
typedef ActivationModelAbstractTpl< Scalar > Base
 
typedef ActivationDataSmooth1NormTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef MathBase::VectorXs VectorXs
 
- Public Types inherited from ActivationModelAbstractTpl< _Scalar >
typedef ActivationDataAbstractTpl< Scalar > ActivationDataAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 ActivationModelSmooth1NormTpl (const std::size_t nr, const Scalar eps=Scalar(1.))
 Initialize the smooth-abs activation model. More...
 
virtual void calc (const boost::shared_ptr< ActivationDataAbstract > &data, const Eigen::Ref< const VectorXs > &r)
 Compute the smooth-abs function. More...
 
virtual void calcDiff (const boost::shared_ptr< ActivationDataAbstract > &data, const Eigen::Ref< const VectorXs > &r)
 Compute the derivatives of the smooth-abs function. More...
 
virtual boost::shared_ptr< ActivationDataAbstractcreateData ()
 Create the smooth-abs activation data. More...
 
virtual void print (std::ostream &os) const
 Print relevant information of the smooth-1norm model. More...
 
- Public Member Functions inherited from ActivationModelAbstractTpl< _Scalar >
 ActivationModelAbstractTpl (const std::size_t nr)
 
std::size_t get_nr () const
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 
- Public Attributes inherited from ActivationModelAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Protected Attributes

Scalar eps_
 < Dimension of the residual vector More...
 
std::size_t nr_
 
- Protected Attributes inherited from ActivationModelAbstractTpl< _Scalar >
std::size_t nr_
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ActivationModelSmooth1NormTpl< _Scalar >

Smooth-abs activation.

This activation function describes a smooth representation of an absolute activation (1-norm) for each element of a residual vector, i.e.

\[ \begin{equation} sum^nr_{i=0} \sqrt{\epsilon + \|r_i\|^2} \end{equation} \]

where \(\epsilon\) defines the smoothing factor, \(r_i\) is the scalar residual for the \(i\) constraints, \(nr\) is the dimension of the residual vector.

The computation of the function and it derivatives are carried out in calc() and caldDiff(), respectively.

See also
calc(), calcDiff(), createData()

Definition at line 37 of file smooth-1norm.hpp.

Constructor & Destructor Documentation

◆ ActivationModelSmooth1NormTpl()

ActivationModelSmooth1NormTpl ( const std::size_t  nr,
const Scalar  eps = Scalar(1.) 
)
inlineexplicit

Initialize the smooth-abs activation model.

The default eps value is defined as 1.

Parameters
[in]nrDimension of the residual vector
[in]epsSmoothing factor (default: 1.)

Definition at line 58 of file smooth-1norm.hpp.

Member Function Documentation

◆ calc()

virtual void calc ( const boost::shared_ptr< ActivationDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  r 
)
inlinevirtual

Compute the smooth-abs function.

Parameters
[in]dataSmooth-abs activation data
[in]rResidual vector \(\mathbf{r}\in\mathbb{R}^{nr}\)

Implements ActivationModelAbstractTpl< _Scalar >.

Definition at line 79 of file smooth-1norm.hpp.

◆ calcDiff()

virtual void calcDiff ( const boost::shared_ptr< ActivationDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  r 
)
inlinevirtual

Compute the derivatives of the smooth-abs function.

Parameters
[in]dataSmooth-abs activation data
[in]rResidual vector \(\mathbf{r}\in\mathbb{R}^{nr}\)

Implements ActivationModelAbstractTpl< _Scalar >.

Definition at line 98 of file smooth-1norm.hpp.

◆ createData()

virtual boost::shared_ptr<ActivationDataAbstract> createData ( )
inlinevirtual

Create the smooth-abs activation data.

Returns
the activation data

Reimplemented from ActivationModelAbstractTpl< _Scalar >.

Definition at line 117 of file smooth-1norm.hpp.

◆ print()

virtual void print ( std::ostream &  os) const
inlinevirtual

Print relevant information of the smooth-1norm model.

Parameters
[out]osOutput stream object

Reimplemented from ActivationModelAbstractTpl< _Scalar >.

Definition at line 126 of file smooth-1norm.hpp.

Member Data Documentation

◆ eps_

Scalar eps_
protected

< Dimension of the residual vector

Smoothing factor

Definition at line 132 of file smooth-1norm.hpp.


The documentation for this class was generated from the following file: