aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
quad-residual-cost.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include "
./composite-costs.hpp
"
6
#include <
aligator/context.hpp
>
7
8
namespace
aligator
{
9
17
template
<
typename
_Scalar>
18
struct
QuadraticResidualCostTpl
:
CostAbstractTpl
<_Scalar> {
19
using
Scalar
= _Scalar;
20
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
21
using
Base
=
CostAbstractTpl<Scalar>
;
22
using
CostData
=
CostDataAbstractTpl<Scalar>
;
23
using
Data
=
CompositeCostDataTpl<Scalar>
;
24
using
StageFunction
=
StageFunctionTpl<Scalar>
;
25
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
26
27
MatrixXs
weights_
;
28
xyz::polymorphic<StageFunction>
residual_
;
29
bool
gauss_newton
=
true
;
30
31
QuadraticResidualCostTpl
(xyz::polymorphic<Manifold>
space
,
32
xyz::polymorphic<StageFunction> function,
33
const
ConstMatrixRef &weights);
34
35
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
36
CostData
&data_)
const
;
37
38
void
computeGradients
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
39
CostData
&data_)
const
;
40
41
void
computeHessians
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
42
CostData
&data_)
const
;
43
44
shared_ptr<CostData>
createData
()
const
{
45
return
std::make_shared<Data>(this->
ndx
(), this->
nu
,
46
residual_
->createData());
47
}
48
51
template
<
typename
Derived> Derived *
getResidual
() {
52
return
dynamic_cast<
Derived *
>
(&*
residual_
);
53
}
54
56
template
<
typename
Derived>
const
Derived *
getResidual
()
const
{
57
return
dynamic_cast<
const
Derived *
>
(&*
residual_
);
58
}
59
};
60
61
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
62
extern
template
struct
QuadraticResidualCostTpl<context::Scalar>;
63
#endif
64
65
}
// namespace aligator
66
67
#include "./quad-residual-cost.hxx"
composite-costs.hpp
context.hpp
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::CompositeCostDataTpl
Data struct for composite costs.
Definition
composite-costs.hpp:15
aligator::CostAbstractTpl< Scalar >::space
xyz::polymorphic< Manifold > space
Definition
cost-abstract.hpp:20
aligator::CostAbstractTpl::CostAbstractTpl
CostAbstractTpl(U &&space, const int nu)
Definition
cost-abstract.hpp:28
aligator::CostAbstractTpl< Scalar >::nu
int nu
Definition
cost-abstract.hpp:22
aligator::CostAbstractTpl::ndx
int ndx() const
Definition
cost-abstract.hpp:25
aligator::CostDataAbstractTpl
Data struct for CostAbstractTpl.
Definition
cost-abstract.hpp:73
aligator::ManifoldAbstractTpl
Base class for manifolds, to use in cost funcs, solvers...
Definition
manifold-base.hpp:11
aligator::QuadraticResidualCostTpl::Base
CostAbstractTpl< Scalar > Base
Definition
quad-residual-cost.hpp:21
aligator::QuadraticResidualCostTpl::evaluate
void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, CostData &data_) const
Evaluate the cost function.
aligator::QuadraticResidualCostTpl::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
quad-residual-cost.hpp:25
aligator::QuadraticResidualCostTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::QuadraticResidualCostTpl::computeGradients
void computeGradients(const ConstVectorRef &x, const ConstVectorRef &u, CostData &data_) const
Compute the cost gradients .
aligator::QuadraticResidualCostTpl::Scalar
_Scalar Scalar
Definition
quad-residual-cost.hpp:19
aligator::QuadraticResidualCostTpl< Scalar >::gauss_newton
bool gauss_newton
Definition
quad-residual-cost.hpp:29
aligator::QuadraticResidualCostTpl::createData
shared_ptr< CostData > createData() const
Definition
quad-residual-cost.hpp:44
aligator::QuadraticResidualCostTpl::getResidual
Derived * getResidual()
Get a pointer to the underlying type of the residual, by attempting to cast.
Definition
quad-residual-cost.hpp:51
aligator::QuadraticResidualCostTpl::computeHessians
void computeHessians(const ConstVectorRef &x, const ConstVectorRef &u, CostData &data_) const
Compute the cost Hessians .
aligator::QuadraticResidualCostTpl::StageFunction
StageFunctionTpl< Scalar > StageFunction
Definition
quad-residual-cost.hpp:24
aligator::QuadraticResidualCostTpl< Scalar >::residual_
xyz::polymorphic< StageFunction > residual_
Definition
quad-residual-cost.hpp:28
aligator::QuadraticResidualCostTpl::CostData
CostDataAbstractTpl< Scalar > CostData
Definition
quad-residual-cost.hpp:22
aligator::QuadraticResidualCostTpl::getResidual
const Derived * getResidual() const
Get a pointer to the underlying type of the residual, by attempting to cast.
Definition
quad-residual-cost.hpp:56
aligator::QuadraticResidualCostTpl::Data
CompositeCostDataTpl< Scalar > Data
Definition
quad-residual-cost.hpp:23
aligator::QuadraticResidualCostTpl< Scalar >::weights_
MatrixXs weights_
Definition
quad-residual-cost.hpp:27
aligator::QuadraticResidualCostTpl::QuadraticResidualCostTpl
QuadraticResidualCostTpl(xyz::polymorphic< Manifold > space, xyz::polymorphic< StageFunction > function, const ConstMatrixRef &weights)
aligator::StageFunctionTpl
Class representing ternary functions .
Definition
function-abstract.hpp:12
include
aligator
modelling
costs
quad-residual-cost.hpp
Generated by
1.17.0