aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
function-abstract.hpp
Go to the documentation of this file.
1
4
#pragma once
5
6
#include "
aligator/context.hpp
"
7
#include <ostream>
8
9
namespace
aligator
{
10
12
template
<
typename
_Scalar>
struct
StageFunctionTpl
{
13
public
:
14
using
Scalar
= _Scalar;
15
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
16
using
Data
=
StageFunctionDataTpl<Scalar>
;
17
19
const
int
ndx1
;
21
const
int
nu
;
23
const
int
nr
;
24
25
StageFunctionTpl
(
const
int
ndx,
const
int
nu
,
const
int
nr
);
26
33
virtual
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
34
Data
&data)
const
= 0;
35
50
virtual
void
computeJacobians
(
const
ConstVectorRef &x,
51
const
ConstVectorRef &u,
Data
&data)
const
= 0;
52
61
virtual
void
computeVectorHessianProducts
(
const
ConstVectorRef &x,
62
const
ConstVectorRef &u,
63
const
ConstVectorRef &lbda,
64
Data
&data)
const
;
65
66
virtual
~StageFunctionTpl
() =
default
;
67
69
virtual
shared_ptr<Data>
createData
()
const
;
70
};
71
73
template
<
typename
_Scalar>
struct
StageFunctionDataTpl
{
74
using
Scalar
= _Scalar;
75
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
76
77
const
int
ndx1
;
78
const
int
nu
;
79
const
int
nr
;
81
const
int
nvar
=
ndx1
+
nu
;
82
84
VectorXs
value_
;
85
VectorRef
valref_
;
87
MatrixXs
jac_buffer_
;
89
MatrixXs
vhp_buffer_
;
91
MatrixRef
Jx_
;
93
MatrixRef
Ju_
;
94
95
ConstMatrixRef
Jx
()
const
{
return
Jx_
; }
96
ConstMatrixRef
Ju
()
const
{
return
Ju_
; }
97
MatrixRef
Jx
() {
return
Jx_
; }
98
MatrixRef
Ju
() {
return
Ju_
; }
99
100
/* Vector-Hessian product buffers */
101
102
MatrixRef
Hxx_
;
103
MatrixRef
Hxu_
;
104
MatrixRef
Huu_
;
105
107
StageFunctionDataTpl
(
const
int
ndx,
const
int
nu
,
const
int
nr
);
108
explicit
StageFunctionDataTpl
(
const
StageFunctionTpl<Scalar>
&model);
109
virtual
~StageFunctionDataTpl
() =
default
;
110
};
111
112
template
<
typename
T>
113
std::ostream &
operator<<
(std::ostream &oss,
114
const
StageFunctionDataTpl<T>
&self);
115
116
extern
template
struct
StageFunctionTpl<context::Scalar>
;
117
extern
template
struct
StageFunctionDataTpl<context::Scalar>
;
118
extern
template
std::ostream &
119
operator<<
(std::ostream &oss,
120
const
StageFunctionDataTpl<context::Scalar>
&self);
121
122
}
// namespace aligator
context.hpp
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::operator<<
std::ostream & operator<<(std::ostream &oss, const StageFunctionDataTpl< T > &self)
aligator::StageFunctionDataTpl
Base struct for function data.
Definition
function-abstract.hpp:73
aligator::StageFunctionDataTpl::StageFunctionDataTpl
StageFunctionDataTpl(const StageFunctionTpl< Scalar > &model)
aligator::StageFunctionDataTpl< Scalar >::nu
const int nu
Definition
function-abstract.hpp:78
aligator::StageFunctionDataTpl::Ju
MatrixRef Ju()
Definition
function-abstract.hpp:98
aligator::StageFunctionDataTpl< Scalar >::Jx_
MatrixRef Jx_
Definition
function-abstract.hpp:91
aligator::StageFunctionDataTpl< Scalar >::nr
const int nr
Definition
function-abstract.hpp:79
aligator::StageFunctionDataTpl< Scalar >::Scalar
Scalar Scalar
Definition
function-abstract.hpp:74
aligator::StageFunctionDataTpl< Scalar >::ndx1
const int ndx1
Definition
function-abstract.hpp:77
aligator::StageFunctionDataTpl< Scalar >::jac_buffer_
MatrixXs jac_buffer_
Definition
function-abstract.hpp:87
aligator::StageFunctionDataTpl< Scalar >::vhp_buffer_
MatrixXs vhp_buffer_
Definition
function-abstract.hpp:89
aligator::StageFunctionDataTpl< Scalar >::Hxx_
MatrixRef Hxx_
Definition
function-abstract.hpp:102
aligator::StageFunctionDataTpl::Jx
ConstMatrixRef Jx() const
Definition
function-abstract.hpp:95
aligator::StageFunctionDataTpl::Jx
MatrixRef Jx()
Definition
function-abstract.hpp:97
aligator::StageFunctionDataTpl< Scalar >::nvar
const int nvar
Definition
function-abstract.hpp:81
aligator::StageFunctionDataTpl< Scalar >::Huu_
MatrixRef Huu_
Definition
function-abstract.hpp:104
aligator::StageFunctionDataTpl::StageFunctionDataTpl
StageFunctionDataTpl(const int ndx, const int nu, const int nr)
Default constructor.
aligator::StageFunctionDataTpl< Scalar >::Ju_
MatrixRef Ju_
Definition
function-abstract.hpp:93
aligator::StageFunctionDataTpl< Scalar >::valref_
VectorRef valref_
Definition
function-abstract.hpp:85
aligator::StageFunctionDataTpl< Scalar >::Hxu_
MatrixRef Hxu_
Definition
function-abstract.hpp:103
aligator::StageFunctionDataTpl::~StageFunctionDataTpl
virtual ~StageFunctionDataTpl()=default
aligator::StageFunctionDataTpl< Scalar >::value_
VectorXs value_
Definition
function-abstract.hpp:84
aligator::StageFunctionDataTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::StageFunctionDataTpl::Ju
ConstMatrixRef Ju() const
Definition
function-abstract.hpp:96
aligator::StageFunctionTpl
Class representing ternary functions .
Definition
function-abstract.hpp:12
aligator::StageFunctionTpl::computeVectorHessianProducts
virtual void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &lbda, Data &data) const
Compute the vector-hessian products of this function.
aligator::StageFunctionTpl::computeJacobians
virtual void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const =0
Compute Jacobians of this function.
aligator::StageFunctionTpl::~StageFunctionTpl
virtual ~StageFunctionTpl()=default
aligator::StageFunctionTpl< Scalar >::nu
const int nu
Definition
function-abstract.hpp:21
aligator::StageFunctionTpl< Scalar >::Data
StageFunctionDataTpl< Scalar > Data
Definition
function-abstract.hpp:16
aligator::StageFunctionTpl< Scalar >::Scalar
Scalar Scalar
Definition
function-abstract.hpp:14
aligator::StageFunctionTpl::evaluate
virtual void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const =0
Evaluate the function.
aligator::StageFunctionTpl::createData
virtual shared_ptr< Data > createData() const
Instantiate a Data object.
aligator::StageFunctionTpl< Scalar >::ndx1
const int ndx1
Definition
function-abstract.hpp:19
aligator::StageFunctionTpl< Scalar >::nr
const int nr
Definition
function-abstract.hpp:23
aligator::StageFunctionTpl::StageFunctionTpl
StageFunctionTpl(const int ndx, const int nu, const int nr)
aligator::StageFunctionTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
include
aligator
core
function-abstract.hpp
Generated by
1.17.0