aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
unary-function.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include "
aligator/core/function-abstract.hpp
"
6
7
namespace
aligator
{
8
11
template
<
typename
_Scalar>
12
struct
UnaryFunctionTpl
:
StageFunctionTpl
<_Scalar> {
13
using
Scalar
= _Scalar;
14
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
15
using
Base
=
StageFunctionTpl<Scalar>
;
16
using
Data
=
StageFunctionDataTpl<Scalar>
;
17
18
using
Base::Base;
19
20
virtual
void
evaluate
(
const
ConstVectorRef &x,
Data
&data)
const
= 0;
21
virtual
void
computeJacobians
(
const
ConstVectorRef &x,
Data
&data)
const
= 0;
22
virtual
void
computeVectorHessianProducts
(
const
ConstVectorRef &
/*x*/
,
23
const
ConstVectorRef &
/*lbda*/
,
24
Data
&
/*data*/
)
const
{}
25
26
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &,
27
Data
&data)
const override
{
28
this->
evaluate
(x, data);
29
}
30
31
void
computeJacobians
(
const
ConstVectorRef &x,
const
ConstVectorRef &,
32
Data
&data)
const override
{
33
this->
computeJacobians
(x, data);
34
}
35
36
void
computeVectorHessianProducts
(
const
ConstVectorRef &x,
37
const
ConstVectorRef &,
38
const
ConstVectorRef &lbda,
39
Data
&data)
const override
{
40
this->
computeVectorHessianProducts
(x, lbda, data);
41
}
42
};
43
44
#define ALIGATOR_UNARY_FUNCTION_INTERFACE(Scalar) \
45
using Base = UnaryFunctionTpl<Scalar>; \
46
using Base::evaluate; \
47
using Base::computeJacobians; \
48
using Base::computeVectorHessianProducts
49
50
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
51
extern
template
struct
UnaryFunctionTpl<context::Scalar>;
52
#endif
53
}
// namespace aligator
function-abstract.hpp
Base definitions for ternary functions.
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::StageFunctionDataTpl
Base struct for function data.
Definition
function-abstract.hpp:73
aligator::StageFunctionTpl::StageFunctionTpl
StageFunctionTpl(const int ndx, const int nu, const int nr)
aligator::UnaryFunctionTpl
Represents unary functions of the form , with no control (or next-state) arguments.
Definition
unary-function.hpp:12
aligator::UnaryFunctionTpl::evaluate
void evaluate(const ConstVectorRef &x, const ConstVectorRef &, Data &data) const override
Evaluate the function.
Definition
unary-function.hpp:26
aligator::UnaryFunctionTpl::evaluate
virtual void evaluate(const ConstVectorRef &x, Data &data) const =0
aligator::UnaryFunctionTpl::computeVectorHessianProducts
void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &, const ConstVectorRef &lbda, Data &data) const override
Compute the vector-hessian products of this function.
Definition
unary-function.hpp:36
aligator::UnaryFunctionTpl::computeJacobians
virtual void computeJacobians(const ConstVectorRef &x, Data &data) const =0
aligator::UnaryFunctionTpl::computeVectorHessianProducts
virtual void computeVectorHessianProducts(const ConstVectorRef &, const ConstVectorRef &, Data &) const
Definition
unary-function.hpp:22
aligator::UnaryFunctionTpl::computeJacobians
void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &, Data &data) const override
Compute Jacobians of this function.
Definition
unary-function.hpp:31
aligator::UnaryFunctionTpl< Scalar >::Data
StageFunctionDataTpl< Scalar > Data
Definition
unary-function.hpp:16
aligator::UnaryFunctionTpl< Scalar >::Scalar
Scalar Scalar
Definition
unary-function.hpp:13
aligator::UnaryFunctionTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::UnaryFunctionTpl< Scalar >::Base
StageFunctionTpl< Scalar > Base
Definition
unary-function.hpp:15
include
aligator
core
unary-function.hpp
Generated by
1.17.0