9 #ifndef mrpt_math_forwddecls_H 10 #define mrpt_math_forwddecls_H 12 #include <mrpt/config.h> 14 #include <type_traits> 38 template <
typename MAT,
int TypeSizeAtCompileTime>
44 template <
typename MAT>
49 obj.derived().conservativeResize(
row, col);
53 obj.derived().conservativeResize(nsize);
80 class CMatrixTemplate;
82 class CMatrixTemplateObjects;
89 template <
typename CONTAINER>
95 #define MRPT_MATRIX_CONSTRUCTORS_FROM_POSES(_CLASS_) \ 96 template <class TPOSE, typename = std::enable_if_t<std::is_base_of< \ 97 mrpt::math::TPoseOrPoint, TPOSE>::value>> \ 98 explicit inline _CLASS_(const TPOSE& p) \ 100 mrpt::math::containerFromPoseOrPoint(*this, p); \ 102 template <class CPOSE, int = CPOSE::is_3D_val> \ 103 explicit inline _CLASS_(const CPOSE& p) \ 105 mrpt::math::containerFromPoseOrPoint(*this, p); \ 108 template <
class CONTAINER1,
class CONTAINER2>
109 void cumsum(
const CONTAINER1& in_data, CONTAINER2& out_cumsum);
111 template <
class CONTAINER>
113 template <
class CONTAINER>
116 template <
class MAT_A,
class SKEW_3VECTOR,
class MAT_OUT>
118 template <
class SKEW_3VECTOR,
class MAT_A,
class MAT_OUT>
123 template <
class MATORG,
class MATDEST>
125 const MATORG& M,
const size_t first_row,
const size_t first_col,
131 template <
class CONTAINER,
class POINT_OR_POSE>
152 template <
typename T>
171 template <
typename MatrixType,
typename T,
typename ReturnType,
size_t D>
TConstructorFlags_Matrices
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes)...
engineering format 'e'
static void internal_resize(MAT &, size_t)
void multiply_A_skew3(const MAT_A &A, const SKEW_3VECTOR &v, MAT_OUT &out)
Only for vectors/arrays "v" of length3, compute out = A * Skew(v), where Skew(v) is the skew symmetri...
GLsizei GLsizei GLuint * obj
CONTAINER & containerFromPoseOrPoint(CONTAINER &C, const POINT_OR_POSE &p)
Conversion of poses (TPose2D,TPoint2D,..., mrpt::poses::CPoint2D,CPose3D,...) to MRPT containers (vec...
void extractMatrix(const MATORG &M, const size_t first_row, const size_t first_col, MATDEST &outMat)
Extract a submatrix - The output matrix must be set to the required size before call.
The purpose of this class is to model traits for containers, so that they can be used as return value...
T wrapTo2Pi(T a)
Modifies the given angle to translate it into the [0,2pi[ range.
static void internal_resize(MAT &obj, size_t row, size_t col)
GLsizei const GLchar ** string
static void internal_resize(MAT &obj, size_t nsize)
static void internal_resize(MAT &, size_t, size_t)
void cumsum(const CONTAINER1 &in_data, CONTAINER2 &out_cumsum)
CONTAINER::Scalar norm_inf(const CONTAINER &v)
Internal resize which compiles to nothing on fixed-size matrices.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
typename CONTAINER::value_type element_t
GLenum GLenum GLvoid * row
This huge template encapsulates a function to get the vicinity of an element, with maximum genericity...
void multiply_skew3_A(const SKEW_3VECTOR &v, const MAT_A &A, MAT_OUT &out)
Only for vectors/arrays "v" of length3, compute out = Skew(v) * A, where Skew(v) is the skew symmetri...
std::string MRPT_getVersion()
Returns a string describing the MRPT version.
GLubyte GLubyte GLubyte a
fixed floating point 'f'
CONTAINER::Scalar norm(const CONTAINER &v)