pinocchio
3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
proximal.hpp
1
//
2
// Copyright (c) 2019-2022 INRIA
3
//
4
5
#ifndef __pinocchio_algorithm_proximal_hpp__
6
#define __pinocchio_algorithm_proximal_hpp__
7
8
#include <Eigen/Core>
9
#include "pinocchio/multibody/model.hpp"
10
#include "pinocchio/multibody/data.hpp"
11
12
namespace
pinocchio
13
{
14
23
template
<
typename
_Scalar>
24
struct
ProximalSettingsTpl
25
{
26
typedef
_Scalar Scalar;
27
29
ProximalSettingsTpl
()
30
:
absolute_accuracy
(Eigen::NumTraits<Scalar>::dummy_precision())
31
,
relative_accuracy
(Eigen::NumTraits<Scalar>::dummy_precision())
32
,
mu
(0)
33
,
max_iter
(1)
34
,
absolute_residual
(-1.)
35
,
relative_residual
(-1.)
36
,
iter
(0)
37
{
38
}
39
43
ProximalSettingsTpl
(
const
Scalar accuracy,
const
Scalar
mu
,
const
int
max_iter
)
44
:
absolute_accuracy
(accuracy)
45
,
relative_accuracy
(accuracy)
46
,
mu
(
mu
)
47
,
max_iter
(
max_iter
)
48
,
absolute_residual
(-1.)
49
,
relative_residual
(-1.)
50
,
iter
(0)
51
{
52
PINOCCHIO_CHECK_INPUT_ARGUMENT(
53
check_expression_if_real<Scalar>(accuracy >= 0.) &&
"Accuracy must be positive."
);
54
PINOCCHIO_CHECK_INPUT_ARGUMENT(
55
check_expression_if_real<Scalar>(
mu
>= 0.) &&
"mu must be positive"
);
56
assert(
max_iter
>= 1 &&
"max_iter must be greater or equal to 1"
);
57
}
58
62
ProximalSettingsTpl
(
63
const
Scalar
absolute_accuracy
,
64
const
Scalar
relative_accuracy
,
65
const
Scalar
mu
,
66
const
int
max_iter
)
67
:
absolute_accuracy
(
absolute_accuracy
)
68
,
relative_accuracy
(
relative_accuracy
)
69
,
mu
(
mu
)
70
,
max_iter
(
max_iter
)
71
,
absolute_residual
(-1.)
72
,
relative_residual
(-1.)
73
,
iter
(0)
74
{
75
PINOCCHIO_CHECK_INPUT_ARGUMENT(
76
check_expression_if_real<Scalar>(
absolute_accuracy
>= 0.)
77
&&
"Absolute accuracy must be positive."
);
78
PINOCCHIO_CHECK_INPUT_ARGUMENT(
79
check_expression_if_real<Scalar>(
relative_accuracy
>= 0.)
80
&&
"Relative accuracy must be positive."
);
81
PINOCCHIO_CHECK_INPUT_ARGUMENT(
82
check_expression_if_real<Scalar>(
mu
>= 0.) &&
"mu must be positive"
);
83
assert(
max_iter
>= 1 &&
"max_iter must be greater or equal to 1"
);
84
}
85
86
// data
87
89
Scalar
absolute_accuracy
;
90
92
Scalar
relative_accuracy
;
93
95
Scalar
mu
;
96
98
int
max_iter
;
99
100
// data that can be modified by the algorithm
101
103
Scalar
absolute_residual
;
104
106
Scalar
relative_residual
;
107
110
int
iter
;
111
};
112
113
}
// namespace pinocchio
114
115
#if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
116
#include "pinocchio/algorithm/proximal.txx"
117
#endif
// PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
118
119
#endif
// ifndef __pinocchio_algorithm_proximal_hpp__
pinocchio
Main pinocchio namespace.
Definition
treeview.dox:11
pinocchio::ProximalSettingsTpl::ProximalSettingsTpl
ProximalSettingsTpl()
Default constructor.
Definition
proximal.hpp:29
pinocchio::ProximalSettingsTpl::ProximalSettingsTpl
ProximalSettingsTpl(const Scalar accuracy, const Scalar mu, const int max_iter)
Constructor with all the setting parameters.
Definition
proximal.hpp:43
pinocchio::ProximalSettingsTpl< context::Scalar >::max_iter
int max_iter
Definition
proximal.hpp:98
pinocchio::ProximalSettingsTpl< context::Scalar >::relative_accuracy
Scalar relative_accuracy
Definition
proximal.hpp:92
pinocchio::ProximalSettingsTpl< context::Scalar >::absolute_accuracy
Scalar absolute_accuracy
Definition
proximal.hpp:89
pinocchio::ProximalSettingsTpl< context::Scalar >::mu
Scalar mu
Definition
proximal.hpp:95
pinocchio::ProximalSettingsTpl< context::Scalar >::iter
int iter
Definition
proximal.hpp:110
pinocchio::ProximalSettingsTpl< context::Scalar >::relative_residual
Scalar relative_residual
Definition
proximal.hpp:106
pinocchio::ProximalSettingsTpl< context::Scalar >::absolute_residual
Scalar absolute_residual
Definition
proximal.hpp:103
pinocchio::ProximalSettingsTpl::ProximalSettingsTpl
ProximalSettingsTpl(const Scalar absolute_accuracy, const Scalar relative_accuracy, const Scalar mu, const int max_iter)
Constructor with all the setting parameters.
Definition
proximal.hpp:62
include
pinocchio
algorithm
proximal.hpp
Generated by
1.14.0