18 class LinearConstraint;
29 namespace requirements
34 namespace task_dynamics
56 using ConstraintPtr = std::shared_ptr<constraint::abstract::Constraint>;
57 using FunctionPtr = std::shared_ptr<function::abstract::Function>;
64 using TaskDynamicsPtr = std::shared_ptr<task_dynamics::abstract::TaskDynamicsImpl>;
76 constexpr T
pow(T base,
unsigned int exp, T result = 1)
77 {
return exp <= 1 ? (exp == 0 ? 1 : result * base) :
pow(base * base, exp / 2, (exp % 2) ? result * base : result); }
84 {
return curr == prev ? curr :
sqrtNewtonRaphson(x, 0.5 * (curr + x / curr), curr); }
89 static constexpr
double sqrtGuess =
pow(2., std::numeric_limits<double>::max_exponent / 2);
90 static constexpr
double sqrtOfMax =
sqrtNewtonRaphson(std::numeric_limits<double>::max(), sqrtGuess, 0);
94 static constexpr
double big_number = internal::sqrtOfMax / 2;
96 static_assert(-(big_number * big_number - std::numeric_limits<double>::max() / 4)
97 < (2 * std::numeric_limits<double>::epsilon()) * std::numeric_limits<double>::max()
98 && (big_number * big_number - std::numeric_limits<double>::max() / 4)
99 < (2 * std::numeric_limits<double>::epsilon()) * std::numeric_limits<double>::max(),
100 "big_number was not computed at compile time or its value was not correct");
103 constexpr
double pi = 3.141592653589793238462643383279502884e+00;
111 static const Eigen::Vector3d gravity{0, 0, 9.81};
Definition: VariableVector.h:41
Definition: Variable.h:49
Definition: Function.h:45
Definition: LinearFunction.h:62
Definition: SolvingRequirements.h:108
Definition: SolvingRequirements.h:103
Definition: TaskDynamicsImpl.h:33
constexpr T pow(T base, unsigned int exp, T result=1)
Definition: defs.h:76
constexpr double sqrtNewtonRaphson(double x, double curr, double prev=0)
Definition: defs.h:83
constexpr int fullRank
Definition: defs.h:108
constexpr double pi
Definition: defs.h:103
std::shared_ptr< Robot > RobotPtr
Definition: defs.h:62
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65
std::shared_ptr< function::abstract::LinearFunction > LinearFunctionPtr
Definition: defs.h:58
std::shared_ptr< Clock > ClockPtr
Definition: defs.h:60
std::shared_ptr< task_dynamics::abstract::TaskDynamicsImpl > TaskDynamicsPtr
Definition: defs.h:64
std::shared_ptr< function::abstract::Function > FunctionPtr
Definition: defs.h:57
Eigen::Ref< Eigen::VectorXd > VectorRef
Definition: defs.h:51
std::shared_ptr< constraint::abstract::Constraint > ConstraintPtr
Definition: defs.h:56
Eigen::Ref< const Eigen::VectorXd > VectorConstRef
Definition: defs.h:50
std::shared_ptr< Eigen::VectorXd > VectorPtr
Definition: defs.h:54
std::shared_ptr< constraint::abstract::LinearConstraint > LinearConstraintPtr
Definition: defs.h:59
std::shared_ptr< Range > RangePtr
Definition: defs.h:61
std::shared_ptr< Eigen::MatrixXd > MatrixPtr
Definition: defs.h:53
Eigen::Ref< Eigen::MatrixXd > MatrixRef
Definition: defs.h:49
Eigen::Ref< const Eigen::MatrixXd > MatrixConstRef
Definition: defs.h:48
std::shared_ptr< requirements::SolvingRequirementsWithCallbacks > SolvingRequirementsPtr
Definition: defs.h:63