9 #ifndef mrpt_math_forwddecls_H 10 #define mrpt_math_forwddecls_H 12 #include <mrpt/config.h> 27 template<
class T>
inline T
square(
const T x);
49 template <
typename MAT,
int TypeSizeAtCompileTime>
54 template <
typename MAT>
56 static inline void internal_resize(MAT &obj,
size_t row,
size_t col) { obj.derived().conservativeResize(row,col); }
57 static inline void internal_resize(MAT &obj,
size_t nsize) { obj.derived().conservativeResize(nsize); }
88 #define MRPT_MATRIX_CONSTRUCTORS_FROM_POSES(_CLASS_) \ 89 explicit inline _CLASS_( const mrpt::math::TPose2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 90 explicit inline _CLASS_( const mrpt::math::TPose3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 91 explicit inline _CLASS_( const mrpt::math::TPose3DQuat &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 92 explicit inline _CLASS_( const mrpt::math::TPoint2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 93 explicit inline _CLASS_( const mrpt::math::TPoint3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 94 explicit inline _CLASS_( const mrpt::poses::CPose2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 95 explicit inline _CLASS_( const mrpt::poses::CPose3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 96 explicit inline _CLASS_( const mrpt::poses::CPose3DQuat &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 97 explicit inline _CLASS_( const mrpt::poses::CPoint2D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } \ 98 explicit inline _CLASS_( const mrpt::poses::CPoint3D &p) { mrpt::math::containerFromPoseOrPoint(*this,p); } 101 template <
class CONTAINER1,
class CONTAINER2>
void cumsum(
const CONTAINER1 &in_data, CONTAINER2 &out_cumsum);
103 template <
class CONTAINER>
inline typename CONTAINER::Scalar
norm(
const CONTAINER &v);
104 template <
class CONTAINER>
inline typename CONTAINER::Scalar
norm_inf(
const CONTAINER &v);
106 template <
class MAT_A,
class SKEW_3VECTOR,
class MAT_OUT>
void multiply_A_skew3(
const MAT_A &A,
const SKEW_3VECTOR &v, MAT_OUT &out);
107 template <
class SKEW_3VECTOR,
class MAT_A,
class MAT_OUT>
void multiply_skew3_A(
const SKEW_3VECTOR &v,
const MAT_A &A, MAT_OUT &out);
118 template <
class MATORG,
class MATDEST>
121 const size_t first_row,
122 const size_t first_col,
127 template <
class CONTAINER,
class POINT_OR_POSE>
153 template<
typename MatrixType,
typename T,
typename ReturnType,
size_t D>
struct getVicinity;
TConstructorFlags_Matrices
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes)...
engineering format 'e'
TPose3DQuat BASE_IMPEXP lightFromPose(const mrpt::poses::CPose3DQuat &p)
Convert a pose into a light-weight structure (functional form, needed for forward declarations) ...
void multiply_skew3_A(const SKEW_3VECTOR &v, const MAT_A &A)
static void internal_resize(MAT &, size_t)
EIGEN_STRONG_INLINE Scalar norm_inf() const
Compute the norm-infinite of a vector ($f[ ||{v}||_ $f]), ie the maximum absolute value of the elemen...
CONTAINER & containerFromPoseOrPoint(CONTAINER &C, const POINT_OR_POSE &p)
Conversion of poses (TPose2D,TPoint2D,..., mrpt::poses::CPoint2D,CPose3D,...) to MRPT containers (vec...
static void internal_resize(MAT &obj, size_t nsize)
void multiply_A_skew3(const MAT_A &A, const SKEW_3VECTOR &v)
std::string BASE_IMPEXP MRPT_getVersion()
Returns a string describing the MRPT version including the SVN number.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
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...
static void internal_resize(MAT &obj, size_t row, size_t col)
T wrapTo2Pi(T a)
Modifies the given angle to translate it into the [0,2pi[ range.
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz).
A class used to store a 2D point.
A class used to store a 3D point.
static void internal_resize(MAT &, size_t, size_t)
void cumsum(const CONTAINER1 &in_data, CONTAINER2 &out_cumsum)
ContainerType<T>::element_t exposes the value of any STL or Eigen container.
This template class provides the basic functionality for a general 2D any-size, resizable container o...
Internal resize which compiles to nothing on fixed-size matrices.
T square(const T x)
Inline function for the square of a number.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A class used to store a 2D pose.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
CONTAINER::value_type element_t
This huge template encapsulates a function to get the vicinity of an element, with maximum genericity...
This template class extends the class "CMatrixTemplate" for storing "objects" at each matrix entry...
fixed floating point 'f'
CONTAINER::Scalar norm(const CONTAINER &v)