state-observation 1.7.0
Loading...
Searching...
No Matches
definitions.hpp
Go to the documentation of this file.
1
12#ifndef STATEOBSERVATIONDEFINITIONSHPP
13#define STATEOBSERVATIONDEFINITIONSHPP
14
15// #define STATEOBSERVATION_VERBOUS_CONSTRUCTORS
16
17#include <chrono>
18#include <deque>
19#include <stdexcept>
20#include <vector>
21
22#ifdef STATEOBSERVATION_VERBOUS_CONSTRUCTORS
23# include <iostream>
24#endif
25
26#include <boost/assert.hpp>
27#include <boost/timer/timer.hpp>
28
29#include <Eigen/Core>
30#include <Eigen/Geometry>
31
32#ifndef M_PI
33# include <boost/math/constants/constants.hpp>
34# define M_PI boost::math::constants::pi<double>()
35#endif
36
37#include <state-observation/api.h>
38
39// basic file operations
40#include <fstream>
41
42namespace stateObservation
43{
47template<typename T>
48struct isEigen
49{
50 static constexpr bool value = std::is_base_of<Eigen::EigenBase<T>, T>::value;
51};
52
55template<typename T>
56struct isMatrix : std::false_type
57{
58};
59
60template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
61struct isMatrix<Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>> : std::true_type
62{
63};
64
65template<typename T>
66struct EigenType : std::enable_if<isEigen<T>::value, T>
67{
68};
69
70template<typename T>
71struct MatrixType : std::enable_if<isMatrix<T>::value, T>
72{
73};
74
76typedef Eigen::VectorXd Vector;
77
79typedef Eigen::Matrix<double, 1, 1> Vector1;
80
82typedef Eigen::Matrix<double, 2, 1> Vector2;
83
85typedef Eigen::Vector3d Vector3;
86
88typedef Eigen::Matrix<double, 3, 1, Eigen::DontAlign> Vector3Unaligned;
89
91typedef Eigen::Vector4d Vector4;
92
94typedef Eigen::Matrix<double, 5, 1> Vector5;
95
97typedef Eigen::Matrix<double, 6, 1> Vector6;
98
100typedef Eigen::MatrixXd Matrix;
101
103typedef Eigen::Matrix<double, 1, 1> Matrix1;
104
106typedef Eigen::Matrix2d Matrix2;
107
109typedef Eigen::Matrix3d Matrix3;
110
112typedef Eigen::Matrix<double, 3, 3, Eigen::DontAlign> Matrix3Unaligned;
113
115typedef Eigen::Matrix4d Matrix4;
116
118typedef Eigen::Matrix<double, 5, 5> Matrix5;
119
121typedef Eigen::Matrix<double, 6, 6> Matrix6;
122
124typedef Eigen::Matrix<double, 12, 12> Matrix12;
125
127typedef Eigen::Quaterniond Quaternion;
128
130typedef Eigen::Quaternion<double, Eigen::DontAlign> QuaternionUnaligned;
131
133typedef Eigen::AngleAxis<double> AngleAxis;
134
136typedef Eigen::Rotation2D<double> Rotation2D;
137
138typedef Eigen::Index Index;
139typedef long int TimeIndex;
141
142#ifndef NDEBUG
143static const bool isDebug = true;
144#else
145static const bool isDebug = false;
146#endif // NDEBUG
147
148template<int compileTimeRows = -1, int compileTimeCols = -1>
150{
151public:
152 template<typename CustomNullaryOp>
153 static const Eigen::CwiseNullaryOp<CustomNullaryOp, typename Eigen::Matrix<double, compileTimeRows, compileTimeCols>>
155 {
157 (void)rows;
158 (void)cols;
159
160 return Eigen::Matrix<double, compileTimeRows, compileTimeCols>::NullaryExpr(func);
161 }
162};
163
164template<int compileTimeCols>
166{
167public:
168 template<typename CustomNullaryOp>
169 static const Eigen::CwiseNullaryOp<CustomNullaryOp, typename Eigen::Matrix<double, -1, compileTimeCols>> nullaryExp(
170 const CustomNullaryOp & func,
171 Index rows = -1,
173 {
174 return Eigen::Matrix<double, -1, compileTimeCols>::NullaryExpr(rows, cols, func);
175 }
176};
177
178template<int compileTimeRows>
180{
181public:
182 template<typename CustomNullaryOp>
183 static const Eigen::CwiseNullaryOp<CustomNullaryOp, typename Eigen::Matrix<double, compileTimeRows, -1>> nullaryExp(
184 const CustomNullaryOp & func,
186 Index cols = -1)
187 {
188 return Eigen::Matrix<double, compileTimeRows, -1>::NullaryExpr(rows, cols, func);
189 }
190};
191
192template<>
194{
195public:
196 template<typename CustomNullaryOp>
197 static const Eigen::CwiseNullaryOp<CustomNullaryOp, typename Eigen::Matrix<double, -1, -1>> nullaryExp(
198 const CustomNullaryOp & func,
199 Index rows = -1,
200 Index cols = -1)
201 {
202 return Eigen::Matrix<double, -1, -1>::NullaryExpr(rows, cols, func);
203 }
204};
205
206template<typename MatrixT>
207class FixOrDynMatrixTools : public FixOrDynMatrixToolsBySize<MatrixType<MatrixT>::type::RowsAtCompileTime,
208 MatrixType<MatrixT>::type::ColsAtCompileTime>
209{
210};
211
214template<typename T, const T defaultValue = T()>
216{
217public:
218 static const T v;
219};
220
221template<typename T, const T defaultValue>
223
224namespace detail
225{
227
234
235template<errorType i = message, int dummy = 0>
237{
238};
239
240template<int dummy>
242{
243public:
244 static const char * v;
245};
246
247template<int dummy>
249{
250public:
251 static const std::runtime_error v;
252};
253
254template<int dummy>
256{
257public:
258 static const std::runtime_error * v;
259};
260
261template<int dummy>
262const char * DebugItemDefaultError<message, dummy>::v = "The Object is not initialized. \
263 If this happened during initialization then run command chckitm_set() \
264 to switch it to set. And if the initialization is incomplete, run \
265 chckitm_reset() afterwards.";
266
267template<int dummy>
268const std::runtime_error DebugItemDefaultError<exception, dummy>::v =
269 std::runtime_error(DebugItemDefaultError<message>::v);
270
271template<int dummy>
273
277
280 const Vector & stateVector2,
282
283} // namespace detail
284
287template<typename T, typename defaultValue = DebugItemDefaultValue<T>, bool debug = true>
289{
290public:
292 explicit DebugItem(const T & v) : b_(v) {}
293 inline T & operator=(T v)
294 {
295 return b_ = v;
296 }
297 inline operator T() const
298 {
299 return b_;
300 }
301 inline T set(const T & v)
302 {
303 return b_ = v;
304 }
305 T get() const
306 {
307 return b_;
308 }
309
310private:
311 T b_;
312};
313
315template<typename T, typename defaultValue>
317{
318public:
320 explicit DebugItem(T) {}
321 inline T & operator=(T v)
322 {
324 return v;
325 }
326 inline operator T() const
327 {
328 return defaultValue::v;
329 }
330 inline T set(const T &)
331 {
332 return defaultValue::v;
333 }
334 T get() const
335 {
336 return defaultValue::v;
337 }
338
339private:
341 T b_;
342};
343
347{
348 template<typename T>
349 static bool check(const T &)
350 {
351 return true;
352 }
353 template<typename T>
354 static bool checkAssert(const T &)
355 {
356 return true;
357 }
358 inline static constexpr char errorMessage[] = "";
359 using ExceptionT = std::runtime_error;
360};
361
372template<typename T,
373 bool lazy = false,
374 bool alwaysCheck = false,
375 bool assertion = true,
376 bool eigenAlignedNew = false,
379{
380public:
383 explicit CheckedItem(const T &);
385 virtual ~CheckedItem() {}
386
388 inline T & operator=(const T &);
389 inline operator T() const;
390 inline operator const T &() const;
391
392 inline const T & chckitm_getValue() const;
393
394 inline T & operator()();
395 inline const T & operator()() const;
396
397 inline T & getRefUnchecked();
398 inline const T & getRefUnchecked() const;
399
400 inline bool isSet() const;
401 inline void reset();
402
404 inline void set(bool value);
405
406 void setAssertMessage(std::string s);
407 void setExceptionPtr(std::exception * e);
408
413 inline T & set();
414
415protected:
416 static const bool do_check_ = !lazy || isDebug;
417 static const bool do_assert_ = do_check_ && assertion;
418 static const bool do_exception_ = do_check_ && !assertion;
419
423
427
428 bool chckitm_check_() const;
430
431public:
433};
434
437{
438 template<typename T>
439 static bool check(const T & m)
440 {
441 return !m.hasNaN();
442 }
443 template<typename T>
444 static bool checkAssert(const T & m)
445 {
447 return check(m);
448 }
449 inline static constexpr char errorMessage[] = "Matrix contains a NaN.";
450 using ExceptionT = std::runtime_error;
451};
452
459
468template<typename MatrixType = Matrix, bool lazy = false>
469class IndexedMatrixT : protected DebugItem<bool, detail::defaultTrue, !lazy || isDebug>
470{
472
473public:
476
479
482
484 inline void set(bool value = true);
485
487 inline void setIndex(TimeIndex index);
488
490 inline const MatrixType & operator()() const;
491
494
496 inline TimeIndex getTime() const;
497
499 inline bool isSet() const;
500
502 inline void reset();
503
505
506protected:
509 inline bool check_() const;
512};
513
518
526template<typename MatrixType = Matrix, typename Allocator = std::allocator<MatrixType>>
528{
529public:
532
538
539 typedef std::vector<MatrixType, Allocator> Array;
540
544 inline void setValue(const MatrixType & v, TimeIndex k);
545
547 inline void pushBack(const MatrixType & v);
548
550 inline void popFront();
551
553 inline MatrixType operator[](TimeIndex index) const;
554
557
559 inline const MatrixType & front() const;
560
562 inline MatrixType & front();
563
565 inline const MatrixType & back() const;
566
568 inline MatrixType & back();
569
572
575
577 inline void resize(TimeSize i, const MatrixType & m = MatrixType());
578
580 inline TimeIndex getLastIndex() const;
581
584 inline TimeIndex getNextIndex() const;
585
587 inline TimeIndex setLastIndex(int index);
588
590 inline TimeIndex getFirstIndex() const;
591
593 inline TimeIndex setFirstIndex(int index);
594
595 inline TimeSize size() const;
596
599 inline void reset();
600
602 inline void clear();
603
606
608 inline bool checkIndex(TimeIndex k) const;
609
614 void readFromFile(const char * filename, Index rows, Index cols = 1, bool withTimeStamp = true);
615 void readFromFile(const std::string & filename, Index rows, Index cols = 1, bool withTimeStamp = true);
616
621 void readVectorsFromFile(const std::string & filename, bool withTimeStamp = true);
622 void readVectorsFromFile(const char * filename, bool withTimeStamp = true);
623
629 void writeInFile(const char * filename, bool clear = false, bool append = false);
630
636 void writeInFile(const std::string & filename, bool clear = false, bool append = false);
637
638protected:
639 typedef std::deque<MatrixType, Allocator> Deque;
640
643 inline void check_(TimeIndex time) const;
644
647 inline void check_() const;
648
651 inline void checkNext_(TimeIndex time) const;
652
654
656};
657
660
661namespace cst
662{
663constexpr double gravityConstant = 9.80665;
664
666const Vector gravity = gravityConstant * Vector3::UnitZ();
667
669constexpr double epsilonAngle = 1e-16;
670
672constexpr double epsilon1 = std::numeric_limits<double>::epsilon();
673
674} // namespace cst
675
683inline bool isApprox(double a, double b, double relativePrecision = cst::epsilon1);
684
692inline bool isApproxAbs(double a, double b, double absolutePrecision = cst::epsilon1);
693
694typedef boost::timer::auto_cpu_timer auto_cpu_timer;
695typedef boost::timer::cpu_timer cpu_timer;
696typedef boost::timer::cpu_timer cpu_times;
697
698namespace tools
699{
701{
703 using clock = typename std::conditional<std::chrono::high_resolution_clock::is_steady,
704 std::chrono::high_resolution_clock,
705 std::chrono::steady_clock>::type;
706 using time_ns = clock::time_point;
708
709 inline void start()
710 {
711 startTime = clock::now();
712 }
713
716 inline double stop()
717 {
718 auto elapsed = clock::now() - startTime;
719 return static_cast<double>(elapsed.count());
720 }
721};
722
724
726
728
730
732} // namespace tools
733
734#include <state-observation/tools/definitions.hxx>
735} // namespace stateObservation
736
737#endif // STATEOBSERVATIONDEFINITIONSHPP
this is a structure allowing for automatically verifying that the item has been initialized or not....
Definition definitions.hpp:379
CheckedItem(bool initialize=true)
The parameter initialize sets whether the isSet() parameter is initialized to false.
static const bool do_check_
Definition definitions.hpp:416
CheckedItem & operator=(const CheckedItem &)
const T & operator()() const
CheckedItem(const CheckedItem &)
DebugItem< const char *, detail::defaultErrorMSG, do_assert_ > AssertMsg
Definition definitions.hpp:421
AssertMsg assertMsg_
Definition definitions.hpp:425
const T & getRefUnchecked() const
DebugItem< bool, detail::defaultTrue, do_check_ > IsSet
Definition definitions.hpp:420
static const bool do_exception_
Definition definitions.hpp:418
virtual ~CheckedItem()
Definition definitions.hpp:385
void setAssertMessage(std::string s)
void setExceptionPtr(std::exception *e)
DebugItem< const std::exception *, detail::defaultExceptionAddr, do_exception_ > ExceptionPtr
Definition definitions.hpp:422
IsSet isSet_
Definition definitions.hpp:424
void set(bool value)
set the value of the initialization check boolean
ExceptionPtr exceptionPtr_
Definition definitions.hpp:426
T v_
this can throw(std::exception)
Definition definitions.hpp:429
static const bool do_assert_
Definition definitions.hpp:417
const T & chckitm_getValue() const
Definition definitions.hpp:216
static const T v
Definition definitions.hpp:218
T get() const
Definition definitions.hpp:334
T & operator=(T v)
Definition definitions.hpp:321
T set(const T &)
Definition definitions.hpp:330
Definition definitions.hpp:289
T & operator=(T v)
Definition definitions.hpp:293
DebugItem()
Definition definitions.hpp:291
T set(const T &v)
Definition definitions.hpp:301
DebugItem(const T &v)
Definition definitions.hpp:292
T get() const
Definition definitions.hpp:305
static const Eigen::CwiseNullaryOp< CustomNullaryOp, typename Eigen::Matrix< double, -1, -1 > > nullaryExp(const CustomNullaryOp &func, Index rows=-1, Index cols=-1)
Definition definitions.hpp:197
static const Eigen::CwiseNullaryOp< CustomNullaryOp, typename Eigen::Matrix< double, -1, compileTimeCols > > nullaryExp(const CustomNullaryOp &func, Index rows=-1, Index cols=compileTimeCols)
Definition definitions.hpp:169
static const Eigen::CwiseNullaryOp< CustomNullaryOp, typename Eigen::Matrix< double, compileTimeRows, -1 > > nullaryExp(const CustomNullaryOp &func, Index rows=compileTimeRows, Index cols=-1)
Definition definitions.hpp:183
Definition definitions.hpp:150
static const Eigen::CwiseNullaryOp< CustomNullaryOp, typename Eigen::Matrix< double, compileTimeRows, compileTimeCols > > nullaryExp(const CustomNullaryOp &func, Index rows=compileTimeRows, Index cols=compileTimeCols)
Definition definitions.hpp:154
Definition definitions.hpp:209
This class describes a structure that enables to store array of matrices with time indexation.
Definition definitions.hpp:528
std::vector< MatrixType, Allocator > Array
Definition definitions.hpp:539
TimeIndex setLastIndex(int index)
Set the time index of the last element.
void truncateAfter(TimeIndex timeIndex)
removes all the elements with larger indexes than timeIndex
void checkNext_(TimeIndex time) const
void writeInFile(const std::string &filename, bool clear=false, bool append=false)
void readVectorsFromFile(const char *filename, bool withTimeStamp=true)
TimeIndex setFirstIndex(int index)
set the time index of the first element
MatrixType & back()
gets the last value
void truncateBefore(TimeIndex timeIndex)
removes all the elements with smaller indexes than timeIndex
void clear()
Clears the vector but keeps the last index.
bool checkIndex(TimeIndex k) const
checks whether the index is present in the array
void writeInFile(const char *filename, bool clear=false, bool append=false)
void pushBack(const MatrixType &v)
Pushes back the matrix to the array, the new value will take the next time.
void readFromFile(const std::string &filename, Index rows, Index cols=1, bool withTimeStamp=true)
TimeIndex k_
Definition definitions.hpp:653
void check_(TimeIndex time) const
MatrixType operator[](TimeIndex index) const
gets the value with the given time index
MatrixType & front()
gets the first value
void popFront()
removes the first (oldest) element of the array
IndexedMatrixArrayT(TimeSize size, TimeIndex initTime=0)
Construct a new Indexed Vector Array T with a predifined size.
void resize(TimeSize i, const MatrixType &m=MatrixType())
resizes the array
std::deque< MatrixType, Allocator > Deque
Definition definitions.hpp:639
Deque v_
Definition definitions.hpp:655
const MatrixType & front() const
gets the first value
void setValue(const MatrixType &v, TimeIndex k)
IndexedMatrixArrayT()
Default constructor.
TimeIndex getFirstIndex() const
Get the time index.
void readFromFile(const char *filename, Index rows, Index cols=1, bool withTimeStamp=true)
const MatrixType & back() const
gets the last value
TimeIndex getLastIndex() const
Get the time index.
MatrixType & operator[](TimeIndex index)
gets the value with the given time index, non const version
void readVectorsFromFile(const std::string &filename, bool withTimeStamp=true)
Array getArray() const
converts the array into a standard vector
This class describes a structure composed by a matrix of a given size and a time-index parameter....
Definition definitions.hpp:470
MatrixType v_
Definition definitions.hpp:511
void setIndex(TimeIndex index)
set the index of the matrix
TimeIndex k_
Definition definitions.hpp:510
IndexedMatrixT & set(const MatrixType &v, TimeIndex k)
Set the value of the matrix and the time sample.
IndexedMatrixT(const MatrixType &v, TimeIndex k)
A constructor with a given matrix value and a time index.
MatrixType & operator()()
Get the matrix value.
IndexedMatrixT()
Default constructor.
TimeIndex getTime() const
Get the time index.
void reset()
Switch off the initalization flag, the value is no longer accessible.
const MatrixType & operator()() const
Get the matrix value (const version)
bool isSet() const
Says whether the matrix is initialized or not.
void set(bool value=true)
Switch the vector to "initialized" state.
static const std::runtime_error * v
Definition definitions.hpp:258
static const std::runtime_error v
Definition definitions.hpp:251
static const char * v
Definition definitions.hpp:244
constexpr double gravityConstant
Definition definitions.hpp:663
constexpr double epsilonAngle
angles considered Zero
Definition definitions.hpp:669
const Vector gravity
Gravity Vector along Z.
Definition definitions.hpp:666
constexpr double epsilon1
number considered zero when compared to 1
Definition definitions.hpp:672
void STATE_OBSERVATION_DLLAPI defaultSum(const Vector &stateVector, const Vector &tangentVector, Vector &sum)
void STATE_OBSERVATION_DLLAPI defaultDifference(const Vector &stateVector1, const Vector &stateVector2, Vector &difference)
DebugItemDefaultValue< bool, true > defaultTrue
Definition definitions.hpp:226
DebugItemDefaultError< exceptionAddr > defaultExceptionAddr
Definition definitions.hpp:276
DebugItemDefaultError< message > defaultErrorMSG
Definition definitions.hpp:274
errorType
Definition definitions.hpp:229
@ exception
Definition definitions.hpp:231
@ exceptionAddr
Definition definitions.hpp:232
@ message
Definition definitions.hpp:230
DebugItemDefaultError< exception > defaultException
Definition definitions.hpp:275
Vector STATE_OBSERVATION_DLLAPI stringToVector(const std::string &str, Index length)
Matrix STATE_OBSERVATION_DLLAPI stringToMatrix(const std::string &str, Index rows, Index cols)
std::string STATE_OBSERVATION_DLLAPI vectorToString(const Vector &v)
std::string STATE_OBSERVATION_DLLAPI matrixToString(const Matrix &mat)
Definition bidim-elastic-inv-pendulum-dyn-sys.hpp:21
Eigen::Matrix4d Matrix4
4x4 Scalar Matrix
Definition definitions.hpp:115
Eigen::AngleAxis< double > AngleAxis
Euler Axis/Angle representation of orientation.
Definition definitions.hpp:133
Eigen::Quaterniond Quaternion
Quaternion.
Definition definitions.hpp:127
bool isApprox(double a, double b, double relativePrecision=cst::epsilon1)
checks if two scalars have approximately the same value up to a given relative precision
IndexedMatrixT< Matrix > IndexedMatrix
Definition definitions.hpp:514
long int TimeIndex
Definition definitions.hpp:139
Eigen::Matrix< double, 3, 3, Eigen::DontAlign > Matrix3Unaligned
3x3 Scalar Matrix Unaligned
Definition definitions.hpp:112
bool isApproxAbs(double a, double b, double absolutePrecision=cst::epsilon1)
checks if two scalars have approximately the same value up to a given absolute precision
Eigen::Rotation2D< double > Rotation2D
2D rotations
Definition definitions.hpp:136
Eigen::Matrix2d Matrix2
2D scalar Matrix
Definition definitions.hpp:106
CheckedItem< Vector6, false, false, true, true, CheckNaN > CheckedVector6
Definition definitions.hpp:457
boost::timer::auto_cpu_timer auto_cpu_timer
Definition definitions.hpp:694
Eigen::Vector3d Vector3
3D vector
Definition definitions.hpp:85
Eigen::Vector4d Vector4
4D vector
Definition definitions.hpp:91
Index TimeSize
Definition definitions.hpp:140
CheckedItem< Matrix12, false, false, true, true, CheckNaN > CheckedMatrix12
Definition definitions.hpp:455
Eigen::Matrix< double, 1, 1 > Vector1
1D Vector
Definition definitions.hpp:79
IndexedMatrixArrayT< Vector > IndexedVectorArray
Definition definitions.hpp:659
Eigen::Matrix3d Matrix3
3x3 Scalar Matrix
Definition definitions.hpp:109
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Definition definitions.hpp:100
Eigen::Matrix< double, 5, 1 > Vector5
5D vector
Definition definitions.hpp:94
boost::timer::cpu_timer cpu_times
Definition definitions.hpp:696
Eigen::Matrix< double, 6, 1 > Vector6
6D vector
Definition definitions.hpp:97
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3Unaligned
3D vector unaligned
Definition definitions.hpp:88
CheckedItem< Quaternion, false, false, true, true > CheckedQuaternion
Definition definitions.hpp:458
Eigen::Matrix< double, 6, 6 > Matrix6
6x6 Scalar Matrix
Definition definitions.hpp:121
CheckedItem< Vector3, false, false, true, true, CheckNaN > CheckedVector3
Definition definitions.hpp:456
Eigen::Index Index
Definition definitions.hpp:138
IndexedMatrixArrayT< Matrix > IndexedMatrixArray
Definition definitions.hpp:658
CheckedItem< Matrix3, false, false, true, true, CheckNaN > CheckedMatrix3
Definition definitions.hpp:453
Eigen::Matrix< double, 5, 5 > Matrix5
5x5 Scalar Matrix
Definition definitions.hpp:118
CheckedItem< Matrix6, false, false, true, true, CheckNaN > CheckedMatrix6
Definition definitions.hpp:454
Eigen::Matrix< double, 12, 12 > Matrix12
12x12 scalar Matrix
Definition definitions.hpp:124
boost::timer::cpu_timer cpu_timer
Definition definitions.hpp:695
IndexedMatrixT< Matrix3 > IndexedMatrix3
Definition definitions.hpp:517
Eigen::Matrix< double, 2, 1 > Vector2
2d Vector
Definition definitions.hpp:82
IndexedMatrixT< Vector > IndexedVector
Definition definitions.hpp:515
Eigen::VectorXd Vector
Dynamic sized scalar vector.
Definition definitions.hpp:76
IndexedMatrixT< Vector3 > IndexedVector3
Definition definitions.hpp:516
Eigen::Quaternion< double, Eigen::DontAlign > QuaternionUnaligned
Quaternion Unaligned.
Definition definitions.hpp:130
Eigen::Matrix< double, 1, 1 > Matrix1
1D scalar Matrix
Definition definitions.hpp:103
Additional checker that allows to check for the presence of NaN values in the item.
Definition definitions.hpp:437
static bool checkAssert(const T &m)
Definition definitions.hpp:444
static constexpr char errorMessage[]
Definition definitions.hpp:449
std::runtime_error ExceptionT
Definition definitions.hpp:450
static bool check(const T &m)
Definition definitions.hpp:439
Definition definitions.hpp:67
This structure is used as an additionalChecker for a CheckedItem that doesn't require additional test...
Definition definitions.hpp:347
std::runtime_error ExceptionT
Definition definitions.hpp:359
static bool check(const T &)
Definition definitions.hpp:349
static constexpr char errorMessage[]
Definition definitions.hpp:358
static bool checkAssert(const T &)
Definition definitions.hpp:354
Definition definitions.hpp:72
Checks if it is derived from EigenBase (the base class of all dense functions)
Definition definitions.hpp:49
static constexpr bool value
Definition definitions.hpp:50
Checks if a class is a specialization of Eigen::Matrix.
Definition definitions.hpp:57
Definition definitions.hpp:701
clock::time_point time_ns
Definition definitions.hpp:706
time_ns startTime
Definition definitions.hpp:707
double stop()
Definition definitions.hpp:716
typename std::conditional< std::chrono::high_resolution_clock::is_steady, std::chrono::high_resolution_clock, std::chrono::steady_clock >::type clock
Definition definitions.hpp:705
void start()
Definition definitions.hpp:709