aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
cost-finite-difference.hpp
Go to the documentation of this file.
1
#pragma once
2
#include "
aligator/core/cost-abstract.hpp
"
3
#include "
aligator/core/manifold-base.hpp
"
4
5
namespace
aligator
{
6
namespace
autodiff
{
7
8
template
<
typename
Scalar>
9
struct
CostFiniteDifferenceHelper
:
CostAbstractTpl
<Scalar> {
10
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
11
using
CostBase
=
CostAbstractTpl<Scalar>
;
12
using
CostData
=
CostDataAbstractTpl<Scalar>
;
13
14
using
CostBase::space
;
15
16
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
17
18
struct
Data
;
19
20
CostFiniteDifferenceHelper
(xyz::polymorphic<CostBase> cost,
21
const
Scalar
fd_eps
);
22
23
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
24
CostData
&data_)
const override
;
25
26
void
computeGradients
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
27
CostData
&data_)
const override
;
28
30
void
computeHessians
(
const
ConstVectorRef &,
const
ConstVectorRef &,
31
CostData
&)
const override
{}
32
33
auto
createData
() const -> shared_ptr<
CostData
> override;
34
35
xyz::polymorphic<
CostBase
>
cost_
;
36
Scalar
fd_eps
;
37
};
38
39
template <typename
Scalar
>
40
struct
CostFiniteDifferenceHelper
<
Scalar
>::
Data
:
CostData
{
41
42
shared_ptr<CostData>
c1
,
c2
;
43
VectorXs
dx
,
du
;
44
VectorXs
xp
,
up
;
45
46
Data
(
CostFiniteDifferenceHelper
const
&obj)
47
:
CostData
(obj)
48
,
dx
(obj.
ndx
())
49
,
du
(obj.
nu
)
50
,
xp
(obj.
nx
())
51
,
up
(obj.
nu
) {
52
c1
= obj.
cost_
->createData();
53
c2
= obj.
cost_
->createData();
54
}
55
};
56
57
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
58
extern
template
struct
CostFiniteDifferenceHelper<context::Scalar>
;
59
#endif
60
61
}
// namespace autodiff
62
}
// namespace aligator
cost-abstract.hpp
manifold-base.hpp
aligator::autodiff
Definition
cost-finite-difference.hpp:6
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::CostAbstractTpl< Scalar >::space
xyz::polymorphic< Manifold > space
Definition
cost-abstract.hpp:20
aligator::CostAbstractTpl< Scalar >::CostAbstractTpl
CostAbstractTpl(U &&space, const int nu)
Definition
cost-abstract.hpp:28
aligator::CostAbstractTpl< Scalar >::nx
int nx() const
Definition
cost-abstract.hpp:24
aligator::CostAbstractTpl< Scalar >::nu
int nu
Definition
cost-abstract.hpp:22
aligator::CostAbstractTpl< Scalar >::ndx
int ndx() const
Definition
cost-abstract.hpp:25
aligator::CostAbstractTpl< Scalar >::Scalar
Scalar Scalar
Definition
cost-abstract.hpp:14
aligator::CostDataAbstractTpl
Data struct for CostAbstractTpl.
Definition
cost-abstract.hpp:73
aligator::CostDataAbstractTpl< Scalar >::Scalar
Scalar Scalar
Definition
cost-abstract.hpp:74
aligator::ManifoldAbstractTpl
Base class for manifolds, to use in cost funcs, solvers...
Definition
manifold-base.hpp:11
aligator::autodiff::CostFiniteDifferenceHelper::Data
Definition
cost-finite-difference.hpp:40
aligator::autodiff::CostFiniteDifferenceHelper::Data::up
VectorXs up
Definition
cost-finite-difference.hpp:44
aligator::autodiff::CostFiniteDifferenceHelper::Data::c1
shared_ptr< CostData > c1
Definition
cost-finite-difference.hpp:42
aligator::autodiff::CostFiniteDifferenceHelper::Data::xp
VectorXs xp
Definition
cost-finite-difference.hpp:44
aligator::autodiff::CostFiniteDifferenceHelper::Data::c2
shared_ptr< CostData > c2
Definition
cost-finite-difference.hpp:42
aligator::autodiff::CostFiniteDifferenceHelper::Data::du
VectorXs du
Definition
cost-finite-difference.hpp:43
aligator::autodiff::CostFiniteDifferenceHelper::Data::Data
Data(CostFiniteDifferenceHelper const &obj)
Definition
cost-finite-difference.hpp:46
aligator::autodiff::CostFiniteDifferenceHelper::Data::dx
VectorXs dx
Definition
cost-finite-difference.hpp:43
aligator::autodiff::CostFiniteDifferenceHelper
Definition
cost-finite-difference.hpp:9
aligator::autodiff::CostFiniteDifferenceHelper::CostBase
CostAbstractTpl< Scalar > CostBase
Definition
cost-finite-difference.hpp:11
aligator::autodiff::CostFiniteDifferenceHelper::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
cost-finite-difference.hpp:10
aligator::autodiff::CostFiniteDifferenceHelper::CostFiniteDifferenceHelper
CostFiniteDifferenceHelper(xyz::polymorphic< CostBase > cost, const Scalar fd_eps)
aligator::autodiff::CostFiniteDifferenceHelper::fd_eps
Scalar fd_eps
Definition
cost-finite-difference.hpp:36
aligator::autodiff::CostFiniteDifferenceHelper::computeGradients
void computeGradients(const ConstVectorRef &x, const ConstVectorRef &u, CostData &data_) const override
Compute the cost gradients .
aligator::autodiff::CostFiniteDifferenceHelper::cost_
xyz::polymorphic< CostBase > cost_
Definition
cost-finite-difference.hpp:35
aligator::autodiff::CostFiniteDifferenceHelper::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::autodiff::CostFiniteDifferenceHelper::CostData
CostDataAbstractTpl< Scalar > CostData
Definition
cost-finite-difference.hpp:12
aligator::autodiff::CostFiniteDifferenceHelper::evaluate
void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, CostData &data_) const override
Evaluate the cost function.
aligator::autodiff::CostFiniteDifferenceHelper::computeHessians
void computeHessians(const ConstVectorRef &, const ConstVectorRef &, CostData &) const override
Compute the cost Hessians .
Definition
cost-finite-difference.hpp:30
aligator::autodiff::CostFiniteDifferenceHelper::createData
auto createData() const -> shared_ptr< CostData > override
include
aligator
modelling
autodiff
cost-finite-difference.hpp
Generated by
1.17.0