This base provides a set of functions for maths stuff. More...
Namespaces | |
| namespace | detail |
Classes | |
| class | CArray |
| A STL container (as wrapper) for arrays of constant size defined at compile time - Users will most likely prefer to use CArrayPOD and its derived classes instead. More... | |
| class | CArray< T, 0 > |
| class | CArrayPOD |
| A CArray for Plain Old Datatypes (POD), that is, int's, double's, etc or struct's with only PODs. More... | |
| class | CArrayNumeric |
| A CArrayPOD for numeric types, supporting several mathematical operations. More... | |
| class | CArrayFloat |
| A partial specialization of CArrayNumeric for float numbers. More... | |
| class | CArrayDouble |
| A partial specialization of CArrayNumeric for double numbers. More... | |
| class | CArrayInt |
| A partial specialization of CArrayNumeric for int numbers. More... | |
| class | CArrayUInt |
| A partial specialization of CArrayNumeric for unsigned int numbers. More... | |
| struct | CMatrixTemplateSize |
| Auxiliary class used in CMatrixTemplate:size(), CMatrixTemplate::resize(), CMatrixFixedNumeric::size(), CMatrixFixedNumeric::resize(), to mimic the behavior of STL-containers. More... | |
| class | CAStarAlgorithm |
| This class is intended to efficiently solve graph-search problems using heuristics to determine the best path. More... | |
| class | CBinaryRelation |
| This class models a binary relation through the elements of any given set. More... | |
| class | CGraphPartitioner |
| Algorithms for finding the min-normalized-cut of a weighted undirected graph. More... | |
| class | CHistogram |
| This class provides an easy way of computing histograms for unidimensional real valued variables. More... | |
| class | CLevenbergMarquardtTempl |
| An implementation of the Levenberg-Marquardt algorithm for least-square minimization. More... | |
| class | CMatrix |
| This class is a "CSerializable" wrapper for "CMatrixFloat". More... | |
| class | CMatrixB |
| This class is a "CSerializable" wrapper for "CMatrixBool". More... | |
| class | CMatrixD |
| This class is a "CSerializable" wrapper for "CMatrixTemplateNumeric<double>". More... | |
| class | CMatrixFixedNumeric |
| A numeric matrix of compile-time fixed size. More... | |
| class | CMatrixTemplate |
| This template class provides the basic functionality for a general 2D any-size, resizable container of numerical or non-numerical elements. More... | |
| class | CMatrixTemplateNumeric |
| This template class extends the class "CMatrixTemplate" with many common operations with numerical matrixes. More... | |
| class | CMatrixTemplateObjects |
| This template class extends the class "CMatrixTemplate" for storing "objects" at each matrix entry. More... | |
| class | CMatrixView |
| The base for all matrix views. More... | |
| class | CMatrixViewTranspose |
| A wrapper around an existing matrix (of any kind) that allows operating on the transposed matrix. More... | |
| class | CConstMatrixViewTranspose |
| A wrapper around an existing const matrix (of any kind) that allows operating on the transposed matrix. More... | |
| class | CSubmatrixView |
| A wrapper around an existing matrix (of any kind) that allows operating on a subrange of the elements. More... | |
| class | CArbitrarySubmatrixView |
| A wrapper around an existing matrix (of any kind) that allows operating on a subrange of the elements. More... | |
| class | CConstArbitrarySubmatrixView |
| class | CDiagonalMatrixView |
| View the diagonal of an existing NxN matrix as a 1xN matrix (or equivalently for many MRPT methods, an N-vector). More... | |
| class | CMatrixColumnAccessor |
| A vector-like wrapper for a Matrix for accessing the elements of a given column with a [] operator. More... | |
| class | CMatrixColumnAccessorExtended |
| A vector-like wrapper for a Matrix for accessing the elements of a given column with a [] operator, with offset and custom spacing. More... | |
| class | CConstMatrixColumnAccessor |
| A vector-like wrapper for a const Matrix for accessing the elements of a given column with a [] operator. More... | |
| class | CConstMatrixColumnAccessorExtended |
| A vector-like wrapper for a const Matrix for accessing the elements of a given column with a [] operator, with offset and custom spacing. More... | |
| class | CMatrixRowAccessor |
| A vector-like wrapper for a Matrix for accessing the elements of a given row with a [] operator. More... | |
| class | CMatrixRowAccessorExtended |
| A vector-like wrapper for a Matrix for accessing the elements of a given row with a [] operator, with offset and custom spacing. More... | |
| class | CConstMatrixRowAccessor |
| A vector-like wrapper for a const Matrix for accessing the elements of a given row with a [] operator. More... | |
| class | CConstMatrixRowAccessorExtended |
| A vector-like wrapper for a const Matrix for accessing the elements of a given row with a [] operator, with offset and custom spacing. More... | |
| class | CVectorRowWrapper |
| class | CConstVectorRowWrapper |
| class | CVectorColumnWrapper |
| class | CConstVectorColumnWrapper |
| class | JointHorizontalAccessor |
| Access to two matrices joint horizontally [A|B]. More... | |
| class | JointVerticalAccessor |
| Access to two matrices joint vertically [A;B]. More... | |
| class | JointAccessor |
| For usage with JointVerticalAccessor and JointHorizontalAccessor. More... | |
| class | IndirectAccessWrapper |
| class | CMonteCarlo |
| class | CPolygon |
| A wrapper of a TPolygon2D class, implementing CSerializable. More... | |
| class | CQuaternion |
| General functions for quaternion. More... | |
| class | CSparseMatrixTemplate |
| A sparse matrix container (with cells of any type), with iterators. More... | |
| class | CSparseSymmetricalMatrix |
| A sparse matrix container for square symmetrical content around the main diagonal. More... | |
| class | CSplineInterpolator1D |
| A (persistent) sequence of (x,y) coordinates, allowing queries of intermediate points through spline interpolation, where possible. More... | |
| class | CVectorTemplate |
| This template class provides the basic functionality for a general 1D any-size, resizable container of numerical or non-numerical elements. More... | |
| class | CDijkstra |
| The Dijkstra algorithm for finding the shortest path between a given source node in a (weighted) directed graph and all other nodes. More... | |
| class | TPolygonWithPlane |
| Slightly heavyweight type to speed-up calculations with polygons in 3D. More... | |
| class | CDirectedGraph |
| A directed graph with the argument of the template specifying the type of the annotations in the edges. More... | |
| struct | TPoint2D |
| Lightweight 2D point. More... | |
| struct | TPose2D |
| Lightweight 2D pose. More... | |
| struct | TPoint3D |
| Lightweight 3D point. More... | |
| struct | TPose3D |
| Lightweight 3D pose (three spatial coordinates, plus three angular coordinates). More... | |
| struct | TSegment2D |
| 2D segment, consisting of two points. More... | |
| struct | TSegment3D |
| 3D segment, consisting of two points. More... | |
| struct | TLine2D |
2D line without bounds, represented by its equation . More... | |
| struct | TLine3D |
| 3D line, represented by a base point and a director vector. More... | |
| struct | TPlane |
3D Plane, represented by its equation More... | |
| class | TPolygon2D |
| 2D polygon, inheriting from std::vector<TPoint2D>. More... | |
| class | TPolygon3D |
| 3D polygon, inheriting from std::vector<TPoint3D> More... | |
| struct | TObject2D |
| Standard type for storing any lightweight 2D type. More... | |
| struct | TObject3D |
| Standard object for storing any 3D lightweight object. More... | |
| class | RANSAC_Template |
Typedefs | |
| typedef CLevenbergMarquardtTempl < vector_double > | CLevenbergMarquardt |
| The default name for the LM class is an instantiation for "double". | |
| typedef CMatrixTemplateNumeric < float > | CMatrixFloat |
| Declares a matrix of float numbers (non serializable). | |
| typedef CMatrixTemplateNumeric < double > | CMatrixDouble |
| Declares a matrix of double numbers (non serializable). | |
| typedef CMatrixTemplateNumeric < unsigned int > | CMatrixUInt |
| Declares a matrix of unsigned ints (non serializable). | |
| typedef CMatrixTemplate< bool > | CMatrixBool |
| Declares a matrix of booleans (non serializable). | |
| typedef CMatrixTemplateNumeric < double > | CMatrixLongDouble |
| Declares a matrix of "long doubles" (non serializable), or of "doubles" if the compiler does not support "long double". | |
| typedef CQuaternion< double > | CQuaternionDouble |
| A quaternion of data type "double". | |
| typedef CQuaternion< float > | CQuaternionFloat |
| A quaternion of data type "float". | |
| typedef CVectorTemplate< float > | CVectorFloat |
| Declares a vector of float elements. | |
| typedef CVectorTemplate< double > | CVectorDouble |
| Declares a vector of double elements. | |
| typedef TPlane | TPlane3D |
| typedef RANSAC_Template< double > | RANSAC |
| The default instance of RANSAC, for double type. | |
Typedefs for common sizes | |
| typedef CMatrixFixedNumeric < double, 2, 2 > | CMatrixDouble22 |
| typedef CMatrixFixedNumeric < double, 3, 3 > | CMatrixDouble33 |
| typedef CMatrixFixedNumeric < double, 4, 4 > | CMatrixDouble44 |
| typedef CMatrixFixedNumeric < double, 6, 6 > | CMatrixDouble66 |
| typedef CMatrixFixedNumeric < double, 1, 3 > | CMatrixDouble13 |
| typedef CMatrixFixedNumeric < double, 3, 1 > | CMatrixDouble31 |
| typedef CMatrixFixedNumeric < double, 1, 2 > | CMatrixDouble12 |
| typedef CMatrixFixedNumeric < double, 2, 1 > | CMatrixDouble21 |
| typedef CMatrixFixedNumeric < double, 6, 1 > | CMatrixDouble61 |
| typedef CMatrixFixedNumeric < double, 1, 6 > | CMatrixDouble16 |
| typedef CMatrixFixedNumeric < float, 2, 2 > | CMatrixFloat22 |
| typedef CMatrixFixedNumeric < float, 3, 3 > | CMatrixFloat33 |
| typedef CMatrixFixedNumeric < float, 4, 4 > | CMatrixFloat44 |
| typedef CMatrixFixedNumeric < float, 6, 6 > | CMatrixFloat66 |
| typedef CMatrixFixedNumeric < float, 1, 3 > | CMatrixFloat13 |
| typedef CMatrixFixedNumeric < float, 3, 1 > | CMatrixFloat31 |
| typedef CMatrixFixedNumeric < float, 1, 2 > | CMatrixFloat12 |
| typedef CMatrixFixedNumeric < float, 2, 1 > | CMatrixFloat21 |
| typedef CMatrixFixedNumeric < float, 6, 1 > | CMatrixFloat61 |
| typedef CMatrixFixedNumeric < float, 1, 6 > | CMatrixFloat16 |
Enumerations | |
| enum | TMatrixTextFileFormat { MATRIX_FORMAT_ENG = 0, MATRIX_FORMAT_FIXED = 1, MATRIX_FORMAT_INT = 2 } |
Functions | |
| bool MRPTDLLIMPEXP | isNaN (float f) MRPT_NO_THROWS |
| Returns true if the number is NaN. | |
| bool MRPTDLLIMPEXP | isNaN (double f) MRPT_NO_THROWS |
| Returns true if the number is NaN. | |
| bool MRPTDLLIMPEXP | isFinite (float f) MRPT_NO_THROWS |
| Returns true if the number is non infinity. | |
| bool MRPTDLLIMPEXP | isFinite (double f) MRPT_NO_THROWS |
| Returns true if the number is non infinity. | |
| template<class MATRIXLIKE > | |
| size_t | size (const MATRIXLIKE &m, int dim) |
| template<class T , std::size_t N> | |
| bool | operator== (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<class T , std::size_t N> | |
| bool | operator< (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<class T , std::size_t N> | |
| bool | operator!= (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<class T , std::size_t N> | |
| bool | operator> (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<class T , std::size_t N> | |
| bool | operator<= (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<class T , std::size_t N> | |
| bool | operator>= (const CArray< T, N > &x, const CArray< T, N > &y) |
| template<typename U > | |
| U | myStaticCast (double val) |
| template<> | |
| bool | myStaticCast (double val) |
| template<typename MAT > | |
| CMatrixViewTranspose< MAT > | getTransposed (MAT &m) |
| template<typename MAT > | |
| CConstMatrixViewTranspose< MAT > | getTransposed (const MAT &m) |
| template<typename MAT > | |
| CMatrixColumnAccessor< MAT > | getColumnAccessor (MAT &m, size_t colIdx) |
| template<typename MAT > | |
| CMatrixColumnAccessorExtended < MAT > | getColumnAccessor (MAT &m, size_t colIdx, size_t offset, size_t space=1) |
| template<typename MAT > | |
| CConstMatrixColumnAccessor< MAT > | getColumnAccessor (const MAT &m, size_t colIdx) |
| template<typename MAT > | |
| CConstMatrixColumnAccessorExtended < MAT > | getColumnAccessor (const MAT &m, size_t colIdx, size_t offset, size_t space=1) |
| template<typename MAT > | |
| CMatrixRowAccessor< MAT > | getRowAccessor (MAT &m, size_t rowIdx) |
| template<typename MAT > | |
| CMatrixRowAccessorExtended< MAT > | getRowAccessor (MAT &m, size_t rowIdx, size_t offset, size_t space=1) |
| template<typename MAT > | |
| CConstMatrixRowAccessor< MAT > | getRowAccessor (const MAT &m, size_t rowIdx) |
| template<typename MAT > | |
| CConstMatrixRowAccessorExtended < MAT > | getRowAccessor (const MAT &m, size_t rowIdx, size_t offset, size_t space=1) |
| template<typename VEC > | |
| CVectorRowWrapper< VEC > | getAsRow (VEC &v) |
| template<typename VEC > | |
| CConstVectorRowWrapper< VEC > | getAsRow (const VEC &v) |
| bool MRPTDLLIMPEXP | traceRay (const vector< TPolygonWithPlane > &vec, const mrpt::poses::CPose3D &pose, double &dist) |
| Fast ray tracing method using polygons' properties. | |
| bool | traceRay (const vector< TPolygon3D > &vec, const mrpt::poses::CPose3D &pose, double &dist) |
| Fast ray tracing method using polygons' properties. | |
| template<class T , class U , class V > | |
| void | crossProduct3D (const T &v0, const U &v1, V &vOut) |
| Computes the cross product of two 3D vectors, returning a vector normal to both. | |
| template<class T > | |
| void | crossProduct3D (const std::vector< T > &v0, const std::vector< T > &v1, std::vector< T > &v_out) |
| Computes the cross product of two 3D vectors, returning a vector normal to both. | |
| template<class T , class U > | |
| bool | vectorsAreParallel2D (const T &v1, const U &v2) |
| Returns true if two 2D vectors are parallel. | |
| template<class T , class U > | |
| bool | vectorsAreParallel3D (const T &v1, const U &v2) |
| Returns true if two 3D vectors are parallel. | |
| double MRPTDLLIMPEXP | minimumDistanceFromPointToSegment (const double &Px, const double &Py, const double &x1, const double &y1, const double &x2, const double &y2, double &out_x, double &out_y) |
| Computes the closest point from a given point to a segment, and returns that minimum distance. | |
| double MRPTDLLIMPEXP | minimumDistanceFromPointToSegment (const double &Px, const double &Py, const double &x1, const double &y1, const double &x2, const double &y2, float &out_x, float &out_y) |
| Computes the closest point from a given point to a segment, and returns that minimum distance. | |
| void MRPTDLLIMPEXP | closestFromPointToSegment (const double &Px, const double &Py, const double &x1, const double &y1, const double &x2, const double &y2, double &out_x, double &out_y) |
| Computes the closest point from a given point to a segment. | |
| void MRPTDLLIMPEXP | closestFromPointToLine (const double &Px, const double &Py, const double &x1, const double &y1, const double &x2, const double &y2, double &out_x, double &out_y) |
| Computes the closest point from a given point to a (infinite) line. | |
| double MRPTDLLIMPEXP | closestSquareDistanceFromPointToLine (const double &Px, const double &Py, const double &x1, const double &y1, const double &x2, const double &y2) |
| Returns the square distance from a point to a line. | |
| template<typename T > | |
| T | distanceBetweenPoints (const T x1, const T y1, const T x2, const T y2) |
| Returns the distance between 2 points in 2D. | |
| template<typename T > | |
| T | distanceBetweenPoints (const T x1, const T y1, const T z1, const T x2, const T y2, const T z2) |
| Returns the distance between 2 points in 3D. | |
| template<typename T > | |
| T | distanceSqrBetweenPoints (const T x1, const T y1, const T x2, const T y2) |
| Returns the square distance between 2 points in 2D. | |
| template<typename T > | |
| T | distanceSqrBetweenPoints (const T x1, const T y1, const T z1, const T x2, const T y2, const T z2) |
| Returns the square distance between 2 points in 3D. | |
| bool MRPTDLLIMPEXP | SegmentsIntersection (const double &x1, const double &y1, const double &x2, const double &y2, const double &x3, const double &y3, const double &x4, const double &y4, double &ix, double &iy) |
| Returns the intersection point, and if it exists, between two segments. | |
| bool MRPTDLLIMPEXP | SegmentsIntersection (const double &x1, const double &y1, const double &x2, const double &y2, const double &x3, const double &y3, const double &x4, const double &y4, float &ix, float &iy) |
| Returns the intersection point, and if it exists, between two segments. | |
| bool MRPTDLLIMPEXP | pointIntoPolygon2D (const double &px, const double &py, unsigned int polyEdges, const double *poly_xs, const double *poly_ys) |
| Returns true if the 2D point (px,py) falls INTO the given polygon. | |
| template<typename T > | |
| bool | pointIntoQuadrangle (T x, T y, T v1x, T v1y, T v2x, T v2y, T v3x, T v3y, T v4x, T v4y) |
| Specialized method to check whether a point (x,y) falls into a quadrangle. | |
| double MRPTDLLIMPEXP | distancePointToPolygon2D (const double &px, const double &py, unsigned int polyEdges, const double *poly_xs, const double *poly_ys) |
| Returns the closest distance of a given 2D point to a polygon, or "0" if the point is INTO the polygon or its perimeter. | |
| bool MRPTDLLIMPEXP | minDistBetweenLines (const double &p1_x, const double &p1_y, const double &p1_z, const double &p2_x, const double &p2_y, const double &p2_z, const double &p3_x, const double &p3_y, const double &p3_z, const double &p4_x, const double &p4_y, const double &p4_z, double &x, double &y, double &z, double &dist) |
| Calculates the minimum distance between a pair of lines. | |
| bool MRPTDLLIMPEXP | RectanglesIntersection (const double &R1_x_min, const double &R1_x_max, const double &R1_y_min, const double &R1_y_max, const double &R2_x_min, const double &R2_x_max, const double &R2_y_min, const double &R2_y_max, const double &R2_pose_x, const double &R2_pose_y, const double &R2_pose_phi) |
| Returns wether two rotated rectangles intersect. | |
| template<class T > | |
| CMatrixTemplateNumeric< T > | generateAxisBaseFromDirection (T dx, T dy, T dz) |
| Computes an axis base (a set of three 3D normal vectors) with the given vector being the first of them. | |
| TPoint3D | operator- (const TPoint3D &p1) |
| Unary minus operator for 3D points. | |
| bool | operator== (const TPoint2D &p1, const TPoint2D &p2) |
| Exact comparison between 2D points. | |
| bool | operator!= (const TPoint2D &p1, const TPoint2D &p2) |
| Exact comparison between 2D points. | |
| bool | operator== (const TPoint3D &p1, const TPoint3D &p2) |
| Exact comparison between 3D points. | |
| bool | operator!= (const TPoint3D &p1, const TPoint3D &p2) |
| Exact comparison between 3D points. | |
| bool | operator== (const TPose2D &p1, const TPose2D &p2) |
| Exact comparison between 2D poses, taking possible cycles into account. | |
| bool | operator!= (const TPose2D &p1, const TPose2D &p2) |
| Exact comparison between 2D poses, taking possible cycles into account. | |
| bool | operator== (const TPose3D &p1, const TPose3D &p2) |
| Exact comparison between 3D poses, taking possible cycles into account. | |
| bool | operator!= (const TPose3D &p1, const TPose3D &p2) |
| Exact comparison between 3D poses, taking possible cycles into account. | |
| bool | operator== (const TSegment2D &s1, const TSegment2D &s2) |
| bool | operator!= (const TSegment2D &s1, const TSegment2D &s2) |
| bool | operator== (const TSegment3D &s1, const TSegment3D &s2) |
| bool | operator!= (const TSegment3D &s1, const TSegment3D &s2) |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPoint2D &o) |
| TPoint2D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPoint2D &o) |
| TPoint2D binary output. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPoint3D &o) |
| TPoint3D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPoint3D &o) |
| TPoint3D binary output. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPose2D &o) |
| TPose2D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPose2D &o) |
| TPose2D binary output. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPose3D &o) |
| TPose3D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPose3D &o) |
| TPose3D binary output. | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TSegment2D &s) |
| TSegment2D binary input. | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TSegment2D &s) |
| TSegment2D binary output. | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TLine2D &l) |
| TLine2D binary input. | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TLine2D &l) |
| TLine2D binary output. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TObject2D &o) |
| TObject2D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TObject2D &o) |
| TObject2D binary input. | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TSegment3D &s) |
| TSegment3D binary input. | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TSegment3D &s) |
| TSegment3D binary output. | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TLine3D &l) |
| TLine3D binary input. | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TLine3D &l) |
| TLine3D binary output. | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPlane &p) |
| TPlane binary input. | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPlane &p) |
| TPlane binary output. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TObject3D &o) |
| TObject3D binary input. | |
| MRPTDLLIMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TObject3D &o) |
| TObject3D binary output. | |
| template<class CONTAINER > | |
| size_t | countNonZero (const CONTAINER &a) |
| template<class CONTAINER > | |
| CONTAINER::value_type | maximum (const CONTAINER &v, size_t *maxIndex=NULL) |
| template<class CONTAINER > | |
| CONTAINER::value_type | minimum (const CONTAINER &v, size_t *minIndex=NULL) |
| template<class CONTAINER > | |
| void | minimum_maximum (const CONTAINER &v, typename CONTAINER::mrpt_autotype::value_type &out_min, typename CONTAINER::mrpt_autotype::value_type &out_max, size_t *minIndex=static_cast< size_t * >(NULL), size_t *maxIndex=static_cast< size_t * >(NULL)) |
| template<class CONTAINER > | |
| CONTAINER::value_type | norm_inf (const CONTAINER &v, size_t *maxIndex=NULL) |
| template<class CONTAINER > | |
| CONTAINER::value_type | squareNorm (const CONTAINER &v) |
| template<class CONTAINER > | |
| CONTAINER::value_type | norm (const CONTAINER &v) |
| template<class CONTAINER > | |
| double | mean (const CONTAINER &v) |
| template<class CONTAINER > | |
| CONTAINER::value_type | sum (const CONTAINER &v) |
| template<class CONTAINER > | |
| void | adjustRange (CONTAINER &m, const typename CONTAINER::value_type minVal, const typename CONTAINER::value_type maxVal) |
| template<class CONTAINER1 , class CONTAINER2 > | |
| void | cumsum (const CONTAINER1 &in_data, CONTAINER2 &out_cumsum) |
| template<class CONTAINER1 , class CONTAINER2 > | |
| size_t | countCommonElements (const CONTAINER1 &a, const CONTAINER2 &b) |
| template<class CONTAINER > | |
| std::vector< double > | histogram (const CONTAINER &v, double limit_min, double limit_max, size_t number_bins, bool do_normalization=false) |
| template<class VECTORLIKE > | |
| double | stddev (const VECTORLIKE &v, bool unbiased=true) |
| template<class VECTORLIKE > | |
| void | meanAndStd (const VECTORLIKE &v, double &out_mean, double &out_std, bool unbiased=true) |
| template<size_t NROWS, size_t NCOLS> | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CMatrixFixedNumeric< float, NROWS, NCOLS > &M) |
| Read operator from a CStream. | |
| template<size_t NROWS, size_t NCOLS> | |
| mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CMatrixFixedNumeric< double, NROWS, NCOLS > &M) |
| Read operator from a CStream. | |
| template<size_t NROWS, size_t NCOLS> | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const CMatrixFixedNumeric< float, NROWS, NCOLS > &M) |
| Write operator for writing into a CStream. | |
| template<size_t NROWS, size_t NCOLS> | |
| mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const CMatrixFixedNumeric< double, NROWS, NCOLS > &M) |
| Write operator for writing into a CStream. | |
| template<class T , size_t NROWS, size_t NCOLS> | |
| bool | operator== (const CMatrixFixedNumeric< T, NROWS, NCOLS > &M1, const CMatrixFixedNumeric< T, NROWS, NCOLS > &M2) |
| Equal comparison (==). | |
| template<class MATRIX > | |
| RET_TYPE_ASSERT_MRPTMATRIX (MATRIX, std::ostream)&operator<< (std | |
| Textual output stream function. | |
| template<class MAT1 , class MAT2 > | |
| MAT1::value_type | multiply_HCHt_scalar (const MAT1 &H, const MAT2 &C) |
| Just like s=H.multiply_HCHt_scalar(C), but defined in mrpt::math for backward compatibility. | |
| template<class T > | |
| CMatrixTemplateNumeric< T > | operator/ (const CMatrixTemplateNumeric< T > &m1, const CMatrixTemplateNumeric< T > &m2) |
| Binary matrix division operator A/B = A*inv(B). | |
| template<class T > | |
| CMatrixTemplateNumeric< T > | operator^ (const CMatrixTemplateNumeric< T > &m, const unsigned int pow) |
| binary power operator | |
| template<class MAT > | |
| MAT_TYPE_TRANSPOSE_OF (MAT) operator~(const MAT &m) | |
| unary transpose operator ~ | |
| template<class MATRIX > | |
| RET_MAT_ASSERT_MRPTMATRIX (MATRIX) operator!(const MATRIX &m) | |
| Unary inversion operator. | |
| template<class MAT1 , class MAT2 > | |
| MAT_TYPE_PRODUCT_OF (MAT1, MAT2) operator*(const MAT1 &A | |
Matrix multiplication operator: A * B -> RES The meaning of the lengthy macros in the declaration is:
| |
| class MAT_OUT void | meanAndCov (const MAT_IN &v, vector_double &out_mean, MAT_OUT &out_cov) |
| template<class MATRIX > | |
| MAT_TYPE_COVARIANCE_OF (MATRIX) cov(const MATRIX &v) | |
| Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample, so the covariance is MxM. | |
| bool MRPTDLLIMPEXP | loadVector (utils::CFileStream &f, std::vector< int > &d) |
| Loads one row of a text file as a numerical std::vector. | |
| bool MRPTDLLIMPEXP | loadVector (utils::CFileStream &f, std::vector< double > &d) |
| Loads one row of a text file as a numerical std::vector. | |
| template<typename T , typename K > | |
| void | linspace (T first, T last, size_t count, std::vector< K > &out_vector) |
| Generates an equidistant sequence of numbers given the first one, the last one and the desired number of points. | |
| template<class T > | |
| std::vector< T > | linspace (T first, T last, size_t count) |
| Generates an equidistant sequence of numbers given the first one, the last one and the desired number of points. | |
| template<class T , T STEP> | |
| std::vector< T > | sequence (T first, size_t length) |
| Generates a sequence of values [first,first+STEP,first+2*STEP,...]. | |
| template<class T > | |
| std::vector< T > | ones (size_t count) |
| Generates a vector of all ones of the given length. | |
| template<class T > | |
| std::vector< T > | zeros (size_t count) |
| Generates a vector of all zeros of the given length. | |
| template<class T > | |
| void | normalize (const std::vector< T > &v, std::vector< T > &out_v) |
| Normalize a vector, such as its norm is the unity. | |
| template<class VECTOR_OF_VECTOR , class VECTORLIKE , class MATRIXLIKE > | |
| void | meanAndCovVector (const VECTOR_OF_VECTOR &v, VECTORLIKE &out_mean, MATRIXLIKE &out_cov) |
| Computes the mean vector and covariance from a list of values given as a vector of vectors, where each row is a sample. | |
| template<class VECTOR_OF_VECTOR > | |
| CMatrixDouble | covVector (const VECTOR_OF_VECTOR &v) |
| Computes the covariance matrix from a list of values given as a vector of vectors, where each row is a sample. | |
| template<typename T , size_t N, typename U > | |
| void | covariancesAndMean (const std::vector< T > &elements, CMatrixTemplateNumeric< U > &covariances, U(&means)[N]) |
| Computes covariances and mean of any vector of containers. | |
| template<typename T , size_t N, typename U > | |
| void | covariancesAndMean (const std::vector< T > &elements, CMatrixFixedNumeric< U, N, N > &covariances, U(&means)[N]) |
| Computes covariances and mean of any vector of containers. | |
| template<typename T , size_t N, typename U > | |
| void | covariancesAndMean (const std::vector< T > &elements, CMatrixFixedNumeric< U, N, N > &covariances, std::vector< U > &means) |
| Computes covariances and mean of any vector of containers. | |
| template<class VECTORLIKE1 , class VECTORLIKE2 > | |
| void | weightedHistogram (const VECTORLIKE1 &values, const VECTORLIKE1 &weights, float binWidth, VECTORLIKE2 &out_binCenters, VECTORLIKE2 &out_binValues) |
| Computes the weighted histogram for a vector of values and their corresponding weights. | |
| template<class VECTORLIKE1 , class VECTORLIKE2 > | |
| void | weightedHistogramLog (const VECTORLIKE1 &values, const VECTORLIKE1 &log_weights, float binWidth, VECTORLIKE2 &out_binCenters, VECTORLIKE2 &out_binValues) |
| Computes the weighted histogram for a vector of values and their corresponding log-weights. | |
| uint64_t MRPTDLLIMPEXP | factorial64 (unsigned int n) |
| Computes the factorial of an integer number and returns it as a 64-bit integer number. | |
| double MRPTDLLIMPEXP | factorial (unsigned int n) |
| Computes the factorial of an integer number and returns it as a double value (internally it uses logarithms for avoiding overflow). | |
| template<class T > | |
| void | wrapTo2PiInPlace (T &a) |
| Modifies the given angle to translate it into the [0,2pi[ range. | |
| template<class T > | |
| T | wrapTo2Pi (T a) |
| Modifies the given angle to translate it into the [0,2pi[ range. | |
| template<class T > | |
| T | wrapToPi (T a) |
| Modifies the given angle to translate it into the ]-pi,pi] range. | |
| template<class T > | |
| void | wrapToPiInPlace (T &a) |
| Modifies the given angle to translate it into the ]-pi,pi] range. | |
| template<class T > | |
| T | round2up (T val) |
| Round up to the nearest power of two of a given number. | |
| template<class T > | |
| T | round_10power (T val, int power10) |
| Round a decimal number up to the given 10'th power (eg, to 1000,100,10, and also fractions) power10 means round up to: 1 -> 10, 2 -> 100, 3 -> 1000, ... | |
| template<class T > | |
| double | correlate_matrix (const CMatrixTemplateNumeric< T > &a1, const CMatrixTemplateNumeric< T > &a2) |
| Calculate the correlation between two matrices (by AJOGD @ JAN-2007). | |
| template<class T > | |
| void MRPTDLLIMPEXP | qr_decomposition (CMatrixTemplateNumeric< T > &A, CMatrixTemplateNumeric< T > &R, CMatrixTemplateNumeric< T > &Q, CVectorTemplate< T > &c, int &sing) |
| Matrix QR decomposition. | |
| template<class T > | |
| void MRPTDLLIMPEXP | UpdateCholesky (CMatrixTemplateNumeric< T > &chol, CVectorTemplate< T > &r1Modification) |
| If R = CHOL(A) is the original Cholesky factorization of A, then R1 = CHOLUPDATE(R,X) returns the upper triangular Cholesky factor of A + X*X', where X is a column vector of appropriate length. | |
| void MRPTDLLIMPEXP | computeEigenValues2x2 (const CMatrixFloat &in_matrix, float &min_eigenvalue, float &max_eigenvalue) |
| Compute the two eigenvalues of a 2x2 matrix. | |
| double MRPTDLLIMPEXP | averageLogLikelihood (const vector_double &logLikelihoods) |
| A numerically-stable method to compute average likelihood values with strongly different ranges (unweighted likelihoods: compute the arithmetic mean). | |
| double MRPTDLLIMPEXP | averageWrap2Pi (const vector_double &angles) |
Computes the average of a sequence of angles in radians taking into account the correct wrapping in the range , for example, the mean of (2,-2) is , not 0. | |
| double MRPTDLLIMPEXP | averageLogLikelihood (const vector_double &logWeights, const vector_double &logLikelihoods) |
| A numerically-stable method to average likelihood values with strongly different ranges (weighted likelihoods). | |
| std::string MRPTDLLIMPEXP | MATLAB_plotCovariance2D (const CMatrixFloat &cov22, const CVectorFloat &mean, const float &stdCount, const std::string &style=std::string("b"), const size_t &nEllipsePoints=30) |
| Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('float' version). | |
| template<class MATRIXLIKE1 , class MATRIXLIKE2 > | |
| RET_VOID_ASSERT_MRPTMATRICES (MATRIXLIKE1, MATRIXLIKE2) homogeneousMatrixInverse(const MATRIXLIKE1 &M | |
| Efficiently compute the inverse of a 4x4 homogeneous matrix by only transposing the rotation 3x3 part and solving the translation with dot products. | |
| class VECTORLIKE3 class MATRIXLIKE class USERPARAM void | estimateJacobian (const VECTORLIKE &x, void(*functor)(const VECTORLIKE &x, const USERPARAM &y, VECTORLIKE3 &out), const VECTORLIKE2 &increments, const USERPARAM &userParam, MATRIXLIKE &out_Jacobian) |
| template<typename T , typename At , size_t N> | |
| std::vector< T > & | loadVector (std::vector< T > &v, At(&theArray)[N]) |
| Assignment operator for initializing a std::vector from a C array (The vector will be automatically set to the correct size). | |
| void | unwrap2PiSequence (vector_double &x) |
| Modify a sequence of angle values such as no consecutive values have a jump larger than PI in absolute value. | |
| template<size_t N, typename T > | |
| std::vector< T > | make_vector (const T val1,...) |
| A versatile template to build vectors on-the-fly in a style close to MATLAB's v=[a b c d ...] The first argument of the template is the vector length, and the second the type of the numbers. | |
Array operators | |
| template<typename T , std::size_t N, class VECTORLIKE > | |
| CArrayNumeric< T, N > | operator+ (const CArrayNumeric< T, N > &A, const VECTORLIKE &B) |
| Operator ARRAY <- ARRAY + VECTORorARRAY. | |
| template<typename T , std::size_t N, class VECTORLIKE > | |
| CArrayNumeric< T, N > | operator- (const CArrayNumeric< T, N > &A, const VECTORLIKE &B) |
| Operator ARRAY <- ARRAY - VECTORorARRAY. | |
| template<typename T , std::size_t N, class VECTORLIKE > | |
| CArrayNumeric< T, N > | operator* (const CArrayNumeric< T, N > &A, const VECTORLIKE &B) |
| Dot product: ARRAY <- ARRAY . | |
| template<typename T , size_t N> | |
| std::ostream & | operator<< (std::ostream &ostrm, const CArray< T, N > &a) |
| Textual output stream function. | |
Conversions from point & poses to matrices | |
Used from the "operator =" from poses/points to CMatrixFixedNumeric | |
| template<typename T , size_t NROWS, size_t NCOLS> | |
| CMatrixFixedNumeric< T, NROWS, NCOLS > & | matrixFromPoseOrPoint (CMatrixFixedNumeric< T, NROWS, NCOLS > &M, const CPoint2D &p) |
| template<typename T , size_t NROWS, size_t NCOLS> | |
| CMatrixFixedNumeric< T, NROWS, NCOLS > & | matrixFromPoseOrPoint (CMatrixFixedNumeric< T, NROWS, NCOLS > &M, const CPoint3D &p) |
| template<typename T , size_t NROWS, size_t NCOLS> | |
| CMatrixFixedNumeric< T, NROWS, NCOLS > & | matrixFromPoseOrPoint (CMatrixFixedNumeric< T, NROWS, NCOLS > &M, const CPose2D &p) |
| template<typename T , size_t NROWS, size_t NCOLS> | |
| CMatrixFixedNumeric< T, NROWS, NCOLS > & | matrixFromPoseOrPoint (CMatrixFixedNumeric< T, NROWS, NCOLS > &M, const CPose3D &p) |
| template<> | |
| CMatrixDouble21 & | matrixFromPoseOrPoint (CMatrixDouble21 &M, const CPoint2D &p) |
| template<> | |
| CMatrixDouble31 & | matrixFromPoseOrPoint (CMatrixDouble31 &M, const CPoint3D &p) |
| template<> | |
| CMatrixDouble31 & | matrixFromPoseOrPoint (CMatrixDouble31 &M, const CPose2D &p) |
| template<> | |
| CMatrixDouble61 & | matrixFromPoseOrPoint (CMatrixDouble61 &M, const CPose3D &p) |
Statistics functions | |
| double MRPTDLLIMPEXP | normalPDF (double x, double mu, double std) |
| Evaluates the univariate normal (Gaussian) distribution at a given point "x". | |
| template<typename T > | |
| T | normalPDF (const CMatrixTemplateNumeric< T > &x, const CMatrixTemplateNumeric< T > &mu, const CMatrixTemplateNumeric< T > &cov) |
| Evaluates the multivariate normal (Gaussian) distribution at a given point "x" ("x" and "mu" can be 1xN or Nx1 matrixes). | |
| template<typename T , size_t N> | |
| T | normalPDF (const CMatrixFixedNumeric< T, N, 1 > &x, const CMatrixFixedNumeric< T, N, 1 > &mu, const CMatrixFixedNumeric< T, N, N > &cov) |
| Evaluates the multivariate normal (Gaussian) distribution at a given point "x" ("x" and "mu" can be 1xN or Nx1 matrixes). | |
| template<typename VECTORLIKE , typename MATRIXLIKE > | |
| MATRIXLIKE::value_type | normalPDF (const VECTORLIKE &d, const MATRIXLIKE &cov) |
| Evaluates the multivariate normal (Gaussian) distribution at a given point given its distance vector "d" from the Gaussian mean. | |
| template<typename VECTORLIKE1 , typename MATRIXLIKE1 , typename VECTORLIKE2 , typename MATRIXLIKE2 > | |
| double | KLD_Gaussians (const VECTORLIKE1 &mu0, const MATRIXLIKE1 &cov0, const VECTORLIKE2 &mu1, const MATRIXLIKE2 &cov1) |
| Kullback-Leibler divergence (KLD) between two independent multivariate Gaussians. | |
| double MRPTDLLIMPEXP | erfc (double x) |
| The complementary error function of a Normal distribution. | |
| double MRPTDLLIMPEXP | erf (double x) |
| The error function of a Normal distribution. | |
| double MRPTDLLIMPEXP | normalQuantile (double p) |
| Evaluates the Gaussian distribution quantile for the probability value p=[0,1]. | |
| double MRPTDLLIMPEXP | normalCDF (double p) |
| Evaluates the Gaussian cumulative density function. | |
| double MRPTDLLIMPEXP | chi2inv (double P, unsigned int dim=1) |
| The "quantile" of the Chi-Square distribution, for dimension "dim" and probability 0<P<1 (the inverse of chi2CDF) An aproximation from the Wilson-Hilferty transformation is used. | |
| template<class T > | |
| double | noncentralChi2CDF (unsigned int degreesOfFreedom, T noncentrality, T arg) |
| double | chi2CDF (unsigned int degreesOfFreedom, double arg) |
| double | chi2PDF (unsigned int degreesOfFreedom, double arg, double accuracy=1e-7) |
| template<typename CONTAINER > | |
| void | condidenceIntervals (const CONTAINER &data, typename CONTAINER::value_type &out_mean, typename CONTAINER::value_type &out_lower_conf_interval, typename CONTAINER::value_type &out_upper_conf_interval, const double confidenceInterval=0.1, const size_t histogramNumBins=1000) |
| Return the mean and the 10-90% confidence points (or with any other confidence value) of a set of samples by building the cummulative CDF of all the elements of the container. | |
Fourier functions | |
| void MRPTDLLIMPEXP | fft_real (vector_float &in_realData, vector_float &out_FFT_Re, vector_float &out_FFT_Im, vector_float &out_FFT_Mag) |
| Computes the FFT of a 2^N-size vector of real numbers, and returns the Re+Im+Magnitude parts. | |
| void MRPTDLLIMPEXP | dft2_real (const CMatrixFloat &in_data, CMatrixFloat &out_real, CMatrixFloat &out_imag) |
| Compute the 2D Discrete Fourier Transform (DFT) of a real matrix, returning the real and imaginary parts separately. | |
| void MRPTDLLIMPEXP | idft2_real (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_data) |
| Compute the 2D inverse Discrete Fourier Transform (DFT). | |
| void MRPTDLLIMPEXP | dft2_complex (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_real, CMatrixFloat &out_imag) |
| Compute the 2D Discrete Fourier Transform (DFT) of a complex matrix, returning the real and imaginary parts separately. | |
| void MRPTDLLIMPEXP | idft2_complex (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_real, CMatrixFloat &out_imag) |
| Compute the 2D inverse Discrete Fourier Transform (DFT). | |
| void MRPTDLLIMPEXP | cross_correlation_FFT (const CMatrixFloat &A, const CMatrixFloat &B, CMatrixFloat &out_corr) |
| Correlation of two matrixes using 2D FFT. | |
Simple intersection operations, relying basically on geometrical operations. | |
| bool MRPTDLLIMPEXP | intersect (const TSegment3D &s1, const TSegment3D &s2, TObject3D &obj) |
| Gets the intersection between two 3D segments. | |
| bool MRPTDLLIMPEXP | intersect (const TSegment3D &s1, const TPlane &p2, TObject3D &obj) |
| Gets the intersection between a 3D segment and a plane. | |
| bool MRPTDLLIMPEXP | intersect (const TSegment3D &s1, const TLine3D &r2, TObject3D &obj) |
| Gets the intersection between a 3D segment and a 3D line. | |
| bool | intersect (const TPlane &p1, const TSegment3D &s2, TObject3D &obj) |
| Gets the intersection between a plane and a 3D segment. | |
| bool MRPTDLLIMPEXP | intersect (const TPlane &p1, const TPlane &p2, TObject3D &obj) |
| Gets the intersection between two planes. | |
| bool MRPTDLLIMPEXP | intersect (const TPlane &p1, const TLine3D &p2, TObject3D &obj) |
| Gets the intersection between a plane and a 3D line. | |
| bool | intersect (const TLine3D &r1, const TSegment3D &s2, TObject3D &obj) |
| Gets the intersection between a 3D line and a 3D segment. | |
| bool | intersect (const TLine3D &r1, const TPlane &p2, TObject3D &obj) |
| Gets the intersection between a 3D line and a plane. | |
| bool MRPTDLLIMPEXP | intersect (const TLine3D &r1, const TLine3D &r2, TObject3D &obj) |
| Gets the intersection between two 3D lines. | |
| bool MRPTDLLIMPEXP | intersect (const TLine2D &r1, const TLine2D &r2, TObject2D &obj) |
| Gets the intersection between two 2D lines. | |
| bool MRPTDLLIMPEXP | intersect (const TLine2D &r1, const TSegment2D &s2, TObject2D &obj) |
| Gets the intersection between a 2D line and a 2D segment. | |
| bool | intersect (const TSegment2D &s1, const TLine2D &r2, TObject2D &obj) |
| Gets the intersection between a 2D line and a 2D segment. | |
| bool MRPTDLLIMPEXP | intersect (const TSegment2D &s1, const TSegment2D &s2, TObject2D &obj) |
| Gets the intersection between two 2D segments. | |
Angle retrieval methods. Methods which use TSegments will automatically use TLines' implicit constructors. | |
| double MRPTDLLIMPEXP | getAngle (const TPlane &p1, const TPlane &p2) |
| Computes the angle between two planes. | |
| double MRPTDLLIMPEXP | getAngle (const TPlane &p1, const TLine3D &r2) |
| Computes the angle between a plane and a 3D line or segment (implicit constructor will be used if passing a segment instead of a line). | |
| double | getAngle (const TLine3D &r1, const TPlane &p2) |
| Computes the angle between a 3D line or segment and a plane (implicit constructor will be used if passing a segment instead of a line). | |
| double MRPTDLLIMPEXP | getAngle (const TLine3D &r1, const TLine3D &r2) |
| Computes the angle between two 3D lines or segments (implicit constructor will be used if passing a segment instead of a line). | |
| double MRPTDLLIMPEXP | getAngle (const TLine2D &r1, const TLine2D &r2) |
| Computes the angle between two 2D lines or segments (implicit constructor will be used if passing a segment instead of a line). | |
Creation of lines from poses. | |
| void MRPTDLLIMPEXP | createFromPoseX (const CPose3D &p, TLine3D &r) |
| Gets a 3D line corresponding to the X axis in a given pose. | |
| void MRPTDLLIMPEXP | createFromPoseY (const CPose3D &p, TLine3D &r) |
| Gets a 3D line corresponding to the Y axis in a given pose. | |
| void MRPTDLLIMPEXP | createFromPoseZ (const CPose3D &p, TLine3D &r) |
| Gets a 3D line corresponding to the Z axis in a given pose. | |
| void MRPTDLLIMPEXP | createFromPoseAndVector (const CPose3D &p, const double(&vector)[3], TLine3D &r) |
| Gets a 3D line corresponding to any arbitrary vector, in the base given by the pose. | |
| void MRPTDLLIMPEXP | createFromPoseX (const TPose2D &p, TLine2D &r) |
| Gets a 2D line corresponding to the X axis in a given pose. | |
| void MRPTDLLIMPEXP | createFromPoseY (const TPose2D &p, TLine2D &r) |
| Gets a 2D line corresponding to the Y axis in a given pose. | |
| void MRPTDLLIMPEXP | createFromPoseAndVector (const TPose2D &p, const double(&vector)[2], TLine2D &r) |
| Gets a 2D line corresponding to any arbitrary vector, in the base given the given pose. | |
Other line or plane related methods. | |
| bool MRPTDLLIMPEXP | conformAPlane (const std::vector< TPoint3D > &points) |
| Checks whether this polygon or set of points acceptably fits a plane. | |
| bool MRPTDLLIMPEXP | conformAPlane (const std::vector< TPoint3D > &points, TPlane &p) |
| Checks whether this polygon or set of points acceptably fits a plane, and if it's the case returns it in the second argument. | |
| bool MRPTDLLIMPEXP | areAligned (const std::vector< TPoint2D > &points) |
| Checks whether this set of points acceptably fits a 2D line. | |
| bool MRPTDLLIMPEXP | areAligned (const std::vector< TPoint2D > &points, TLine2D &r) |
| Checks whether this set of points acceptably fits a 2D line, and if it's the case returns it in the second argument. | |
| bool MRPTDLLIMPEXP | areAligned (const std::vector< TPoint3D > &points) |
| Checks whether this set of points acceptably fits a 3D line. | |
| bool MRPTDLLIMPEXP | areAligned (const std::vector< TPoint3D > &points, TLine3D &r) |
| Checks whether this set of points acceptably fits a 3D line, and if it's the case returns it in the second argument. | |
Projections | |
| void | project3D (const TPoint3D &point, const CPose3D &newXYpose, TPoint3D &newPoint) |
| Uses the given pose 3D to project a point into a new base. | |
| void | project3D (const TSegment3D &segment, const CPose3D &newXYpose, TSegment3D &newSegment) |
| Uses the given pose 3D to project a segment into a new base. | |
| void MRPTDLLIMPEXP | project3D (const TLine3D &line, const CPose3D &newXYpose, TLine3D &newLine) |
| Uses the given pose 3D to project a line into a new base. | |
| void MRPTDLLIMPEXP | project3D (const TPlane &plane, const CPose3D &newXYpose, TPlane &newPlane) |
| Uses the given pose 3D to project a plane into a new base. | |
| void MRPTDLLIMPEXP | project3D (const TPolygon3D &polygon, const CPose3D &newXYpose, TPolygon3D &newPolygon) |
| Uses the given pose 3D to project a polygon into a new base. | |
| void MRPTDLLIMPEXP | project3D (const TObject3D &object, const CPose3D &newXYPose, TObject3D &newObject) |
| Uses the given pose 3D to project any 3D object into a new base. | |
| template<class T > | |
| void | project3D (const T &obj, const TPlane &newXYPlane, T &newObj) |
| Projects any 3D object into the plane's base, using its inverse pose. | |
| template<class T > | |
| void | project3D (const T &obj, const TPlane &newXYPlane, const TPoint3D &newOrigin, T &newObj) |
| Projects any 3D object into the plane's base, using its inverse pose and forcing the position of the new coordinates origin. | |
| template<class T > | |
| void | project3D (const std::vector< T > &objs, const CPose3D &newXYpose, std::vector< T > &newObjs) |
| Projects a set of 3D objects into the plane's base. | |
| void | project2D (const TPoint2D &point, const CPose2D &newXpose, TPoint2D &newPoint) |
| Uses the given pose 2D to project a point into a new base. | |
| void | project2D (const TSegment2D &segment, const CPose2D &newXpose, TSegment2D &newSegment) |
| Uses the given pose 2D to project a segment into a new base. | |
| void MRPTDLLIMPEXP | project2D (const TLine2D &line, const CPose2D &newXpose, TLine2D &newLine) |
| Uses the given pose 2D to project a line into a new base. | |
| void MRPTDLLIMPEXP | project2D (const TPolygon2D &polygon, const CPose2D &newXpose, TPolygon2D &newPolygon) |
| Uses the given pose 2D to project a polygon into a new base. | |
| void MRPTDLLIMPEXP | project2D (const TObject2D &object, const CPose2D &newXpose, TObject2D &newObject) |
| Uses the given pose 2D to project any 2D object into a new base. | |
| template<class T > | |
| void | project2D (const T &obj, const TLine2D &newXLine, T &newObj) |
| Projects any 2D object into the line's base, using its inverse pose. | |
| template<class T > | |
| void | project2D (const T &obj, const TLine2D &newXLine, const TPoint2D &newOrigin, T &newObj) |
| Projects any 2D object into the line's base, using its inverse pose and forcing the position of the new coordinate origin. | |
| template<class T > | |
| void | project2D (const std::vector< T > &objs, const CPose2D &newXpose, std::vector< T > &newObjs) |
| Projects a set of 2D objects into the line's base. | |
Polygon intersections. These operations rely more on spatial reasoning than in raw numerical operations. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon2D &p1, const TSegment2D &s2, TObject2D &obj) |
| Gets the intersection between a 2D polygon and a 2D segment. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon2D &p1, const TLine2D &r2, TObject2D &obj) |
| Gets the intersection between a 2D polygon and a 2D line. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon2D &p1, const TPolygon2D &p2, TObject2D &obj) |
| Gets the intersection between two 2D polygons. | |
| bool | intersect (const TSegment2D &s1, const TPolygon2D &p2, TObject2D &obj) |
| Gets the intersection between a 2D segment and a 2D polygon. | |
| bool | intersect (const TLine2D &r1, const TPolygon2D &p2, TObject2D &obj) |
| Gets the intersection between a 2D line and a 2D polygon. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon3D &p1, const TSegment3D &s2, TObject3D &obj) |
| Gets the intersection between a 3D polygon and a 3D segment. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon3D &p1, const TLine3D &r2, TObject3D &obj) |
| Gets the intersection between a 3D polygon and a 3D line. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon3D &p1, const TPlane &p2, TObject3D &obj) |
| Gets the intersection between a 3D polygon and a plane. | |
| bool MRPTDLLIMPEXP | intersect (const TPolygon3D &p1, const TPolygon3D &p2, TObject3D &obj) |
| Gets the intersection between two 3D polygons. | |
| bool | intersect (const TSegment3D &s1, const TPolygon3D &p2, TObject3D &obj) |
| Gets the intersection between a 3D segment and a 3D polygon. | |
| bool | intersect (const TLine3D &r1, const TPolygon3D &p2, TObject3D &obj) |
| Gets the intersection between a 3D line and a 3D polygon. | |
| bool | intersect (const TPlane &p1, const TPolygon3D &p2, TObject3D &obj) |
| Gets the intersection between a plane and a 3D polygon. | |
| size_t MRPTDLLIMPEXP | intersect (const std::vector< TPolygon3D > &v1, const std::vector< TPolygon3D > &v2, CSparseMatrixTemplate< TObject3D > &objs) |
| Gets the intersection between two sets of 3D polygons. | |
| size_t MRPTDLLIMPEXP | intersect (const std::vector< TPolygon3D > &v1, const std::vector< TPolygon3D > &v2, std::vector< TObject3D > &objs) |
| Gets the intersection between two sets of 3D polygons. | |
Other intersections | |
| template<class T , class U , class O > | |
| size_t | intersect (const std::vector< T > &v1, const std::vector< U > &v2, CSparseMatrixTemplate< O > &objs) |
| Gets the intersection between vectors of geometric objects and returns it in a sparse matrix of either TObject2D or TObject3D. | |
| template<class T , class U , class O > | |
| size_t | intersect (const std::vector< T > &v1, const std::vector< U > &v2, std::vector< O > objs) |
| Gets the intersection between vectors of geometric objects and returns it in a vector of either TObject2D or TObject3D. | |
| bool MRPTDLLIMPEXP | intersect (const TObject2D &o1, const TObject2D &o2, TObject2D &obj) |
| Gets the intersection between any pair of 2D objects. | |
| bool MRPTDLLIMPEXP | intersect (const TObject3D &o1, const TObject3D &o2, TObject3D &obj) |
| Gets the intersection between any pair of 3D objects. | |
Distances | |
| double MRPTDLLIMPEXP | distance (const TPoint2D &p1, const TPoint2D &p2) |
| Gets the distance between two points in a 2D space. | |
| double MRPTDLLIMPEXP | distance (const TPoint3D &p1, const TPoint3D &p2) |
| Gets the distance between two points in a 3D space. | |
| double MRPTDLLIMPEXP | distance (const TLine2D &r1, const TLine2D &r2) |
| Gets the distance between two lines in a 2D space. | |
| double MRPTDLLIMPEXP | distance (const TLine3D &r1, const TLine3D &r2) |
| Gets the distance between two lines in a 3D space. | |
| double MRPTDLLIMPEXP | distance (const TPlane &p1, const TPlane &p2) |
| Gets the distance between two planes. | |
| double MRPTDLLIMPEXP | distance (const TPolygon2D &p1, const TPolygon2D &p2) |
| Gets the distance between two polygons in a 2D space. | |
| double MRPTDLLIMPEXP | distance (const TPolygon2D &p1, const TSegment2D &s2) |
| Gets the distance between a polygon and a segment in a 2D space. | |
| double | distance (const TSegment2D &s1, const TPolygon2D &p2) |
| Gets the distance between a segment and a polygon in a 2D space. | |
| double MRPTDLLIMPEXP | distance (const TPolygon2D &p1, const TLine2D &l2) |
| Gets the distance between a polygon and a line in a 2D space. | |
| double | distance (const TLine2D &l1, const TPolygon2D &p2) |
| double MRPTDLLIMPEXP | distance (const TPolygon3D &p1, const TPolygon3D &p2) |
| Gets the distance between two polygons in a 3D space. | |
| double MRPTDLLIMPEXP | distance (const TPolygon3D &p1, const TSegment3D &s2) |
| Gets the distance between a polygon and a segment in a 3D space. | |
| double | distance (const TSegment3D &s1, const TPolygon3D &p2) |
| Gets the distance between a segment and a polygon in a 3D space. | |
| double MRPTDLLIMPEXP | distance (const TPolygon3D &p1, const TLine3D &l2) |
| Gets the distance between a polygon and a line in a 3D space. | |
| double | distance (const TLine3D &l1, const TPolygon3D &p2) |
| Gets the distance between a line and a polygon in a 3D space. | |
| double MRPTDLLIMPEXP | distance (const TPolygon3D &po, const TPlane &pl) |
| Gets the distance between a polygon and a plane. | |
| double | distance (const TPlane &pl, const TPolygon3D &po) |
| Gets the distance between a plane and a polygon. | |
Bound checkers | |
| void MRPTDLLIMPEXP | getRectangleBounds (const std::vector< TPoint2D > &poly, TPoint2D &pMin, TPoint2D &pMax) |
| Gets the rectangular bounds of a 2D polygon or set of 2D points. | |
| void MRPTDLLIMPEXP | getPrismBounds (const std::vector< TPoint3D > &poly, TPoint3D &pMin, TPoint3D &pMax) |
| Gets the prism bounds of a 3D polygon or set of 3D points. | |
Creation of planes from poses | |
| void MRPTDLLIMPEXP | createPlaneFromPoseXY (const CPose3D &pose, TPlane &plane) |
| Given a pose, creates a plane orthogonal to its Z vector. | |
| void MRPTDLLIMPEXP | createPlaneFromPoseXZ (const CPose3D &pose, TPlane &plane) |
| Given a pose, creates a plane orthogonal to its Y vector. | |
| void MRPTDLLIMPEXP | createPlaneFromPoseYZ (const CPose3D &pose, TPlane &plane) |
| Given a pose, creates a plane orthogonal to its X vector. | |
| void MRPTDLLIMPEXP | createPlaneFromPoseAndNormal (const CPose3D &pose, const double(&normal)[3], TPlane &plane) |
| Given a pose and any vector, creates a plane orthogonal to that vector in the pose's coordinates. | |
| void MRPTDLLIMPEXP | generateAxisBaseFromDirectionAndAxis (const double(&vec)[3], char coord, CMatrixDouble &matrix) |
| Creates a rotation matrix so that the coordinate given (0 for x, 1 for y, 2 for z) corresponds to the vector. | |
Linear regression methods | |
| double MRPTDLLIMPEXP | getRegressionLine (const std::vector< TPoint2D > &points, TLine2D &line) |
| Using eigenvalues, gets the best fitting line for a set of 2D points. | |
| double MRPTDLLIMPEXP | getRegressionLine (const std::vector< TPoint3D > &points, TLine3D &line) |
| Using eigenvalues, gets the best fitting line for a set of 3D points. | |
| double MRPTDLLIMPEXP | getRegressionPlane (const std::vector< TPoint3D > &points, TPlane &plane) |
| Using eigenvalues, gets the best fitting plane for a set of 3D points. | |
Miscellaneous methods | |
| void MRPTDLLIMPEXP | assemblePolygons (const std::vector< TSegment3D > &segms, std::vector< TPolygon3D > &polys) |
| Tries to assemble a set of segments into a set of closed polygons. | |
| void MRPTDLLIMPEXP | assemblePolygons (const std::vector< TSegment3D > &segms, std::vector< TPolygon3D > &polys, std::vector< TSegment3D > &remainder) |
| Tries to assemble a set of segments into a set of closed polygons, returning the unused segments as another out parameter. | |
| void MRPTDLLIMPEXP | assemblePolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys) |
| Extracts all the polygons, including those formed from segments, from the set of objects. | |
| void MRPTDLLIMPEXP | assemblePolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys, std::vector< TObject3D > &remainder) |
| Extracts all the polygons, including those formed from segments, from the set of objects. | |
| void MRPTDLLIMPEXP | assemblePolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys, std::vector< TSegment3D > &remainder1, std::vector< TObject3D > &remainder2) |
| Extracts all the polygons, including those formed from segments, from the set of objects. | |
| void | setEpsilon (double nE) |
| Changes the value of the geometric epsilon. | |
| double | getEpsilon () |
| Gets the value of the geometric epsilon. | |
| bool MRPTDLLIMPEXP | splitInConvexComponents (const TPolygon2D &poly, vector< TPolygon2D > &components) |
| Splits a 2D polygon into convex components. | |
| bool MRPTDLLIMPEXP | splitInConvexComponents (const TPolygon3D &poly, vector< TPolygon3D > &components) |
| Splits a 3D polygon into convex components. | |
| void MRPTDLLIMPEXP | getSegmentBisector (const TSegment2D &sgm, TLine2D &bis) |
| Gets the bisector of a 2D segment. | |
| void MRPTDLLIMPEXP | getSegmentBisector (const TSegment3D &sgm, TPlane &bis) |
| Gets the bisector of a 3D segment. | |
| void MRPTDLLIMPEXP | getAngleBisector (const TLine2D &l1, const TLine2D &l2, TLine2D &bis) |
| Gets the bisector of two lines or segments (implicit constructor will be used if necessary). | |
| void MRPTDLLIMPEXP | getAngleBisector (const TLine3D &l1, const TLine3D &l2, TLine3D &bis) |
| Gets the bisector of two lines or segments (implicit constructor will be used if necessary). | |
RANSAC detectors | |
| template<typename NUMTYPE > | |
| void MRPTDLLIMPEXP | ransac_detect_3D_planes (const std::vector< NUMTYPE > &x, const std::vector< NUMTYPE > &y, const std::vector< NUMTYPE > &z, std::vector< std::pair< size_t, TPlane > > &out_detected_planes, const double threshold, const size_t min_inliers_for_valid_plane=10) |
| Fit a number of 3-D planes to a given point cloud, automatically determining the number of existing planes by means of the provided threshold and minimum number of supporting inliers. | |
| void MRPTDLLIMPEXP | ransac_detect_3D_planes (const mrpt::slam::CPointsMap *points_map, std::vector< std::pair< size_t, TPlane > > &out_detected_planes, const double threshold, const size_t min_inliers_for_valid_plane=10) |
| Fit a number of 3-D planes to a given point cloud, automatically determining the number of existing planes by means of the provided threshold and minimum number of supporting inliers. | |
| template<typename NUMTYPE > | |
| void MRPTDLLIMPEXP | ransac_detect_2D_lines (const std::vector< NUMTYPE > &x, const std::vector< NUMTYPE > &y, std::vector< std::pair< size_t, TLine2D > > &out_detected_lines, const double threshold, const size_t min_inliers_for_valid_line=5) |
| Fit a number of 2-D lines to a given point cloud, automatically determining the number of existing lines by means of the provided threshold and minimum number of supporting inliers. | |
Interpolation functions | |
| template<class T > | |
| T | interpolate (const T &x, const std::vector< T > &ys, const T &x0, const T &x1) |
| Interpolate a data sequence "ys" ranging from "x0" to "x1" (equally spaced), to obtain the approximation of the sequence at the point "x". | |
| double MRPTDLLIMPEXP | interpolate2points (const double x, const double x0, const double y0, const double x1, const double y1, bool wrap2pi=false) |
| Linear interpolation/extrapolation: evaluates at "x" the line (x0,y0)-(x1,y1). | |
| double MRPTDLLIMPEXP | spline (const double t, const std::vector< double > &x, const std::vector< double > &y, bool wrap2pi=false) |
| Interpolates the value of a function in a point "t" given 4 SORTED points where "t" is between the two middle points If wrap2pi is true, output "y" values are wrapped to ]-pi,pi] (It is assumed that input "y" values already are in the correct range). | |
| template<typename NUMTYPE , class VECTORLIKE > | |
| NUMTYPE | leastSquareLinearFit (const NUMTYPE t, const VECTORLIKE &x, const VECTORLIKE &y, bool wrap2pi=false) |
| Interpolates or extrapolates using a least-square linear fit of the set of values "x" and "y", evaluated at a single point "t". | |
| template<class VECTORLIKE1 , class VECTORLIKE2 , class VECTORLIKE3 > | |
| void | leastSquareLinearFit (const VECTORLIKE1 &ts, VECTORLIKE2 &outs, const VECTORLIKE3 &x, const VECTORLIKE3 &y, bool wrap2pi=false) |
| Interpolates or extrapolates using a least-square linear fit of the set of values "x" and "y", evaluated at a sequence of points "ts" and returned at "outs". | |
Probability density distributions (pdf) distance metrics | |
| template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT > | |
| VECTORLIKE1::value_type | mahalanobisDistance2 (const VECTORLIKE1 &X, const VECTORLIKE2 &MU, const MAT &COV) |
| Computes the squared mahalanobis distance of a vector X given the mean MU and the covariance *inverse* COV_inv
| |
| template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT > | |
| VECTORLIKE1::value_type | mahalanobisDistance (const VECTORLIKE1 &X, const VECTORLIKE2 &MU, const MAT &COV) |
| Computes the mahalanobis distance of a vector X given the mean MU and the covariance *inverse* COV_inv
| |
| template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 > | |
| VECTORLIKE::value_type | mahalanobisDistance2 (const VECTORLIKE &mean_diffs, const MAT1 &COV1, const MAT2 &COV2, const MAT3 &CROSS_COV12) |
| Computes the squared mahalanobis distance between two *non-independent* Gaussians, given the two covariance matrices and the vector with the difference of their means. | |
| template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 > | |
| VECTORLIKE::value_type | mahalanobisDistance (const VECTORLIKE &mean_diffs, const MAT1 &COV1, const MAT2 &COV2, const MAT3 &CROSS_COV12) |
| Computes the mahalanobis distance between two *non-independent* Gaussians (or independent if CROSS_COV12=NULL), given the two covariance matrices and the vector with the difference of their means. | |
| template<class VECTORLIKE , class MATRIXLIKE > | |
| MATRIXLIKE::value_type | mahalanobisDistance2 (const VECTORLIKE &delta_mu, const MATRIXLIKE &cov) |
| Computes the squared mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point. | |
| template<class VECTORLIKE , class MATRIXLIKE > | |
| MATRIXLIKE::value_type | mahalanobisDistance (const VECTORLIKE &delta_mu, const MATRIXLIKE &cov) |
| Computes the mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point. | |
| template<typename T > | |
| T | productIntegralTwoGaussians (const std::vector< T > &mean_diffs, const CMatrixTemplateNumeric< T > &COV1, const CMatrixTemplateNumeric< T > &COV2) |
| Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2". | |
| template<typename T , size_t DIM> | |
| T | productIntegralTwoGaussians (const std::vector< T > &mean_diffs, const CMatrixFixedNumeric< T, DIM, DIM > &COV1, const CMatrixFixedNumeric< T, DIM, DIM > &COV2) |
| Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2". | |
| template<typename T , class VECLIKE , class MATLIKE1 , class MATLIKE2 > | |
| void | productIntegralAndMahalanobisTwoGaussians (const VECLIKE &mean_diffs, const MATLIKE1 &COV1, const MATLIKE2 &COV2, T &maha2_out, T &intprod_out, const MATLIKE1 *CROSS_COV12=NULL) |
| Computes both, the integral of the product of two Gaussians and their square Mahalanobis distance. | |
| template<typename T , class VECLIKE , class MATRIXLIKE > | |
| void | mahalanobisDistance2AndLogPDF (const VECLIKE &diff_mean, const MATRIXLIKE &cov, T &maha2_out, T &log_pdf_out) |
| Computes both, the logarithm of the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian. | |
| template<typename T , class VECLIKE , class MATRIXLIKE > | |
| void | mahalanobisDistance2AndPDF (const VECLIKE &diff_mean, const MATRIXLIKE &cov, T &maha2_out, T &pdf_out) |
| Computes both, the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian. | |
Variables | |
| double | geometryEpsilon |
| Global epsilon to overcome small precision errors. | |
| struct MRPTDLLIMPEXP | TSegment3D |
| struct MRPTDLLIMPEXP | TLine3D |
| class MRPTDLLIMPEXP | TPolygon3D |
| struct MRPTDLLIMPEXP | TObject3D |
| const unsigned char | GEOMETRIC_TYPE_POINT = 0 |
| Object type identifier for TPoint2D or TPoint3D. | |
| const unsigned char | GEOMETRIC_TYPE_SEGMENT = 1 |
| Object type identifier for TSegment2D or TSegment3D. | |
| const unsigned char | GEOMETRIC_TYPE_LINE = 2 |
| Object type identifier for TLine2D or TLine3D. | |
| const unsigned char | GEOMETRIC_TYPE_POLYGON = 3 |
| Object type identifier for TPolygon2D or TPolygon3D. | |
| const unsigned char | GEOMETRIC_TYPE_PLANE = 4 |
| Object type identifier for TPlane. | |
| const unsigned char | GEOMETRIC_TYPE_UNDEFINED = 255 |
| Object type identifier for empty TObject2D or TObject3D. | |
| class MRPTDLLIMPEXP | CMatrixTemplateNumeric |
| class MRPTDLLIMPEXP | CMatrix |
| class MRPTDLLIMPEXP | CMatrixD |
This base provides a set of functions for maths stuff.
The default name for the LM class is an instantiation for "double".
Definition at line 234 of file CLevenbergMarquardt.h.
| typedef CMatrixTemplate<bool> mrpt::math::CMatrixBool |
Declares a matrix of booleans (non serializable).
Definition at line 475 of file CMatrixTemplateNumeric.h.
| typedef CMatrixTemplateNumeric<double> mrpt::math::CMatrixDouble |
Declares a matrix of double numbers (non serializable).
For a serializable version, use math::CMatrixD
Definition at line 465 of file CMatrixTemplateNumeric.h.
| typedef CMatrixFixedNumeric<double,1,2> mrpt::math::CMatrixDouble12 |
Definition at line 502 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,1,3> mrpt::math::CMatrixDouble13 |
Definition at line 500 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,1,6> mrpt::math::CMatrixDouble16 |
Definition at line 505 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,2,1> mrpt::math::CMatrixDouble21 |
Definition at line 503 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,2,2> mrpt::math::CMatrixDouble22 |
Definition at line 496 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,3,1> mrpt::math::CMatrixDouble31 |
Definition at line 501 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,3,3> mrpt::math::CMatrixDouble33 |
Definition at line 497 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,4,4> mrpt::math::CMatrixDouble44 |
Definition at line 498 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,6,1> mrpt::math::CMatrixDouble61 |
Definition at line 504 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<double,6,6> mrpt::math::CMatrixDouble66 |
Definition at line 499 of file CMatrixFixedNumeric.h.
| typedef CMatrixTemplateNumeric<float> mrpt::math::CMatrixFloat |
Declares a matrix of float numbers (non serializable).
For a serializable version, use math::CMatrix
Definition at line 459 of file CMatrixTemplateNumeric.h.
| typedef CMatrixFixedNumeric<float,1,2> mrpt::math::CMatrixFloat12 |
Definition at line 513 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,1,3> mrpt::math::CMatrixFloat13 |
Definition at line 511 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,1,6> mrpt::math::CMatrixFloat16 |
Definition at line 516 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,2,1> mrpt::math::CMatrixFloat21 |
Definition at line 514 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,2,2> mrpt::math::CMatrixFloat22 |
Definition at line 507 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,3,1> mrpt::math::CMatrixFloat31 |
Definition at line 512 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,3,3> mrpt::math::CMatrixFloat33 |
Definition at line 508 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,4,4> mrpt::math::CMatrixFloat44 |
Definition at line 509 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,6,1> mrpt::math::CMatrixFloat61 |
Definition at line 515 of file CMatrixFixedNumeric.h.
| typedef CMatrixFixedNumeric<float,6,6> mrpt::math::CMatrixFloat66 |
Definition at line 510 of file CMatrixFixedNumeric.h.
| typedef CMatrixTemplateNumeric<double> mrpt::math::CMatrixLongDouble |
Declares a matrix of "long doubles" (non serializable), or of "doubles" if the compiler does not support "long double".
Definition at line 486 of file CMatrixTemplateNumeric.h.
| typedef CMatrixTemplateNumeric<unsigned int> mrpt::math::CMatrixUInt |
Declares a matrix of unsigned ints (non serializable).
Definition at line 470 of file CMatrixTemplateNumeric.h.
| typedef CQuaternion<double> mrpt::math::CQuaternionDouble |
A quaternion of data type "double".
Definition at line 227 of file CQuaternion.h.
| typedef CQuaternion<float> mrpt::math::CQuaternionFloat |
A quaternion of data type "float".
Definition at line 228 of file CQuaternion.h.
| typedef CVectorTemplate<double> mrpt::math::CVectorDouble |
Declares a vector of double elements.
Definition at line 473 of file CVectorTemplate.h.
| typedef CVectorTemplate<float> mrpt::math::CVectorFloat |
Declares a vector of float elements.
Definition at line 468 of file CVectorTemplate.h.
| typedef RANSAC_Template<double> mrpt::math::RANSAC |
| typedef TPlane mrpt::math::TPlane3D |
Definition at line 936 of file lightweight_geom_data.h.
Selection of the number format in CMatrixTemplate::saveToTextFile
| MATRIX_FORMAT_ENG |
engineering format 'e' |
| MATRIX_FORMAT_FIXED |
fixed floating point 'f' |
| MATRIX_FORMAT_INT |
intergers 'i' |
Definition at line 61 of file math_frwds.h.
| void mrpt::math::adjustRange | ( | CONTAINER & | m, | |
| const typename CONTAINER::value_type | minVal, | |||
| const typename CONTAINER::value_type | maxVal | |||
| ) |
| bool MRPTDLLIMPEXP mrpt::math::areAligned | ( | const std::vector< TPoint2D > & | points, | |
| TLine2D & | r | |||
| ) |
Checks whether this set of points acceptably fits a 2D line, and if it's the case returns it in the second argument.
| bool MRPTDLLIMPEXP mrpt::math::areAligned | ( | const std::vector< TPoint3D > & | points | ) |
Checks whether this set of points acceptably fits a 3D line.
| bool MRPTDLLIMPEXP mrpt::math::areAligned | ( | const std::vector< TPoint3D > & | points, | |
| TLine3D & | r | |||
| ) |
Checks whether this set of points acceptably fits a 3D line, and if it's the case returns it in the second argument.
| bool MRPTDLLIMPEXP mrpt::math::areAligned | ( | const std::vector< TPoint2D > & | points | ) |
Checks whether this set of points acceptably fits a 2D line.
| void MRPTDLLIMPEXP mrpt::math::assemblePolygons | ( | const std::vector< TSegment3D > & | segms, | |
| std::vector< TPolygon3D > & | polys | |||
| ) |
Tries to assemble a set of segments into a set of closed polygons.
| void MRPTDLLIMPEXP mrpt::math::assemblePolygons | ( | const std::vector< TSegment3D > & | segms, | |
| std::vector< TPolygon3D > & | polys, | |||
| std::vector< TSegment3D > & | remainder | |||
| ) |
Tries to assemble a set of segments into a set of closed polygons, returning the unused segments as another out parameter.
| void MRPTDLLIMPEXP mrpt::math::assemblePolygons | ( | const std::vector< TObject3D > & | objs, | |
| std::vector< TPolygon3D > & | polys | |||
| ) |
Extracts all the polygons, including those formed from segments, from the set of objects.
| void MRPTDLLIMPEXP mrpt::math::assemblePolygons | ( | const std::vector< TObject3D > & | objs, | |
| std::vector< TPolygon3D > & | polys, | |||
| std::vector< TObject3D > & | remainder | |||
| ) |
Extracts all the polygons, including those formed from segments, from the set of objects.
| void MRPTDLLIMPEXP mrpt::math::assemblePolygons | ( | const std::vector< TObject3D > & | objs, | |
| std::vector< TPolygon3D > & | polys, | |||
| std::vector< TSegment3D > & | remainder1, | |||
| std::vector< TObject3D > & | remainder2 | |||
| ) |
Extracts all the polygons, including those formed from segments, from the set of objects.
| double MRPTDLLIMPEXP mrpt::math::averageLogLikelihood | ( | const vector_double & | logLikelihoods | ) |
A numerically-stable method to compute average likelihood values with strongly different ranges (unweighted likelihoods: compute the arithmetic mean).
This method implements this equation:
See also the tutorial page.
Referenced by mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_particlesEvaluator_AuxPFOptimal(), and mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_particlesEvaluator_AuxPFStandard().
| double MRPTDLLIMPEXP mrpt::math::averageLogLikelihood | ( | const vector_double & | logWeights, | |
| const vector_double & | logLikelihoods | |||
| ) |
A numerically-stable method to average likelihood values with strongly different ranges (weighted likelihoods).
This method implements this equation:
See also the tutorial page.
| double MRPTDLLIMPEXP mrpt::math::averageWrap2Pi | ( | const vector_double & | angles | ) |
Computes the average of a sequence of angles in radians taking into account the correct wrapping in the range
, for example, the mean of (2,-2) is
, not 0.
| double mrpt::math::chi2CDF | ( | unsigned int | degreesOfFreedom, | |
| double | arg | |||
| ) | [inline] |
Cumulative chi square distribution.
Computes the cumulative density of a chi square distribution with degreesOfFreedom and tolerance accuracy at the given argument arg, i.e. the probability that a random number drawn from the distribution is below arg by calling noncentralChi2CDF(degreesOfFreedom, 0.0, arg, accuracy).
Definition at line 205 of file distributions.h.
References noncentralChi2CDF().
| double MRPTDLLIMPEXP mrpt::math::chi2inv | ( | double | P, | |
| unsigned int | dim = 1 | |||
| ) |
The "quantile" of the Chi-Square distribution, for dimension "dim" and probability 0<P<1 (the inverse of chi2CDF) An aproximation from the Wilson-Hilferty transformation is used.
Referenced by mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), and mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_implementation_pfStandardProposal().
| double mrpt::math::chi2PDF | ( | unsigned int | degreesOfFreedom, | |
| double | arg, | |||
| double | accuracy = 1e-7 | |||
| ) | [inline] |
Chi square distribution.
Computes the density of a chi square distribution with degreesOfFreedom and tolerance accuracy at the given argument arg by calling noncentralChi2(degreesOfFreedom, 0.0, arg, accuracy).
Definition at line 307 of file distributions.h.
References mrpt::math::detail::noncentralChi2CDF_exact().
| void MRPTDLLIMPEXP mrpt::math::closestFromPointToLine | ( | const double & | Px, | |
| const double & | Py, | |||
| const double & | x1, | |||
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| double & | out_x, | |||
| double & | out_y | |||
| ) |
Computes the closest point from a given point to a (infinite) line.
| void MRPTDLLIMPEXP mrpt::math::closestFromPointToSegment | ( | const double & | Px, | |
| const double & | Py, | |||
| const double & | x1, | |||
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| double & | out_x, | |||
| double & | out_y | |||
| ) |
Computes the closest point from a given point to a segment.
| double MRPTDLLIMPEXP mrpt::math::closestSquareDistanceFromPointToLine | ( | const double & | Px, | |
| const double & | Py, | |||
| const double & | x1, | |||
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2 | |||
| ) |
Returns the square distance from a point to a line.
| void MRPTDLLIMPEXP mrpt::math::computeEigenValues2x2 | ( | const CMatrixFloat & | in_matrix, | |
| float & | min_eigenvalue, | |||
| float & | max_eigenvalue | |||
| ) |
Compute the two eigenvalues of a 2x2 matrix.
| in_matrx | The 2x2 input matrix. | |
| min_eigenvalue | (out) The minimum eigenvalue of the matrix. | |
| max_eigenvalue | (out) The maximum eigenvalue of the matrix. by FAMD, MAR-2007 |
| void mrpt::math::condidenceIntervals | ( | const CONTAINER & | data, | |
| typename CONTAINER::value_type & | out_mean, | |||
| typename CONTAINER::value_type & | out_lower_conf_interval, | |||
| typename CONTAINER::value_type & | out_upper_conf_interval, | |||
| const double | confidenceInterval = 0.1, |
|||
| const size_t | histogramNumBins = 1000 | |||
| ) |
Return the mean and the 10-90% confidence points (or with any other confidence value) of a set of samples by building the cummulative CDF of all the elements of the container.
The container can be any MRPT container (CArray, matrices, vectors).
| confidenceInterval | A number in the range (0,1) such as the confidence interval will be [100*confidenceInterval, 100*(1-confidenceInterval)]. |
Definition at line 317 of file distributions.h.
References ASSERT_, cumsum(), distance(), histogram(), maximum(), mean(), minimum_maximum(), MRPT_END, and MRPT_START.
| bool MRPTDLLIMPEXP mrpt::math::conformAPlane | ( | const std::vector< TPoint3D > & | points | ) |
Checks whether this polygon or set of points acceptably fits a plane.
| bool MRPTDLLIMPEXP mrpt::math::conformAPlane | ( | const std::vector< TPoint3D > & | points, | |
| TPlane & | p | |||
| ) |
Checks whether this polygon or set of points acceptably fits a plane, and if it's the case returns it in the second argument.
| double mrpt::math::correlate_matrix | ( | const CMatrixTemplateNumeric< T > & | a1, | |
| const CMatrixTemplateNumeric< T > & | a2 | |||
| ) |
Calculate the correlation between two matrices (by AJOGD @ JAN-2007).
Definition at line 482 of file math/utils.h.
References mrpt::math::CMatrixTemplate< T >::getColCount(), mrpt::math::CMatrixTemplate< T >::getRowCount(), and THROW_EXCEPTION.
| size_t mrpt::math::countCommonElements | ( | const CONTAINER1 & | a, | |
| const CONTAINER2 & | b | |||
| ) |
| size_t mrpt::math::countNonZero | ( | const CONTAINER & | a | ) |
| void mrpt::math::covariancesAndMean | ( | const std::vector< T > & | elements, | |
| CMatrixFixedNumeric< U, N, N > & | covariances, | |||
| U(&) | means[N] | |||
| ) |
Computes covariances and mean of any vector of containers.
T is some container of U which allows operator[]. N is the size of the containers, and thus the size of the resulting matrix and array. This method may adopt additional interfaces in the future.
Definition at line 251 of file math/utils.h.
References mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::get_unsafe().
| void mrpt::math::covariancesAndMean | ( | const std::vector< T > & | elements, | |
| CMatrixFixedNumeric< U, N, N > & | covariances, | |||
| std::vector< U > & | means | |||
| ) |
Computes covariances and mean of any vector of containers.
T is some container of U which allows operator[]. N is the size of the containers, and thus the size of the resulting matrix and array. This method may adopt additional interfaces in the future.
Definition at line 272 of file math/utils.h.
References mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::get_unsafe().
| void mrpt::math::covariancesAndMean | ( | const std::vector< T > & | elements, | |
| CMatrixTemplateNumeric< U > & | covariances, | |||
| U(&) | means[N] | |||
| ) |
Computes covariances and mean of any vector of containers.
T is some container of U which allows operator[]. N is the size of the containers, and thus the size of the resulting matrix and array. This method may adopt additional interfaces in the future.
Definition at line 229 of file math/utils.h.
References mrpt::math::CMatrixTemplate< T >::get_unsafe(), and mrpt::math::CMatrixTemplateNumeric< T >::resize().
| CMatrixDouble mrpt::math::covVector | ( | const VECTOR_OF_VECTOR & | v | ) | [inline] |
Computes the covariance matrix from a list of values given as a vector of vectors, where each row is a sample.
| v | The set of data, as a vector of N vectors of M elements. | |
| out_cov | The output MxM matrix for the estimated covariance matrix. |
Definition at line 215 of file math/utils.h.
References meanAndCovVector().
| void MRPTDLLIMPEXP mrpt::math::createFromPoseAndVector | ( | const TPose2D & | p, | |
| const double(&) | vector[2], | |||
| TLine2D & | r | |||
| ) |
Gets a 2D line corresponding to any arbitrary vector, in the base given the given pose.
An implicit constructor is used if a CPose2D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseAndVector | ( | const CPose3D & | p, | |
| const double(&) | vector[3], | |||
| TLine3D & | r | |||
| ) |
Gets a 3D line corresponding to any arbitrary vector, in the base given by the pose.
An implicit constructor is used if a TPose3D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseX | ( | const CPose3D & | p, | |
| TLine3D & | r | |||
| ) |
Gets a 3D line corresponding to the X axis in a given pose.
An implicit constructor is used if a TPose3D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseX | ( | const TPose2D & | p, | |
| TLine2D & | r | |||
| ) |
Gets a 2D line corresponding to the X axis in a given pose.
An implicit constructor is used if a CPose2D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseY | ( | const CPose3D & | p, | |
| TLine3D & | r | |||
| ) |
Gets a 3D line corresponding to the Y axis in a given pose.
An implicit constructor is used if a TPose3D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseY | ( | const TPose2D & | p, | |
| TLine2D & | r | |||
| ) |
Gets a 2D line corresponding to the Y axis in a given pose.
An implicit constructor is used if a CPose2D is given.
| void MRPTDLLIMPEXP mrpt::math::createFromPoseZ | ( | const CPose3D & | p, | |
| TLine3D & | r | |||
| ) |
Gets a 3D line corresponding to the Z axis in a given pose.
An implicit constructor is used if a TPose3D is given.
| void MRPTDLLIMPEXP mrpt::math::createPlaneFromPoseAndNormal | ( | const CPose3D & | pose, | |
| const double(&) | normal[3], | |||
| TPlane & | plane | |||
| ) |
Given a pose and any vector, creates a plane orthogonal to that vector in the pose's coordinates.
| void MRPTDLLIMPEXP mrpt::math::createPlaneFromPoseXY | ( | const CPose3D & | pose, | |
| TPlane & | plane | |||
| ) |
Given a pose, creates a plane orthogonal to its Z vector.
| void MRPTDLLIMPEXP mrpt::math::createPlaneFromPoseXZ | ( | const CPose3D & | pose, | |
| TPlane & | plane | |||
| ) |
Given a pose, creates a plane orthogonal to its Y vector.
| void MRPTDLLIMPEXP mrpt::math::createPlaneFromPoseYZ | ( | const CPose3D & | pose, | |
| TPlane & | plane | |||
| ) |
Given a pose, creates a plane orthogonal to its X vector.
| void MRPTDLLIMPEXP mrpt::math::cross_correlation_FFT | ( | const CMatrixFloat & | A, | |
| const CMatrixFloat & | B, | |||
| CMatrixFloat & | out_corr | |||
| ) |
Correlation of two matrixes using 2D FFT.
| void mrpt::math::crossProduct3D | ( | const T & | v0, | |
| const U & | v1, | |||
| V & | vOut | |||
| ) | [inline] |
Computes the cross product of two 3D vectors, returning a vector normal to both.
It uses the simple implementation:
Definition at line 768 of file geometry.h.
Referenced by generateAxisBaseFromDirection().
| void mrpt::math::crossProduct3D | ( | const std::vector< T > & | v0, | |
| const std::vector< T > & | v1, | |||
| std::vector< T > & | v_out | |||
| ) | [inline] |
Computes the cross product of two 3D vectors, returning a vector normal to both.
It uses the simple implementation:
Definition at line 786 of file geometry.h.
References ASSERT_.
| void mrpt::math::cumsum | ( | const CONTAINER1 & | in_data, | |
| CONTAINER2 & | out_cumsum | |||
| ) |
Referenced by condidenceIntervals().
| void MRPTDLLIMPEXP mrpt::math::dft2_complex | ( | const CMatrixFloat & | in_real, | |
| const CMatrixFloat & | in_imag, | |||
| CMatrixFloat & | out_real, | |||
| CMatrixFloat & | out_imag | |||
| ) |
Compute the 2D Discrete Fourier Transform (DFT) of a complex matrix, returning the real and imaginary parts separately.
| in_real | The N_1xN_2 matrix with the real part. | |
| in_imag | The N_1xN_2 matrix with the imaginary part. | |
| out_real | The N_1xN_2 output matrix which will store the real values (user has not to initialize the size of this matrix). | |
| out_imag | The N_1xN_2 output matrix which will store the imaginary values (user has not to initialize the size of this matrix). If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm. |
| void MRPTDLLIMPEXP mrpt::math::dft2_real | ( | const CMatrixFloat & | in_data, | |
| CMatrixFloat & | out_real, | |||
| CMatrixFloat & | out_imag | |||
| ) |
Compute the 2D Discrete Fourier Transform (DFT) of a real matrix, returning the real and imaginary parts separately.
| in_data | The N_1xN_2 matrix. | |
| out_real | The N_1xN_2 output matrix which will store the real values (user has not to initialize the size of this matrix). | |
| out_imag | The N_1xN_2 output matrix which will store the imaginary values (user has not to initialize the size of this matrix). |
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon2D & | p1, | |
| const TPolygon2D & | p2 | |||
| ) |
Gets the distance between two polygons in a 2D space.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon2D & | p1, | |
| const TSegment2D & | s2 | |||
| ) |
Gets the distance between a polygon and a segment in a 2D space.
| double mrpt::math::distance | ( | const TSegment2D & | s1, | |
| const TPolygon2D & | p2 | |||
| ) | [inline] |
Gets the distance between a segment and a polygon in a 2D space.
Definition at line 560 of file geometry.h.
References distance().
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon2D & | p1, | |
| const TLine2D & | l2 | |||
| ) |
Gets the distance between a polygon and a line in a 2D space.
| double mrpt::math::distance | ( | const TLine2D & | l1, | |
| const TPolygon2D & | p2 | |||
| ) | [inline] |
Definition at line 567 of file geometry.h.
References distance().
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon3D & | p1, | |
| const TPolygon3D & | p2 | |||
| ) |
Gets the distance between two polygons in a 3D space.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon3D & | p1, | |
| const TSegment3D & | s2 | |||
| ) |
Gets the distance between a polygon and a segment in a 3D space.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPlane & | p1, | |
| const TPlane & | p2 | |||
| ) |
Gets the distance between two planes.
It will be zero if the planes are not parallel.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon3D & | p1, | |
| const TLine3D & | l2 | |||
| ) |
Gets the distance between a polygon and a line in a 3D space.
| double mrpt::math::distance | ( | const TLine3D & | l1, | |
| const TPolygon3D & | p2 | |||
| ) | [inline] |
Gets the distance between a line and a polygon in a 3D space.
Definition at line 591 of file geometry.h.
References distance().
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPolygon3D & | po, | |
| const TPlane & | pl | |||
| ) |
Gets the distance between a polygon and a plane.
| double mrpt::math::distance | ( | const TSegment3D & | s1, | |
| const TPolygon3D & | p2 | |||
| ) | [inline] |
Gets the distance between a segment and a polygon in a 3D space.
Definition at line 581 of file geometry.h.
References distance().
| double mrpt::math::distance | ( | const TPlane & | pl, | |
| const TPolygon3D & | po | |||
| ) | [inline] |
Gets the distance between a plane and a polygon.
Definition at line 601 of file geometry.h.
References distance().
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPoint2D & | p1, | |
| const TPoint2D & | p2 | |||
| ) |
Gets the distance between two points in a 2D space.
Referenced by mrpt::math::CArray< float, NROWS *NCOLS >::assign(), mrpt::slam::TDataAssociationResults::clear(), condidenceIntervals(), distance(), mrpt::utils::find_in_vector(), mrpt::math::CBinaryRelation< T, U, UIsObject >::getRelationFrom(), mrpt::math::CBinaryRelation< T, U, UIsObject >::getRelationTo(), mrpt::math::CBinaryRelation< T, U, UIsObject >::getRelationValue(), mrpt::math::CBinaryRelation< T, U, UIsObject >::insertElement(), mrpt::math::CBinaryRelation< T, U, UIsObject >::insertElements(), mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), mrpt::math::CBinaryRelation< T, U, UIsObject >::removeElement(), mrpt::math::CBinaryRelation< T, U, UIsObject >::removeElements(), mrpt::bayes::CKalmanFilterCapable< 6, 3, 3, 6 >::runOneKalmanIteration(), and mrpt::math::CBinaryRelation< T, U, UIsObject >::setRelationValue().
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TPoint3D & | p1, | |
| const TPoint3D & | p2 | |||
| ) |
Gets the distance between two points in a 3D space.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TLine2D & | r1, | |
| const TLine2D & | r2 | |||
| ) |
Gets the distance between two lines in a 2D space.
| double MRPTDLLIMPEXP mrpt::math::distance | ( | const TLine3D & | r1, | |
| const TLine3D & | r2 | |||
| ) |
Gets the distance between two lines in a 3D space.
| T mrpt::math::distanceBetweenPoints | ( | const T | x1, | |
| const T | y1, | |||
| const T | x2, | |||
| const T | y2 | |||
| ) |
Returns the distance between 2 points in 2D.
Definition at line 880 of file geometry.h.
References mrpt::utils::square().
| T mrpt::math::distanceBetweenPoints | ( | const T | x1, | |
| const T | y1, | |||
| const T | z1, | |||
| const T | x2, | |||
| const T | y2, | |||
| const T | z2 | |||
| ) |
Returns the distance between 2 points in 3D.
Definition at line 886 of file geometry.h.
References mrpt::utils::square().
| double MRPTDLLIMPEXP mrpt::math::distancePointToPolygon2D | ( | const double & | px, | |
| const double & | py, | |||
| unsigned int | polyEdges, | |||
| const double * | poly_xs, | |||
| const double * | poly_ys | |||
| ) |
Returns the closest distance of a given 2D point to a polygon, or "0" if the point is INTO the polygon or its perimeter.
| T mrpt::math::distanceSqrBetweenPoints | ( | const T | x1, | |
| const T | y1, | |||
| const T | x2, | |||
| const T | y2 | |||
| ) |
Returns the square distance between 2 points in 2D.
Definition at line 892 of file geometry.h.
References mrpt::utils::square().
| T mrpt::math::distanceSqrBetweenPoints | ( | const T | x1, | |
| const T | y1, | |||
| const T | z1, | |||
| const T | x2, | |||
| const T | y2, | |||
| const T | z2 | |||
| ) |
Returns the square distance between 2 points in 3D.
Definition at line 898 of file geometry.h.
References mrpt::utils::square().
| double MRPTDLLIMPEXP mrpt::math::erf | ( | double | x | ) |
The error function of a Normal distribution.
Referenced by noncentralChi2CDF(), and mrpt::math::detail::noncentralChi2CDF_exact().
| double MRPTDLLIMPEXP mrpt::math::erfc | ( | double | x | ) |
The complementary error function of a Normal distribution.
| class VECTORLIKE3 class MATRIXLIKE class USERPARAM void mrpt::math::estimateJacobian | ( | const VECTORLIKE & | x, | |
| void(*)(const VECTORLIKE &x, const USERPARAM &y, VECTORLIKE3 &out) | functor, | |||
| const VECTORLIKE2 & | increments, | |||
| const USERPARAM & | userParam, | |||
| MATRIXLIKE & | out_Jacobian | |||
| ) |
Definition at line 674 of file math/utils.h.
References ASSERT_, MRPT_END, and MRPT_START.
Referenced by mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), and mrpt::bayes::CKalmanFilterCapable< 6, 3, 3, 6 >::runOneKalmanIteration().
| double MRPTDLLIMPEXP mrpt::math::factorial | ( | unsigned int | n | ) |
Computes the factorial of an integer number and returns it as a double value (internally it uses logarithms for avoiding overflow).
| uint64_t MRPTDLLIMPEXP mrpt::math::factorial64 | ( | unsigned int | n | ) |
Computes the factorial of an integer number and returns it as a 64-bit integer number.
| void MRPTDLLIMPEXP mrpt::math::fft_real | ( | vector_float & | in_realData, | |
| vector_float & | out_FFT_Re, | |||
| vector_float & | out_FFT_Im, | |||
| vector_float & | out_FFT_Mag | |||
| ) |
Computes the FFT of a 2^N-size vector of real numbers, and returns the Re+Im+Magnitude parts.
| CMatrixTemplateNumeric<T> mrpt::math::generateAxisBaseFromDirection | ( | T | dx, | |
| T | dy, | |||
| T | dz | |||
| ) |
Computes an axis base (a set of three 3D normal vectors) with the given vector being the first of them.
NOTE: Make sure of passing all floats or doubles and that the template of the receiving matrix is of the same type!
If
is the input vector, then this function returns a matrix
such as:
And the three normal vectors are computed as:
If (dx!=0 or dy!=0):
otherwise (the direction vector is vertical):
And finally, the third vector is the cross product of the others:
(JLB @ 18-SEP-2007)
Definition at line 1022 of file geometry.h.
References crossProduct3D(), getColumnAccessor(), mrpt::utils::square(), and THROW_EXCEPTION.
| void MRPTDLLIMPEXP mrpt::math::generateAxisBaseFromDirectionAndAxis | ( | const double(&) | vec[3], | |
| char | coord, | |||
| CMatrixDouble & | matrix | |||
| ) |
Creates a rotation matrix so that the coordinate given (0 for x, 1 for y, 2 for z) corresponds to the vector.
| double mrpt::math::getAngle | ( | const TLine3D & | r1, | |
| const TPlane & | p2 | |||
| ) | [inline] |
Computes the angle between a 3D line or segment and a plane (implicit constructor will be used if passing a segment instead of a line).
Definition at line 190 of file geometry.h.
References getAngle().
| double MRPTDLLIMPEXP mrpt::math::getAngle | ( | const TLine3D & | r1, | |
| const TLine3D & | r2 | |||
| ) |
Computes the angle between two 3D lines or segments (implicit constructor will be used if passing a segment instead of a line).
| double MRPTDLLIMPEXP mrpt::math::getAngle | ( | const TLine2D & | r1, | |
| const TLine2D & | r2 | |||
| ) |
Computes the angle between two 2D lines or segments (implicit constructor will be used if passing a segment instead of a line).
| double MRPTDLLIMPEXP mrpt::math::getAngle | ( | const TPlane & | p1, | |
| const TLine3D & | r2 | |||
| ) |
Computes the angle between a plane and a 3D line or segment (implicit constructor will be used if passing a segment instead of a line).
| double MRPTDLLIMPEXP mrpt::math::getAngle | ( | const TPlane & | p1, | |
| const TPlane & | p2 | |||
| ) |
Computes the angle between two planes.
Referenced by getAngle().
| void MRPTDLLIMPEXP mrpt::math::getAngleBisector | ( | const TLine2D & | l1, | |
| const TLine2D & | l2, | |||
| TLine2D & | bis | |||
| ) |
Gets the bisector of two lines or segments (implicit constructor will be used if necessary).
| void MRPTDLLIMPEXP mrpt::math::getAngleBisector | ( | const TLine3D & | l1, | |
| const TLine3D & | l2, | |||
| TLine3D & | bis | |||
| ) |
Gets the bisector of two lines or segments (implicit constructor will be used if necessary).
| std::logic_error | if the lines do not fit in a single plane. |
| CConstVectorColumnWrapper< VEC > mrpt::math::getAsRow | ( | VEC & | v | ) | [inline] |
Definition at line 1203 of file CMatrixViews.h.
| CConstVectorRowWrapper<VEC> mrpt::math::getAsRow | ( | const VEC & | v | ) | [inline] |
Definition at line 1121 of file CMatrixViews.h.
| CMatrixColumnAccessor<MAT> mrpt::math::getColumnAccessor | ( | MAT & | m, | |
| size_t | colIdx | |||
| ) | [inline] |
Definition at line 655 of file CMatrixViews.h.
Referenced by generateAxisBaseFromDirection().
| CMatrixColumnAccessorExtended<MAT> mrpt::math::getColumnAccessor | ( | MAT & | m, | |
| size_t | colIdx, | |||
| size_t | offset, | |||
| size_t | space = 1 | |||
| ) | [inline] |
Definition at line 722 of file CMatrixViews.h.
| CConstMatrixColumnAccessor<MAT> mrpt::math::getColumnAccessor | ( | const MAT & | m, | |
| size_t | colIdx | |||
| ) | [inline] |
Definition at line 768 of file CMatrixViews.h.
| CConstMatrixColumnAccessorExtended<MAT> mrpt::math::getColumnAccessor | ( | const MAT & | m, | |
| size_t | colIdx, | |||
| size_t | offset, | |||
| size_t | space = 1 | |||
| ) | [inline] |
Definition at line 818 of file CMatrixViews.h.
| double mrpt::math::getEpsilon | ( | ) | [inline] |
Gets the value of the geometric epsilon.
Definition at line 707 of file geometry.h.
References geometryEpsilon.
| void MRPTDLLIMPEXP mrpt::math::getPrismBounds | ( | const std::vector< TPoint3D > & | poly, | |
| TPoint3D & | pMin, | |||
| TPoint3D & | pMax | |||
| ) |
Gets the prism bounds of a 3D polygon or set of 3D points.
| void MRPTDLLIMPEXP mrpt::math::getRectangleBounds | ( | const std::vector< TPoint2D > & | poly, | |
| TPoint2D & | pMin, | |||
| TPoint2D & | pMax | |||
| ) |
Gets the rectangular bounds of a 2D polygon or set of 2D points.
| double MRPTDLLIMPEXP mrpt::math::getRegressionLine | ( | const std::vector< TPoint2D > & | points, | |
| TLine2D & | line | |||
| ) |
Using eigenvalues, gets the best fitting line for a set of 2D points.
Returns an estimation of the error.
| double MRPTDLLIMPEXP mrpt::math::getRegressionLine | ( | const std::vector< TPoint3D > & | points, | |
| TLine3D & | line | |||
| ) |
Using eigenvalues, gets the best fitting line for a set of 3D points.
Returns an estimation of the error.
| double MRPTDLLIMPEXP mrpt::math::getRegressionPlane | ( | const std::vector< TPoint3D > & | points, | |
| TPlane & | plane | |||
| ) |
Using eigenvalues, gets the best fitting plane for a set of 3D points.
Returns an estimation of the error.
| CConstMatrixRowAccessor<MAT> mrpt::math::getRowAccessor | ( | const MAT & | m, | |
| size_t | rowIdx | |||
| ) | [inline] |
Definition at line 989 of file CMatrixViews.h.
| CConstMatrixRowAccessorExtended<MAT> mrpt::math::getRowAccessor | ( | const MAT & | m, | |
| size_t | rowIdx, | |||
| size_t | offset, | |||
| size_t | space = 1 | |||
| ) | [inline] |
Definition at line 1039 of file CMatrixViews.h.
| CMatrixRowAccessor<MAT> mrpt::math::getRowAccessor | ( | MAT & | m, | |
| size_t | rowIdx | |||
| ) | [inline] |
Definition at line 876 of file CMatrixViews.h.
| CMatrixRowAccessorExtended<MAT> mrpt::math::getRowAccessor | ( | MAT & | m, | |
| size_t | rowIdx, | |||
| size_t | offset, | |||
| size_t | space = 1 | |||
| ) | [inline] |
Definition at line 943 of file CMatrixViews.h.
| void MRPTDLLIMPEXP mrpt::math::getSegmentBisector | ( | const TSegment3D & | sgm, | |
| TPlane & | bis | |||
| ) |
Gets the bisector of a 3D segment.
| void MRPTDLLIMPEXP mrpt::math::getSegmentBisector | ( | const TSegment2D & | sgm, | |
| TLine2D & | bis | |||
| ) |
Gets the bisector of a 2D segment.
| CConstMatrixViewTranspose<MAT> mrpt::math::getTransposed | ( | const MAT & | m | ) |
Definition at line 156 of file CMatrixViews.h.
| CMatrixViewTranspose<MAT> mrpt::math::getTransposed | ( | MAT & | m | ) |
Definition at line 109 of file CMatrixViews.h.
| std::vector<double> mrpt::math::histogram | ( | const CONTAINER & | v, | |
| double | limit_min, | |||
| double | limit_max, | |||
| size_t | number_bins, | |||
| bool | do_normalization = false | |||
| ) |
Referenced by condidenceIntervals().
| void MRPTDLLIMPEXP mrpt::math::idft2_complex | ( | const CMatrixFloat & | in_real, | |
| const CMatrixFloat & | in_imag, | |||
| CMatrixFloat & | out_real, | |||
| CMatrixFloat & | out_imag | |||
| ) |
Compute the 2D inverse Discrete Fourier Transform (DFT).
| in_real | The N_1xN_2 input matrix with real values, where both dimensions MUST BE powers of 2. | |
| in_imag | The N_1xN_2 input matrix with imaginary values, where both dimensions MUST BE powers of 2. | |
| out_real | The N_1xN_2 output matrix for real part (user has not to initialize the size of this matrix). | |
| out_imag | The N_1xN_2 output matrix for imaginary part (user has not to initialize the size of this matrix). |
| void MRPTDLLIMPEXP mrpt::math::idft2_real | ( | const CMatrixFloat & | in_real, | |
| const CMatrixFloat & | in_imag, | |||
| CMatrixFloat & | out_data | |||
| ) |
Compute the 2D inverse Discrete Fourier Transform (DFT).
| in_real | The N_1xN_2 input matrix with real values. | |
| in_imag | The N_1xN_2 input matrix with imaginary values. | |
| out_data | The N_1xN_2 output matrix (user has not to initialize the size of this matrix). Note that the real and imaginary parts of the FFT will NOT be checked to assure that they represent the transformation of purely real data. If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm. |
| T mrpt::math::interpolate | ( | const T & | x, | |
| const std::vector< T > & | ys, | |||
| const T & | x0, | |||
| const T & | x1 | |||
| ) |
Interpolate a data sequence "ys" ranging from "x0" to "x1" (equally spaced), to obtain the approximation of the sequence at the point "x".
If the point "x" is out of the range [x0,x1], the closest extreme "ys" value is returned.
Definition at line 728 of file math/utils.h.
References ASSERT_, MRPT_END, and MRPT_START.
| double MRPTDLLIMPEXP mrpt::math::interpolate2points | ( | const double | x, | |
| const double | x0, | |||
| const double | y0, | |||
| const double | x1, | |||
| const double | y1, | |||
| bool | wrap2pi = false | |||
| ) |
Linear interpolation/extrapolation: evaluates at "x" the line (x0,y0)-(x1,y1).
If wrap2pi is true, output is wrapped to ]-pi,pi] (It is assumed that input "y" values already are in the correct range).
| bool mrpt::math::intersect | ( | const TLine3D & | r1, | |
| const TSegment3D & | s2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a 3D line and a 3D segment.
Definition at line 136 of file geometry.h.
References intersect().
| bool mrpt::math::intersect | ( | const TLine3D & | r1, | |
| const TPlane & | p2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a 3D line and a plane.
Definition at line 143 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TLine3D & | r1, | |
| const TLine3D & | r2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between two 3D lines.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TLine2D & | r1, | |
| const TSegment2D & | s2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between a 2D line and a 2D segment.
| bool mrpt::math::intersect | ( | const TSegment2D & | s1, | |
| const TLine2D & | r2, | |||
| TObject2D & | obj | |||
| ) | [inline] |
Gets the intersection between a 2D line and a 2D segment.
Definition at line 165 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TSegment2D & | s1, | |
| const TSegment2D & | s2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between two 2D segments.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TLine2D & | r1, | |
| const TLine2D & | r2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between two 2D lines.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon2D & | p1, | |
| const TSegment2D & | s2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between a 2D polygon and a 2D segment.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon2D & | p1, | |
| const TLine2D & | r2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between a 2D polygon and a 2D line.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon2D & | p1, | |
| const TPolygon2D & | p2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between two 2D polygons.
| bool mrpt::math::intersect | ( | const TSegment2D & | s1, | |
| const TPolygon2D & | p2, | |||
| TObject2D & | obj | |||
| ) | [inline] |
Gets the intersection between a 2D segment and a 2D polygon.
Definition at line 419 of file geometry.h.
References intersect().
| bool mrpt::math::intersect | ( | const TLine2D & | r1, | |
| const TPolygon2D & | p2, | |||
| TObject2D & | obj | |||
| ) | [inline] |
Gets the intersection between a 2D line and a 2D polygon.
Definition at line 426 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon3D & | p1, | |
| const TSegment3D & | s2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a 3D polygon and a 3D segment.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon3D & | p1, | |
| const TLine3D & | r2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a 3D polygon and a 3D line.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon3D & | p1, | |
| const TPlane & | p2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a 3D polygon and a plane.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPolygon3D & | p1, | |
| const TPolygon3D & | p2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between two 3D polygons.
| bool mrpt::math::intersect | ( | const TSegment3D & | s1, | |
| const TPolygon3D & | p2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a 3D segment and a 3D polygon.
Definition at line 453 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TSegment3D & | s1, | |
| const TSegment3D & | s2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between two 3D segments.
Referenced by mrpt::opengl::CPolyhedron::getIntersection(), and intersect().
| bool mrpt::math::intersect | ( | const TLine3D & | r1, | |
| const TPolygon3D & | p2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a 3D line and a 3D polygon.
Definition at line 460 of file geometry.h.
References intersect().
| bool mrpt::math::intersect | ( | const TPlane & | p1, | |
| const TPolygon3D & | p2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a plane and a 3D polygon.
Definition at line 467 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TSegment3D & | s1, | |
| const TPlane & | p2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a 3D segment and a plane.
| size_t MRPTDLLIMPEXP mrpt::math::intersect | ( | const std::vector< TPolygon3D > & | v1, | |
| const std::vector< TPolygon3D > & | v2, | |||
| CSparseMatrixTemplate< TObject3D > & | objs | |||
| ) |
Gets the intersection between two sets of 3D polygons.
The intersection is returned as an sparse matrix with each pair of polygons' intersections, and the return value is the amount of intersections found.
| size_t MRPTDLLIMPEXP mrpt::math::intersect | ( | const std::vector< TPolygon3D > & | v1, | |
| const std::vector< TPolygon3D > & | v2, | |||
| std::vector< TObject3D > & | objs | |||
| ) |
Gets the intersection between two sets of 3D polygons.
The intersection is returned as a vector with every intersection found, and the return value is the amount of intersections found.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TSegment3D & | s1, | |
| const TLine3D & | r2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a 3D segment and a 3D line.
| size_t mrpt::math::intersect | ( | const std::vector< T > & | v1, | |
| const std::vector< U > & | v2, | |||
| CSparseMatrixTemplate< O > & | objs | |||
| ) |
Gets the intersection between vectors of geometric objects and returns it in a sparse matrix of either TObject2D or TObject3D.
Definition at line 491 of file geometry.h.
References mrpt::math::CSparseMatrixTemplate< T >::clear(), mrpt::math::CSparseMatrixTemplate< T >::getNonNullElements(), intersect(), and mrpt::math::CSparseMatrixTemplate< T >::resize().
| size_t mrpt::math::intersect | ( | const std::vector< T > & | v1, | |
| const std::vector< U > & | v2, | |||
| std::vector< O > | objs | |||
| ) |
Gets the intersection between vectors of geometric objects and returns it in a vector of either TObject2D or TObject3D.
Definition at line 504 of file geometry.h.
References intersect().
| bool mrpt::math::intersect | ( | const TPlane & | p1, | |
| const TSegment3D & | s2, | |||
| TObject3D & | obj | |||
| ) | [inline] |
Gets the intersection between a plane and a 3D segment.
Definition at line 119 of file geometry.h.
References intersect().
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TObject2D & | o1, | |
| const TObject2D & | o2, | |||
| TObject2D & | obj | |||
| ) |
Gets the intersection between any pair of 2D objects.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TObject3D & | o1, | |
| const TObject3D & | o2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between any pair of 3D objects.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPlane & | p1, | |
| const TPlane & | p2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between two planes.
| bool MRPTDLLIMPEXP mrpt::math::intersect | ( | const TPlane & | p1, | |
| const TLine3D & | p2, | |||
| TObject3D & | obj | |||
| ) |
Gets the intersection between a plane and a 3D line.
| bool MRPTDLLIMPEXP mrpt::math::isFinite | ( | double | f | ) |
Returns true if the number is non infinity.
| bool MRPTDLLIMPEXP mrpt::math::isFinite | ( | float | f | ) |
Returns true if the number is non infinity.
| bool MRPTDLLIMPEXP mrpt::math::isNaN | ( | double | f | ) |
Returns true if the number is NaN.
| bool MRPTDLLIMPEXP mrpt::math::isNaN | ( | float | f | ) |
Returns true if the number is NaN.
| double mrpt::math::KLD_Gaussians | ( | const VECTORLIKE1 & | mu0, | |
| const MATRIXLIKE1 & | cov0, | |||
| const VECTORLIKE2 & | mu1, | |||
| const MATRIXLIKE2 & | cov1 | |||
| ) |
Kullback-Leibler divergence (KLD) between two independent multivariate Gaussians.
Definition at line 128 of file distributions.h.
References ASSERT_, MRPT_END, MRPT_START, multiply_HCHt_scalar(), and size().
| void mrpt::math::leastSquareLinearFit | ( | const VECTORLIKE1 & | ts, | |
| VECTORLIKE2 & | outs, | |||
| const VECTORLIKE3 & | x, | |||
| const VECTORLIKE3 & | y, | |||
| bool | wrap2pi = false | |||
| ) |
Interpolates or extrapolates using a least-square linear fit of the set of values "x" and "y", evaluated at a sequence of points "ts" and returned at "outs".
If wrap2pi is true, output "y" values are wrapped to ]-pi,pi] (It is assumed that input "y" values already are in the correct range).
Definition at line 816 of file math/utils.h.
References ASSERT_, mrpt::math::CMatrixTemplateNumeric< T >::inv_fast(), minimum(), MRPT_END, MRPT_START, mrpt::math::CMatrixTemplateNumeric< T >::multiply(), mrpt::math::CMatrixTemplateNumeric< T >::multiply_AAt(), mrpt::math::CMatrixTemplateNumeric< T >::multiply_Ab(), mrpt::math::CMatrixTemplate< T >::set_unsafe(), and wrapToPi().
| NUMTYPE mrpt::math::leastSquareLinearFit | ( | const NUMTYPE | t, | |
| const VECTORLIKE & | x, | |||
| const VECTORLIKE & | y, | |||
| bool | wrap2pi = false | |||
| ) |
Interpolates or extrapolates using a least-square linear fit of the set of values "x" and "y", evaluated at a single point "t".
The vectors x and y must have size >=2, and all values of "x" must be different. If wrap2pi is true, output "y" values are wrapped to ]-pi,pi] (It is assumed that input "y" values already are in the correct range).
Definition at line 766 of file math/utils.h.
References ASSERT_, mrpt::math::CMatrixTemplateNumeric< T >::inv_fast(), minimum(), MRPT_END, MRPT_START, mrpt::math::CMatrixTemplateNumeric< T >::multiply(), mrpt::math::CMatrixTemplateNumeric< T >::multiply_AAt(), mrpt::math::CMatrixTemplateNumeric< T >::multiply_Ab(), mrpt::math::CMatrixTemplate< T >::set_unsafe(), and wrapToPi().
| void mrpt::math::linspace | ( | T | first, | |
| T | last, | |||
| size_t | count, | |||
| std::vector< K > & | out_vector | |||
| ) |
Generates an equidistant sequence of numbers given the first one, the last one and the desired number of points.
Definition at line 90 of file math/utils.h.
Referenced by linspace().
| std::vector<T> mrpt::math::linspace | ( | T | first, | |
| T | last, | |||
| size_t | count | |||
| ) | [inline] |
Generates an equidistant sequence of numbers given the first one, the last one and the desired number of points.
Definition at line 110 of file math/utils.h.
References linspace().
| bool MRPTDLLIMPEXP mrpt::math::loadVector | ( | utils::CFileStream & | f, | |
| std::vector< double > & | d | |||
| ) |
Loads one row of a text file as a numerical std::vector.
| std::vector<T>& mrpt::math::loadVector | ( | std::vector< T > & | v, | |
| At(&) | theArray[N] | |||
| ) |
Assignment operator for initializing a std::vector from a C array (The vector will be automatically set to the correct size).
vector_double v; const double numbers[] = { 1,2,3,5,6,7,8,9,10 }; loadVector( v, numbers );
Definition at line 878 of file math/utils.h.
References MRPT_COMPILE_TIME_ASSERT.
| bool MRPTDLLIMPEXP mrpt::math::loadVector | ( | utils::CFileStream & | f, | |
| std::vector< int > & | d | |||
| ) |
Loads one row of a text file as a numerical std::vector.
| VECTORLIKE1::value_type mrpt::math::mahalanobisDistance | ( | const VECTORLIKE1 & | X, | |
| const VECTORLIKE2 & | MU, | |||
| const MAT & | COV | |||
| ) | [inline] |
Computes the mahalanobis distance of a vector X given the mean MU and the covariance *inverse* COV_inv
.
Definition at line 923 of file math/utils.h.
References mahalanobisDistance2().
Referenced by mahalanobisDistance().
| VECTORLIKE::value_type mrpt::math::mahalanobisDistance | ( | const VECTORLIKE & | mean_diffs, | |
| const MAT1 & | COV1, | |||
| const MAT2 & | COV2, | |||
| const MAT3 & | CROSS_COV12 | |||
| ) | [inline] |
Computes the mahalanobis distance between two *non-independent* Gaussians (or independent if CROSS_COV12=NULL), given the two covariance matrices and the vector with the difference of their means.
Definition at line 964 of file math/utils.h.
References mahalanobisDistance().
| MATRIXLIKE::value_type mrpt::math::mahalanobisDistance | ( | const VECTORLIKE & | delta_mu, | |
| const MATRIXLIKE & | cov | |||
| ) | [inline] |
Computes the mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.
Definition at line 992 of file math/utils.h.
References mahalanobisDistance2().
| MATRIXLIKE::value_type mrpt::math::mahalanobisDistance2 | ( | const VECTORLIKE & | delta_mu, | |
| const MATRIXLIKE & | cov | |||
| ) | [inline] |
Computes the squared mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.
Definition at line 978 of file math/utils.h.
References ASSERTDEB_, and multiply_HCHt_scalar().
| VECTORLIKE1::value_type mrpt::math::mahalanobisDistance2 | ( | const VECTORLIKE1 & | X, | |
| const VECTORLIKE2 & | MU, | |||
| const MAT & | COV | |||
| ) |
Computes the squared mahalanobis distance of a vector X given the mean MU and the covariance *inverse* COV_inv
.
Definition at line 900 of file math/utils.h.
References ASSERT_, MRPT_END, MRPT_START, multiply_HCHt_scalar(), and size().
Referenced by mahalanobisDistance().
| VECTORLIKE::value_type mrpt::math::mahalanobisDistance2 | ( | const VECTORLIKE & | mean_diffs, | |
| const MAT1 & | COV1, | |||
| const MAT2 & | COV2, | |||
| const MAT3 & | CROSS_COV12 | |||
| ) |
Computes the squared mahalanobis distance between two *non-independent* Gaussians, given the two covariance matrices and the vector with the difference of their means.
Definition at line 937 of file math/utils.h.
References ASSERT_, MRPT_END, MRPT_START, multiply_HCHt_scalar(), and size().
| void mrpt::math::mahalanobisDistance2AndLogPDF | ( | const VECLIKE & | diff_mean, | |
| const MATRIXLIKE & | cov, | |||
| T & | maha2_out, | |||
| T & | log_pdf_out | |||
| ) |
Computes both, the logarithm of the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.
Definition at line 1073 of file math/utils.h.
References ASSERTDEB_, M_2PI, MRPT_END, MRPT_START, and multiply_HCHt_scalar().
Referenced by mahalanobisDistance2AndPDF().
| void mrpt::math::mahalanobisDistance2AndPDF | ( | const VECLIKE & | diff_mean, | |
| const MATRIXLIKE & | cov, | |||
| T & | maha2_out, | |||
| T & | pdf_out | |||
| ) | [inline] |
Computes both, the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.
Definition at line 1097 of file math/utils.h.
References mahalanobisDistance2AndLogPDF().
| std::vector<T> mrpt::math::make_vector | ( | const T | val1, | |
| ... | ||||
| ) |
A versatile template to build vectors on-the-fly in a style close to MATLAB's v=[a b c d ...] The first argument of the template is the vector length, and the second the type of the numbers.
Some examples:
vector_double = make_vector<4,double>(1.0,3.0,4.0,5.0); vector_float = make_vector<2,float>(-8.12, 3e4);
Definition at line 1119 of file math/utils.h.
References MRPT_COMPILE_TIME_ASSERT.
| mrpt::math::MAT_TYPE_COVARIANCE_OF | ( | MATRIX | ) | const [inline] |
Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample, so the covariance is MxM.
| v | The set of data, as a NxM matrix. | |
| out_cov | The output MxM matrix for the estimated covariance matrix. |
Definition at line 1105 of file ops_matrices.h.
References meanAndCov().
| mrpt::math::MAT_TYPE_PRODUCT_OF | ( | MAT1 | , | |
| MAT2 | ||||
| ) | const [inline] |
Matrix multiplication operator: A * B -> RES The meaning of the lengthy macros in the declaration is:
NxM * MxK -> NxK, DYN*DYN -> DYN.
Referenced by mrpt::math::detail::multiply_HCHt().
| mrpt::math::MAT_TYPE_TRANSPOSE_OF | ( | MAT | ) | const [inline] |
unary transpose operator ~
Definition at line 1010 of file ops_matrices.h.
| std::string MRPTDLLIMPEXP mrpt::math::MATLAB_plotCovariance2D | ( | const CMatrixFloat & | cov22, | |
| const CVectorFloat & | mean, | |||
| const float & | stdCount, | |||
| const std::string & | style = std::string("b"), |
|||
| const size_t & | nEllipsePoints = 30 | |||
| ) |
Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('float' version).
Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('double' version).
| cov22 | The 2x2 covariance matrix | |
| mean | The 2-length vector with the mean | |
| stdCount | How many "quantiles" to get into the area of the ellipse: 2: 95%, 3:99.97%,... | |
| style | A matlab style string, for colors, line styles,... | |
| nEllipsePoints | The number of points in the ellipse to generate | |
| cov22 | The 2x2 covariance matrix | |
| mean | The 2-length vector with the mean | |
| stdCount | How many "quantiles" to get into the area of the ellipse: 2: 95%, 3:99.97%,... | |
| style | A matlab style string, for colors, line styles,... | |
| nEllipsePoints | The number of points in the ellipse to generate |
| CMatrixFixedNumeric<T,NROWS,NCOLS>& mrpt::math::matrixFromPoseOrPoint | ( | CMatrixFixedNumeric< T, NROWS, NCOLS > & | M, | |
| const CPoint3D & | p | |||
| ) |
Definition at line 525 of file CMatrixFixedNumeric.h.
References THROW_EXCEPTION.
| CMatrixFixedNumeric<T,NROWS,NCOLS>& mrpt::math::matrixFromPoseOrPoint | ( | CMatrixFixedNumeric< T, NROWS, NCOLS > & | M, | |
| const CPose2D & | p | |||
| ) |
Definition at line 526 of file CMatrixFixedNumeric.h.
References THROW_EXCEPTION.
| CMatrixFixedNumeric<T,NROWS,NCOLS>& mrpt::math::matrixFromPoseOrPoint | ( | CMatrixFixedNumeric< T, NROWS, NCOLS > & | M, | |
| const CPose3D & | p | |||
| ) |
Definition at line 527 of file CMatrixFixedNumeric.h.
References THROW_EXCEPTION.
| CMatrixFixedNumeric<T,NROWS,NCOLS>& mrpt::math::matrixFromPoseOrPoint | ( | CMatrixFixedNumeric< T, NROWS, NCOLS > & | M, | |
| const CPoint2D & | p | |||
| ) |
Definition at line 524 of file CMatrixFixedNumeric.h.
References THROW_EXCEPTION.
Referenced by mrpt::math::CMatrixFixedNumeric< float, 4, 4 >::CMatrixFixedNumeric(), and mrpt::math::CMatrixFixedNumeric< float, 4, 4 >::operator=().
| CMatrixDouble12 & mrpt::math::matrixFromPoseOrPoint | ( | CMatrixDouble21 & | M, | |
| const CPoint2D & | p | |||
| ) |
| CMatrixDouble13 & mrpt::math::matrixFromPoseOrPoint | ( | CMatrixDouble31 & | M, | |
| const CPoint3D & | p | |||
| ) |
| CMatrixDouble13 & mrpt::math::matrixFromPoseOrPoint | ( | CMatrixDouble31 & | M, | |
| const CPose2D & | p | |||
| ) |
| CMatrixDouble16 & mrpt::math::matrixFromPoseOrPoint | ( | CMatrixDouble61 & | M, | |
| const CPose3D & | p | |||
| ) |
| CONTAINER::value_type mrpt::math::maximum | ( | const CONTAINER & | v, | |
| size_t * | maxIndex = NULL | |||
| ) |
| double mrpt::math::mean | ( | const CONTAINER & | v | ) | [inline] |
Referenced by condidenceIntervals(), mrpt::random::CRandomGenerator::drawGaussian1DMatrix(), mrpt::random::CRandomGenerator::drawGaussian1DVector(), mrpt::random::CRandomGenerator::drawGaussianMultivariate(), mrpt::random::CRandomGenerator::drawGaussianMultivariateMany(), mrpt::random::matrixRandomNormal(), mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), and mrpt::random::vectorRandomNormal().
| class MAT_OUT void mrpt::math::meanAndCov | ( | const MAT_IN & | v, | |
| vector_double & | out_mean, | |||
| MAT_OUT & | out_cov | |||
| ) |
Definition at line 1060 of file ops_matrices.h.
References ASSERTMSG_, and mrpt::utils::square().
Referenced by MAT_TYPE_COVARIANCE_OF().
| void mrpt::math::meanAndCovVector | ( | const VECTOR_OF_VECTOR & | v, | |
| VECTORLIKE & | out_mean, | |||
| MATRIXLIKE & | out_cov | |||
| ) |
Computes the mean vector and covariance from a list of values given as a vector of vectors, where each row is a sample.
| v | The set of data, as a vector of N vectors of M elements. | |
| out_mean | The output M-vector for the estimated mean. | |
| out_cov | The output MxM matrix for the estimated covariance matrix. |
Definition at line 170 of file math/utils.h.
References ASSERTMSG_, and mrpt::utils::square().
Referenced by covVector().
| void mrpt::math::meanAndStd | ( | const VECTORLIKE & | v, | |
| double & | out_mean, | |||
| double & | out_std, | |||
| bool | unbiased = true | |||
| ) |
| bool MRPTDLLIMPEXP mrpt::math::minDistBetweenLines | ( | const double & | p1_x, | |
| const double & | p1_y, | |||
| const double & | p1_z, | |||
| const double & | p2_x, | |||
| const double & | p2_y, | |||
| const double & | p2_z, | |||
| const double & | p3_x, | |||
| const double & | p3_y, | |||
| const double & | p3_z, | |||
| const double & | p4_x, | |||
| const double & | p4_y, | |||
| const double & | p4_z, | |||
| double & | x, | |||
| double & | y, | |||
| double & | z, | |||
| double & | dist | |||
| ) |
Calculates the minimum distance between a pair of lines.
The lines are given by:
| CONTAINER::value_type mrpt::math::minimum | ( | const CONTAINER & | v, | |
| size_t * | minIndex = NULL | |||
| ) |
| void mrpt::math::minimum_maximum | ( | const CONTAINER & | v, | |
| typename CONTAINER::mrpt_autotype::value_type & | out_min, | |||
| typename CONTAINER::mrpt_autotype::value_type & | out_max, | |||
| size_t * | minIndex = static_cast< size_t * >(NULL), |
|||
| size_t * | maxIndex = static_cast< size_t * >(NULL) | |||
| ) |
Referenced by condidenceIntervals().
| double MRPTDLLIMPEXP mrpt::math::minimumDistanceFromPointToSegment | ( | const double & | Px, | |
| const double & | Py, | |||
| const double & | x1, | |||
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| double & | out_x, | |||
| double & | out_y | |||
| ) |
Computes the closest point from a given point to a segment, and returns that minimum distance.
| double MRPTDLLIMPEXP mrpt::math::minimumDistanceFromPointToSegment | ( | const double & | Px, | |
| const double & | Py, | |||
| const double & | x1, | |||
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| float & | out_x, | |||
| float & | out_y | |||
| ) |
Computes the closest point from a given point to a segment, and returns that minimum distance.
| MAT1::value_type mrpt::math::multiply_HCHt_scalar | ( | const MAT1 & | H, | |
| const MAT2 & | C | |||
| ) | [inline] |
Just like s=H.multiply_HCHt_scalar(C), but defined in mrpt::math for backward compatibility.
Definition at line 988 of file ops_matrices.h.
References mrpt::math::detail::multiply_HCHt_scalar().
Referenced by KLD_Gaussians(), mahalanobisDistance2(), mahalanobisDistance2AndLogPDF(), and normalPDF().
| bool mrpt::math::myStaticCast | ( | double | val | ) |
Definition at line 43 of file CMatrixTemplate.h.
| U mrpt::math::myStaticCast | ( | double | val | ) |
Definition at line 43 of file CMatrixTemplate.h.
| double mrpt::math::noncentralChi2CDF | ( | unsigned int | degreesOfFreedom, | |
| T | noncentrality, | |||
| T | arg | |||
| ) |
Cumulative non-central chi square distribution (approximate).
Computes approximate values of the cumulative density of a chi square distribution with degreesOfFreedom, and noncentrality parameter noncentrality at the given argument arg, i.e. the probability that a random number drawn from the distribution is below arg It uses the approximate transform into a normal distribution due to Wilson and Hilferty (see Abramovitz, Stegun: "Handbook of Mathematical Functions", formula 26.3.32). The algorithm's running time is independent of the inputs. The accuracy is only about 0.1 for few degrees of freedom, but reaches about 0.001 above dof = 5.
Definition at line 188 of file distributions.h.
References erf(), and mrpt::utils::square().
Referenced by chi2CDF().
| CONTAINER::value_type mrpt::math::norm | ( | const CONTAINER & | v | ) | [inline] |
| CONTAINER::value_type mrpt::math::norm_inf | ( | const CONTAINER & | v, | |
| size_t * | maxIndex = NULL | |||
| ) |
| double MRPTDLLIMPEXP mrpt::math::normalCDF | ( | double | p | ) |
Evaluates the Gaussian cumulative density function.
The employed approximation is that from W. J. Cody freely available in http://www.netlib.org/specfun/erf
| void mrpt::math::normalize | ( | const std::vector< T > & | v, | |
| std::vector< T > & | out_v | |||
| ) |
Normalize a vector, such as its norm is the unity.
If the vector has a null norm, the output is a null vector.
Definition at line 146 of file math/utils.h.
References mrpt::utils::square().
| T mrpt::math::normalPDF | ( | const CMatrixTemplateNumeric< T > & | x, | |
| const CMatrixTemplateNumeric< T > & | mu, | |||
| const CMatrixTemplateNumeric< T > & | cov | |||
| ) |
Evaluates the multivariate normal (Gaussian) distribution at a given point "x" ("x" and "mu" can be 1xN or Nx1 matrixes).
Definition at line 57 of file distributions.h.
References mrpt::math::CMatrixTemplateNumeric< T >::det(), mrpt::math::CMatrixTemplate< T >::getRowCount(), and mrpt::math::CMatrixTemplateNumeric< T >::inv().
| T mrpt::math::normalPDF | ( | const CMatrixFixedNumeric< T, N, 1 > & | x, | |
| const CMatrixFixedNumeric< T, N, 1 > & | mu, | |||
| const CMatrixFixedNumeric< T, N, N > & | cov | |||
| ) |
Evaluates the multivariate normal (Gaussian) distribution at a given point "x" ("x" and "mu" can be 1xN or Nx1 matrixes).
Definition at line 86 of file distributions.h.
References mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::det(), and mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::inv().
| MATRIXLIKE::value_type mrpt::math::normalPDF | ( | const VECTORLIKE & | d, | |
| const MATRIXLIKE & | cov | |||
| ) |
Evaluates the multivariate normal (Gaussian) distribution at a given point given its distance vector "d" from the Gaussian mean.
Definition at line 108 of file distributions.h.
References ASSERTDEB_, MRPT_END, MRPT_START, and multiply_HCHt_scalar().
| double MRPTDLLIMPEXP mrpt::math::normalPDF | ( | double | x, | |
| double | mu, | |||
| double | std | |||
| ) |
Evaluates the univariate normal (Gaussian) distribution at a given point "x".
| double MRPTDLLIMPEXP mrpt::math::normalQuantile | ( | double | p | ) |
Evaluates the Gaussian distribution quantile for the probability value p=[0,1].
The employed approximation is that from Peter J. Acklam (pjacklam@online.no), freely available in http://home.online.no/~pjacklam.
| std::vector<T> mrpt::math::ones | ( | size_t | count | ) |
Generates a vector of all ones of the given length.
Definition at line 130 of file math/utils.h.
| bool mrpt::math::operator!= | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
| bool mrpt::math::operator!= | ( | const TPoint2D & | p1, | |
| const TPoint2D & | p2 | |||
| ) | [inline] |
Exact comparison between 2D points.
Definition at line 473 of file lightweight_geom_data.h.
References mrpt::math::TPoint2D::x, and mrpt::math::TPoint2D::y.
| bool mrpt::math::operator!= | ( | const TPoint3D & | p1, | |
| const TPoint3D & | p2 | |||
| ) | [inline] |
Exact comparison between 3D points.
Definition at line 485 of file lightweight_geom_data.h.
References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
| bool mrpt::math::operator!= | ( | const TPose2D & | p1, | |
| const TPose2D & | p2 | |||
| ) | [inline] |
Exact comparison between 2D poses, taking possible cycles into account.
Definition at line 497 of file lightweight_geom_data.h.
References mrpt::math::TPose2D::phi, wrapTo2Pi(), mrpt::math::TPose2D::x, and mrpt::math::TPose2D::y.
| bool mrpt::math::operator!= | ( | const TPose3D & | p1, | |
| const TPose3D & | p2 | |||
| ) | [inline] |
Exact comparison between 3D poses, taking possible cycles into account.
Definition at line 509 of file lightweight_geom_data.h.
References mrpt::math::TPose3D::pitch, mrpt::math::TPose3D::roll, wrapTo2Pi(), mrpt::math::TPose3D::x, mrpt::math::TPose3D::y, mrpt::math::TPose3D::yaw, and mrpt::math::TPose3D::z.
| bool mrpt::math::operator!= | ( | const TSegment2D & | s1, | |
| const TSegment2D & | s2 | |||
| ) | [inline] |
Definition at line 657 of file lightweight_geom_data.h.
References mrpt::math::TSegment2D::point1, and mrpt::math::TSegment2D::point2.
| bool mrpt::math::operator!= | ( | const TSegment3D & | s1, | |
| const TSegment3D & | s2 | |||
| ) | [inline] |
Definition at line 665 of file lightweight_geom_data.h.
References mrpt::math::TSegment3D::point1, and mrpt::math::TSegment3D::point2.
| CArrayNumeric<T,N> mrpt::math::operator* | ( | const CArrayNumeric< T, N > & | A, | |
| const VECTORLIKE & | B | |||
| ) |
Dot product: ARRAY <- ARRAY .
* VECTORorARRAY
Definition at line 461 of file CArray.h.
References ASSERT_, and mrpt::math::CArray< T, N >::size().
| CArrayNumeric<T,N> mrpt::math::operator+ | ( | const CArrayNumeric< T, N > & | A, | |
| const VECTORLIKE & | B | |||
| ) |
Operator ARRAY <- ARRAY + VECTORorARRAY.
Definition at line 443 of file CArray.h.
References ASSERT_, and mrpt::math::CArray< T, N >::size().
| TPoint3D mrpt::math::operator- | ( | const TPoint3D & | p1 | ) | [inline] |
Unary minus operator for 3D points.
Definition at line 461 of file lightweight_geom_data.h.
References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
| CArrayNumeric<T,N> mrpt::math::operator- | ( | const CArrayNumeric< T, N > & | A, | |
| const VECTORLIKE & | B | |||
| ) |
Operator ARRAY <- ARRAY - VECTORorARRAY.
Definition at line 452 of file CArray.h.
References ASSERT_, and mrpt::math::CArray< T, N >::size().
| CMatrixTemplateNumeric<T> mrpt::math::operator/ | ( | const CMatrixTemplateNumeric< T > & | m1, | |
| const CMatrixTemplateNumeric< T > & | m2 | |||
| ) | [inline] |
Binary matrix division operator A/B = A*inv(B).
Definition at line 994 of file ops_matrices.h.
| bool mrpt::math::operator< | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TObject2D & | o | |||
| ) |
TObject2D binary input.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TObject3D & | o | |||
| ) |
TObject3D binary output.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const CMatrixFixedNumeric< float, NROWS, NCOLS > & | M | |||
| ) |
Write operator for writing into a CStream.
The format is compatible with that of CMatrix & CMatrixD
Definition at line 73 of file ops_matrices.h.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TSegment3D & | s | |||
| ) | [inline] |
TSegment3D binary output.
Definition at line 2259 of file lightweight_geom_data.h.
References mrpt::math::TSegment3D::point1, and mrpt::math::TSegment3D::point2.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TPose3D & | o | |||
| ) |
TPose3D binary output.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TLine2D & | l | |||
| ) | [inline] |
TLine2D binary output.
Definition at line 2237 of file lightweight_geom_data.h.
References mrpt::math::TLine2D::coefs.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TPoint2D & | o | |||
| ) |
TPoint2D binary output.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TPose2D & | o | |||
| ) |
TPose2D binary output.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TPoint3D & | o | |||
| ) |
TPoint3D binary output.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TSegment2D & | s | |||
| ) | [inline] |
TSegment2D binary output.
Definition at line 2224 of file lightweight_geom_data.h.
References mrpt::math::TSegment2D::point1, and mrpt::math::TSegment2D::point2.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const CMatrixFixedNumeric< double, NROWS, NCOLS > & | M | |||
| ) |
Write operator for writing into a CStream.
The format is compatible with that of CMatrix & CMatrixD
Definition at line 80 of file ops_matrices.h.
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TLine3D & | l | |||
| ) | [inline] |
TLine3D binary output.
Definition at line 2272 of file lightweight_geom_data.h.
References mrpt::math::TLine3D::director, and mrpt::math::TLine3D::pBase.
| std::ostream& mrpt::math::operator<< | ( | std::ostream & | ostrm, | |
| const CArray< T, N > & | a | |||
| ) |
| mrpt::utils::CStream& mrpt::math::operator<< | ( | mrpt::utils::CStream & | out, | |
| const mrpt::math::TPlane & | p | |||
| ) | [inline] |
TPlane binary output.
Definition at line 2285 of file lightweight_geom_data.h.
References mrpt::math::TPlane::coefs.
| bool mrpt::math::operator<= | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
| bool mrpt::math::operator== | ( | const TPoint3D & | p1, | |
| const TPoint3D & | p2 | |||
| ) | [inline] |
Exact comparison between 3D points.
Definition at line 479 of file lightweight_geom_data.h.
References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
| bool mrpt::math::operator== | ( | const TSegment3D & | s1, | |
| const TSegment3D & | s2 | |||
| ) | [inline] |
Definition at line 661 of file lightweight_geom_data.h.
References mrpt::math::TSegment3D::point1, and mrpt::math::TSegment3D::point2.
| bool mrpt::math::operator== | ( | const TSegment2D & | s1, | |
| const TSegment2D & | s2 | |||
| ) | [inline] |
Definition at line 653 of file lightweight_geom_data.h.
References mrpt::math::TSegment2D::point1, and mrpt::math::TSegment2D::point2.
| bool mrpt::math::operator== | ( | const TPose3D & | p1, | |
| const TPose3D & | p2 | |||
| ) | [inline] |
Exact comparison between 3D poses, taking possible cycles into account.
Definition at line 503 of file lightweight_geom_data.h.
References mrpt::math::TPose3D::pitch, mrpt::math::TPose3D::roll, wrapTo2Pi(), mrpt::math::TPose3D::x, mrpt::math::TPose3D::y, mrpt::math::TPose3D::yaw, and mrpt::math::TPose3D::z.
| bool mrpt::math::operator== | ( | const TPose2D & | p1, | |
| const TPose2D & | p2 | |||
| ) | [inline] |
Exact comparison between 2D poses, taking possible cycles into account.
Definition at line 491 of file lightweight_geom_data.h.
References mrpt::math::TPose2D::phi, wrapTo2Pi(), mrpt::math::TPose2D::x, and mrpt::math::TPose2D::y.
| bool mrpt::math::operator== | ( | const CMatrixFixedNumeric< T, NROWS, NCOLS > & | M1, | |
| const CMatrixFixedNumeric< T, NROWS, NCOLS > & | M2 | |||
| ) |
Equal comparison (==).
Definition at line 88 of file ops_matrices.h.
References mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::get_unsafe().
| bool mrpt::math::operator== | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
Definition at line 286 of file CArray.h.
References mrpt::math::CArray< T, N >::begin(), and mrpt::math::CArray< T, N >::end().
| bool mrpt::math::operator== | ( | const TPoint2D & | p1, | |
| const TPoint2D & | p2 | |||
| ) | [inline] |
Exact comparison between 2D points.
Definition at line 467 of file lightweight_geom_data.h.
References mrpt::math::TPoint2D::x, and mrpt::math::TPoint2D::y.
| bool mrpt::math::operator> | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
| bool mrpt::math::operator>= | ( | const CArray< T, N > & | x, | |
| const CArray< T, N > & | y | |||
| ) |
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TLine2D & | l | |||
| ) | [inline] |
TLine2D binary input.
Definition at line 2231 of file lightweight_geom_data.h.
References mrpt::math::TLine2D::coefs.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| CMatrixFixedNumeric< double, NROWS, NCOLS > & | M | |||
| ) |
Read operator from a CStream.
The format is compatible with that of CMatrix & CMatrixD
Definition at line 64 of file ops_matrices.h.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TObject2D & | o | |||
| ) |
TObject2D binary input.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TObject3D & | o | |||
| ) |
TObject3D binary input.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TSegment2D & | s | |||
| ) | [inline] |
TSegment2D binary input.
Definition at line 2218 of file lightweight_geom_data.h.
References mrpt::math::TSegment2D::point1, and mrpt::math::TSegment2D::point2.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TSegment3D & | s | |||
| ) | [inline] |
TSegment3D binary input.
Definition at line 2253 of file lightweight_geom_data.h.
References mrpt::math::TSegment3D::point1, and mrpt::math::TSegment3D::point2.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TLine3D & | l | |||
| ) | [inline] |
TLine3D binary input.
Definition at line 2266 of file lightweight_geom_data.h.
References mrpt::math::TLine3D::director, and mrpt::math::TLine3D::pBase.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TPose2D & | o | |||
| ) |
TPose2D binary input.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| CMatrixFixedNumeric< float, NROWS, NCOLS > & | M | |||
| ) |
Read operator from a CStream.
The format is compatible with that of CMatrix & CMatrixD
Definition at line 56 of file ops_matrices.h.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TPoint2D & | o | |||
| ) |
TPoint2D binary input.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TPose3D & | o | |||
| ) |
TPose3D binary input.
| MRPTDLLIMPEXP mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TPoint3D & | o | |||
| ) |
TPoint3D binary input.
| mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, | |
| mrpt::math::TPlane & | p | |||
| ) | [inline] |
TPlane binary input.
Definition at line 2279 of file lightweight_geom_data.h.
References mrpt::math::TPlane::coefs.
| CMatrixTemplateNumeric<T> mrpt::math::operator^ | ( | const CMatrixTemplateNumeric< T > & | m, | |
| const unsigned int | pow | |||
| ) | [inline] |
binary power operator
Definition at line 1001 of file ops_matrices.h.
| bool MRPTDLLIMPEXP mrpt::math::pointIntoPolygon2D | ( | const double & | px, | |
| const double & | py, | |||
| unsigned int | polyEdges, | |||
| const double * | poly_xs, | |||
| const double * | poly_ys | |||
| ) |
Returns true if the 2D point (px,py) falls INTO the given polygon.
| bool mrpt::math::pointIntoQuadrangle | ( | T | x, | |
| T | y, | |||
| T | v1x, | |||
| T | v1y, | |||
| T | v2x, | |||
| T | v2y, | |||
| T | v3x, | |||
| T | v3y, | |||
| T | v4x, | |||
| T | v4y | |||
| ) |
Specialized method to check whether a point (x,y) falls into a quadrangle.
Definition at line 929 of file geometry.h.
References mrpt::utils::sign(), and wrapToPi().
| void mrpt::math::productIntegralAndMahalanobisTwoGaussians | ( | const VECLIKE & | mean_diffs, | |
| const MATLIKE1 & | COV1, | |||
| const MATLIKE2 & | COV2, | |||
| T & | maha2_out, | |||
| T & | intprod_out, | |||
| const MATLIKE1 * | CROSS_COV12 = NULL | |||
| ) |
Computes both, the integral of the product of two Gaussians and their square Mahalanobis distance.
Definition at line 1046 of file math/utils.h.
| T mrpt::math::productIntegralTwoGaussians | ( | const std::vector< T > & | mean_diffs, | |
| const CMatrixTemplateNumeric< T > & | COV1, | |||
| const CMatrixTemplateNumeric< T > & | COV2 | |||
| ) |
Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".
Definition at line 1001 of file math/utils.h.
References ASSERT_, mrpt::math::CMatrixTemplateNumeric< T >::det(), mrpt::math::CMatrixTemplateNumeric< T >::inv_fast(), and M_2PI.
| T mrpt::math::productIntegralTwoGaussians | ( | const std::vector< T > & | mean_diffs, | |
| const CMatrixFixedNumeric< T, DIM, DIM > & | COV1, | |||
| const CMatrixFixedNumeric< T, DIM, DIM > & | COV2 | |||
| ) |
Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".
Definition at line 1024 of file math/utils.h.
References ASSERT_, mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::det(), M_2PI, and UNINITIALIZED_MATRIX.
| void mrpt::math::project2D | ( | const TSegment2D & | segment, | |
| const CPose2D & | newXpose, | |||
| TSegment2D & | newSegment | |||
| ) | [inline] |
Uses the given pose 2D to project a segment into a new base.
Definition at line 350 of file geometry.h.
References mrpt::math::TSegment2D::point1, mrpt::math::TSegment2D::point2, and project2D().
| void mrpt::math::project2D | ( | const TPoint2D & | point, | |
| const CPose2D & | newXpose, | |||
| TPoint2D & | newPoint | |||
| ) | [inline] |
Uses the given pose 2D to project a point into a new base.
Definition at line 344 of file geometry.h.
References mrpt::poses::CPoint2D.
Referenced by project2D().
| void mrpt::math::project2D | ( | const std::vector< T > & | objs, | |
| const CPose2D & | newXpose, | |||
| std::vector< T > & | newObjs | |||
| ) |
Projects a set of 2D objects into the line's base.
Definition at line 389 of file geometry.h.
References project2D().
| void mrpt::math::project2D | ( | const T & | obj, | |
| const TLine2D & | newXLine, | |||
| T & | newObj | |||
| ) |
Projects any 2D object into the line's base, using its inverse pose.
If the object is exactly inside the line, this projection will zero its Y coordinate.
Definition at line 371 of file geometry.h.
References mrpt::poses::CPose2D, mrpt::math::TLine2D::getAsPose2D(), and project2D().
| void MRPTDLLIMPEXP mrpt::math::project2D | ( | const TLine2D & | line, | |
| const CPose2D & | newXpose, | |||
| TLine2D & | newLine | |||
| ) |
Uses the given pose 2D to project a line into a new base.
| void MRPTDLLIMPEXP mrpt::math::project2D | ( | const TObject2D & | object, | |
| const CPose2D & | newXpose, | |||
| TObject2D & | newObject | |||
| ) |
Uses the given pose 2D to project any 2D object into a new base.
| void MRPTDLLIMPEXP mrpt::math::project2D | ( | const TPolygon2D & | polygon, | |
| const CPose2D & | newXpose, | |||
| TPolygon2D & | newPolygon | |||
| ) |
Uses the given pose 2D to project a polygon into a new base.
| void mrpt::math::project2D | ( | const T & | obj, | |
| const TLine2D & | newXLine, | |||
| const TPoint2D & | newOrigin, | |||
| T & | newObj | |||
| ) |
Projects any 2D object into the line's base, using its inverse pose and forcing the position of the new coordinate origin.
If the object is exactly inside the line, this projection will zero its Y coordinate.
Definition at line 380 of file geometry.h.
References mrpt::poses::CPose2D, mrpt::math::TLine2D::getAsPose2DForcingOrigin(), and project2D().
| void mrpt::math::project3D | ( | const T & | obj, | |
| const TPlane & | newXYPlane, | |||
| T & | newObj | |||
| ) |
Projects any 3D object into the plane's base, using its inverse pose.
If the object is exactly inside the plane, this projection will zero its Z coordinates.
Definition at line 316 of file geometry.h.
References project3D().
| void MRPTDLLIMPEXP mrpt::math::project3D | ( | const TObject3D & | object, | |
| const CPose3D & | newXYPose, | |||
| TObject3D & | newObject | |||
| ) |
Uses the given pose 3D to project any 3D object into a new base.
| void mrpt::math::project3D | ( | const T & | obj, | |
| const TPlane & | newXYPlane, | |||
| const TPoint3D & | newOrigin, | |||
| T & | newObj | |||
| ) |
Projects any 3D object into the plane's base, using its inverse pose and forcing the position of the new coordinates origin.
If the object is exactly inside the plane, this projection will zero its Z coordinates.
Definition at line 325 of file geometry.h.
References project3D().
| void mrpt::math::project3D | ( | const std::vector< T > & | objs, | |
| const CPose3D & | newXYpose, | |||
| std::vector< T > & | newObjs | |||
| ) |
Projects a set of 3D objects into the plane's base.
Definition at line 335 of file geometry.h.
References project3D().
| void mrpt::math::project3D | ( | const TPoint3D & | point, | |
| const CPose3D & | newXYpose, | |||
| TPoint3D & | newPoint | |||
| ) | [inline] |
Uses the given pose 3D to project a point into a new base.
Definition at line 286 of file geometry.h.
References mrpt::poses::CPose3D::composePoint(), mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
Referenced by project3D().
| void MRPTDLLIMPEXP mrpt::math::project3D | ( | const TPlane & | plane, | |
| const CPose3D & | newXYpose, | |||
| TPlane & | newPlane | |||
| ) |
Uses the given pose 3D to project a plane into a new base.
| void MRPTDLLIMPEXP mrpt::math::project3D | ( | const TLine3D & | line, | |
| const CPose3D & | newXYpose, | |||
| TLine3D & | newLine | |||
| ) |
Uses the given pose 3D to project a line into a new base.
| void MRPTDLLIMPEXP mrpt::math::project3D | ( | const TPolygon3D & | polygon, | |
| const CPose3D & | newXYpose, | |||
| TPolygon3D & | newPolygon | |||
| ) |
Uses the given pose 3D to project a polygon into a new base.
| void mrpt::math::project3D | ( | const TSegment3D & | segment, | |
| const CPose3D & | newXYpose, | |||
| TSegment3D & | newSegment | |||
| ) | [inline] |
Uses the given pose 3D to project a segment into a new base.
Definition at line 292 of file geometry.h.
References mrpt::math::TSegment3D::point1, mrpt::math::TSegment3D::point2, and project3D().
| void MRPTDLLIMPEXP mrpt::math::qr_decomposition | ( | CMatrixTemplateNumeric< T > & | A, | |
| CMatrixTemplateNumeric< T > & | R, | |||
| CMatrixTemplateNumeric< T > & | Q, | |||
| CVectorTemplate< T > & | c, | |||
| int & | sing | |||
| ) |
Matrix QR decomposition.
A = QR, where R is upper triangular and Q is orthogonal, that is, ~QQ = 1 If A is a LxM dimension matrix, this function only return the LxL upper triangular matrix R instead of LxM pseudo-upper triangular matrix (been L<=M) This function has been extracted from "Numerical Recipes in C". /param A is the original matrix to decompose /param c,Q. The orthogonal matrix Q is represented as a product of n-1 Householder matrices Q1,...Qn-1, where Qj = 1 - u[j] x u[j]/c[j] The i'th component of u[j] is zero for i = 1,...,j-1 while the nonzero components are returned in Q(i,j) for i=j,...,n /param R is the upper triangular matrix /param sign returns as true (1) is singularity is encountered during the decomposition, but the decomposition is still complete in this case; otherwise it returns false (0)
| void MRPTDLLIMPEXP mrpt::math::ransac_detect_2D_lines | ( | const std::vector< NUMTYPE > & | x, | |
| const std::vector< NUMTYPE > & | y, | |||
| std::vector< std::pair< size_t, TLine2D > > & | out_detected_lines, | |||
| const double | threshold, | |||
| const size_t | min_inliers_for_valid_line = 5 | |||
| ) |
Fit a number of 2-D lines to a given point cloud, automatically determining the number of existing lines by means of the provided threshold and minimum number of supporting inliers.
| out_detected_lines | The output list of pairs: number of supporting inliers, detected line. | |
| threshold | The maximum distance between a point and a temptative line such as the point is considered an inlier. | |
| min_inliers_for_valid_line | The minimum number of supporting inliers to consider a line as valid. |
| void MRPTDLLIMPEXP mrpt::math::ransac_detect_3D_planes | ( | const std::vector< NUMTYPE > & | x, | |
| const std::vector< NUMTYPE > & | y, | |||
| const std::vector< NUMTYPE > & | z, | |||
| std::vector< std::pair< size_t, TPlane > > & | out_detected_planes, | |||
| const double | threshold, | |||
| const size_t | min_inliers_for_valid_plane = 10 | |||
| ) |
Fit a number of 3-D planes to a given point cloud, automatically determining the number of existing planes by means of the provided threshold and minimum number of supporting inliers.
| out_detected_planes | The output list of pairs: number of supporting inliers, detected plane. | |
| threshold | The maximum distance between a point and a temptative plane such as the point is considered an inlier. | |
| min_inliers_for_valid_plane | The minimum number of supporting inliers to consider a plane as valid. |
| void MRPTDLLIMPEXP mrpt::math::ransac_detect_3D_planes | ( | const mrpt::slam::CPointsMap * | points_map, | |
| std::vector< std::pair< size_t, TPlane > > & | out_detected_planes, | |||
| const double | threshold, | |||
| const size_t | min_inliers_for_valid_plane = 10 | |||
| ) |
Fit a number of 3-D planes to a given point cloud, automatically determining the number of existing planes by means of the provided threshold and minimum number of supporting inliers.
| out_detected_planes | The output list of pairs: number of supporting inliers, detected plane. | |
| threshold | The maximum distance between a point and a temptative plane such as the point is considered an inlier. | |
| min_inliers_for_valid_plane | The minimum number of supporting inliers to consider a plane as valid. |
| bool MRPTDLLIMPEXP mrpt::math::RectanglesIntersection | ( | const double & | R1_x_min, | |
| const double & | R1_x_max, | |||
| const double & | R1_y_min, | |||
| const double & | R1_y_max, | |||
| const double & | R2_x_min, | |||
| const double & | R2_x_max, | |||
| const double & | R2_y_min, | |||
| const double & | R2_y_max, | |||
| const double & | R2_pose_x, | |||
| const double & | R2_pose_y, | |||
| const double & | R2_pose_phi | |||
| ) |
Returns wether two rotated rectangles intersect.
The first rectangle is not rotated and given by (R1_x_min,R1_x_max)-(R1_y_min,R1_y_max). The second rectangle is given is a similar way, but it is internally rotated according to the given coordinates translation (R2_pose_x,R2_pose_y,R2_pose_phi(radians)), relative to the coordinates system of rectangle 1.
| mrpt::math::RET_MAT_ASSERT_MRPTMATRIX | ( | MATRIX | ) | const [inline] |
Unary inversion operator.
Definition at line 1024 of file ops_matrices.h.
References UNINITIALIZED_MATRIX.
| mrpt::math::RET_TYPE_ASSERT_MRPTMATRIX | ( | MATRIX | , | |
| std::ostream | ||||
| ) |
Textual output stream function.
Use only for text output, for example: "std::cout << mat;"
Definition at line 101 of file ops_matrices.h.
| mrpt::math::RET_VOID_ASSERT_MRPTMATRICES | ( | MATRIXLIKE1 | , | |
| MATRIXLIKE2 | ||||
| ) | const |
Efficiently compute the inverse of a 4x4 homogeneous matrix by only transposing the rotation 3x3 part and solving the translation with dot products.
This is a generic template which works with: MATRIXLIKE: CMatrixTemplateNumeric, CMatrixFixedNumeric
| T mrpt::math::round2up | ( | T | val | ) |
Round up to the nearest power of two of a given number.
Definition at line 455 of file math/utils.h.
References THROW_EXCEPTION.
| T mrpt::math::round_10power | ( | T | val, | |
| int | power10 | |||
| ) |
Round a decimal number up to the given 10'th power (eg, to 1000,100,10, and also fractions) power10 means round up to: 1 -> 10, 2 -> 100, 3 -> 1000, ...
-1 -> 0.1, -2 -> 0.01, ...
Definition at line 471 of file math/utils.h.
References mrpt::utils::round_long().
| bool MRPTDLLIMPEXP mrpt::math::SegmentsIntersection | ( | const double & | x1, | |
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| const double & | x3, | |||
| const double & | y3, | |||
| const double & | x4, | |||
| const double & | y4, | |||
| double & | ix, | |||
| double & | iy | |||
| ) |
Returns the intersection point, and if it exists, between two segments.
| bool MRPTDLLIMPEXP mrpt::math::SegmentsIntersection | ( | const double & | x1, | |
| const double & | y1, | |||
| const double & | x2, | |||
| const double & | y2, | |||
| const double & | x3, | |||
| const double & | y3, | |||
| const double & | x4, | |||
| const double & | y4, | |||
| float & | ix, | |||
| float & | iy | |||
| ) |
Returns the intersection point, and if it exists, between two segments.
| std::vector<T> mrpt::math::sequence | ( | T | first, | |
| size_t | length | |||
| ) | [inline] |
Generates a sequence of values [first,first+STEP,first+2*STEP,...].
Definition at line 119 of file math/utils.h.
| void mrpt::math::setEpsilon | ( | double | nE | ) | [inline] |
Changes the value of the geometric epsilon.
Definition at line 700 of file geometry.h.
References geometryEpsilon.
| size_t mrpt::math::size | ( | const MATRIXLIKE & | m, | |
| int | dim | |||
| ) | [inline] |
Returns the size of the matrix in the i'th dimension: 1=rows, 2=columns (MATLAB-compatible function)
Definition at line 570 of file utils_defs.h.
References THROW_EXCEPTION_CUSTOM_MSG1.
Referenced by mrpt::math::CVectorTemplate< KFTYPE >::abs(), mrpt::math::CVectorTemplate< KFTYPE >::deconcatenate(), mrpt::math::CVectorTemplate< KFTYPE >::extract_array(), mrpt::math::CVectorTemplate< KFTYPE >::extract_vector(), mrpt::math::CVectorTemplate< KFTYPE >::find_max(), mrpt::math::CVectorTemplate< KFTYPE >::find_min(), mrpt::math::CVectorTemplate< KFTYPE >::find_min_max(), mrpt::poses::CPose3D::fromString(), mrpt::poses::CPose2D::fromString(), mrpt::poses::CPoint3D::fromString(), mrpt::poses::CPoint2D::fromString(), mrpt::vision::CMatchedFeatureList::get_type(), mrpt::vision::CFeatureList::get_type(), mrpt::math::CPolygon::GetVertex_x(), mrpt::math::CPolygon::GetVertex_y(), mrpt::vision::CFeature::TDescriptors::hasDescriptorLogPolarImg(), mrpt::vision::CFeature::TDescriptors::hasDescriptorPolarImg(), mrpt::math::CVectorTemplate< KFTYPE >::insert_array(), mrpt::math::CVectorTemplate< KFTYPE >::insert_vector(), KLD_Gaussians(), mrpt::math::CVectorTemplate< KFTYPE >::likeMatrix(), mahalanobisDistance2(), mrpt::math::CVectorTemplate< KFTYPE >::mean(), mrpt::math::detail::multiply_HCHt_scalar(), mrpt::math::CVectorTemplate< KFTYPE >::operator*(), mrpt::math::CVectorTemplate< KFTYPE >::operator+(), mrpt::math::CVectorTemplate< KFTYPE >::operator+=(), mrpt::math::CVectorTemplate< KFTYPE >::operator-(), mrpt::math::CVectorTemplate< KFTYPE >::operator/(), mrpt::math::CVectorTemplate< KFTYPE >::operator~(), mrpt::slam::PF_implementation< PARTICLE_TYPE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), mrpt::math::CVectorTemplate< KFTYPE >::saveToTextFile(), mrpt::math::detail::trace(), and mrpt::math::CPolygon::verticesCount().
| double MRPTDLLIMPEXP mrpt::math::spline | ( | const double | t, | |
| const std::vector< double > & | x, | |||
| const std::vector< double > & | y, | |||
| bool | wrap2pi = false | |||
| ) |
Interpolates the value of a function in a point "t" given 4 SORTED points where "t" is between the two middle points If wrap2pi is true, output "y" values are wrapped to ]-pi,pi] (It is assumed that input "y" values already are in the correct range).
| bool MRPTDLLIMPEXP mrpt::math::splitInConvexComponents | ( | const TPolygon3D & | poly, | |
| vector< TPolygon3D > & | components | |||
| ) |
Splits a 3D polygon into convex components.
| std::logic_error | if the polygon can't be fit into a plane. |
| bool MRPTDLLIMPEXP mrpt::math::splitInConvexComponents | ( | const TPolygon2D & | poly, | |
| vector< TPolygon2D > & | components | |||
| ) |
Splits a 2D polygon into convex components.
| CONTAINER::value_type mrpt::math::squareNorm | ( | const CONTAINER & | v | ) |
| double mrpt::math::stddev | ( | const VECTORLIKE & | v, | |
| bool | unbiased = true | |||
| ) |
| CONTAINER::value_type mrpt::math::sum | ( | const CONTAINER & | v | ) | [inline] |
| bool MRPTDLLIMPEXP mrpt::math::traceRay | ( | const vector< TPolygonWithPlane > & | vec, | |
| const mrpt::poses::CPose3D & | pose, | |||
| double & | dist | |||
| ) |
Fast ray tracing method using polygons' properties.
Referenced by traceRay().
| bool mrpt::math::traceRay | ( | const vector< TPolygon3D > & | vec, | |
| const mrpt::poses::CPose3D & | pose, | |||
| double & | dist | |||
| ) | [inline] |
Fast ray tracing method using polygons' properties.
Definition at line 750 of file geometry.h.
References mrpt::math::TPolygonWithPlane::getPlanes(), and traceRay().
| void mrpt::math::unwrap2PiSequence | ( | vector_double & | x | ) |
Modify a sequence of angle values such as no consecutive values have a jump larger than PI in absolute value.
| void MRPTDLLIMPEXP mrpt::math::UpdateCholesky | ( | CMatrixTemplateNumeric< T > & | chol, | |
| CVectorTemplate< T > & | r1Modification | |||
| ) |
If R = CHOL(A) is the original Cholesky factorization of A, then R1 = CHOLUPDATE(R,X) returns the upper triangular Cholesky factor of A + X*X', where X is a column vector of appropriate length.
| bool mrpt::math::vectorsAreParallel2D | ( | const T & | v1, | |
| const U & | v2 | |||
| ) | [inline] |
Returns true if two 2D vectors are parallel.
The arguments may be points, arrays, etc.
Definition at line 802 of file geometry.h.
References geometryEpsilon.
| bool mrpt::math::vectorsAreParallel3D | ( | const T & | v1, | |
| const U & | v2 | |||
| ) | [inline] |
Returns true if two 3D vectors are parallel.
The arguments may be points, arrays, etc.
Definition at line 810 of file geometry.h.
References geometryEpsilon.
| void mrpt::math::weightedHistogram | ( | const VECTORLIKE1 & | values, | |
| const VECTORLIKE1 & | weights, | |||
| float | binWidth, | |||
| VECTORLIKE2 & | out_binCenters, | |||
| VECTORLIKE2 & | out_binValues | |||
| ) |
Computes the weighted histogram for a vector of values and their corresponding weights.
| values | [IN] The N values | |
| weights | [IN] The weights for the corresponding N values (don't need to be normalized) | |
| binWidth | [IN] The desired width of the bins | |
| out_binCenters | [OUT] The centers of the M bins generated to cover from the minimum to the maximum value of "values" with the given "binWidth" | |
| out_binValues | [OUT] The ratio of values at each given bin, such as the whole vector sums up the unity. |
Definition at line 299 of file math/utils.h.
References ASSERT_, ASSERTDEB_, maximum(), minimum(), and mrpt::utils::round().
| void mrpt::math::weightedHistogramLog | ( | const VECTORLIKE1 & | values, | |
| const VECTORLIKE1 & | log_weights, | |||
| float | binWidth, | |||
| VECTORLIKE2 & | out_binCenters, | |||
| VECTORLIKE2 & | out_binValues | |||
| ) |
Computes the weighted histogram for a vector of values and their corresponding log-weights.
| values | [IN] The N values | |
| weights | [IN] The log-weights for the corresponding N values (don't need to be normalized) | |
| binWidth | [IN] The desired width of the bins | |
| out_binCenters | [OUT] The centers of the M bins generated to cover from the minimum to the maximum value of "values" with the given "binWidth" | |
| out_binValues | [OUT] The ratio of values at each given bin, such as the whole vector sums up the unity. |
Definition at line 353 of file math/utils.h.
References ASSERT_, ASSERTDEB_, maximum(), minimum(), and mrpt::utils::round().
| T mrpt::math::wrapTo2Pi | ( | T | a | ) |
Modifies the given angle to translate it into the [0,2pi[ range.
Definition at line 426 of file math/utils.h.
References wrapTo2PiInPlace().
Referenced by operator!=(), operator==(), and wrapToPi().
| void mrpt::math::wrapTo2PiInPlace | ( | T & | a | ) |
Modifies the given angle to translate it into the [0,2pi[ range.
Definition at line 414 of file math/utils.h.
References M_2PI.
Referenced by wrapTo2Pi().
| T mrpt::math::wrapToPi | ( | T | a | ) |
Modifies the given angle to translate it into the ]-pi,pi] range.
Definition at line 437 of file math/utils.h.
References M_PI, and wrapTo2Pi().
Referenced by leastSquareLinearFit(), pointIntoQuadrangle(), and wrapToPiInPlace().
| void mrpt::math::wrapToPiInPlace | ( | T & | a | ) |
Modifies the given angle to translate it into the ]-pi,pi] range.
Definition at line 447 of file math/utils.h.
References wrapToPi().
| std::vector<T> mrpt::math::zeros | ( | size_t | count | ) |
Generates a vector of all zeros of the given length.
Definition at line 137 of file math/utils.h.
Referenced by mrpt::math::CMatrixFixedNumeric< float, 4, 4 >::zeros().
| class MRPTDLLIMPEXP mrpt::math::CMatrix |
Definition at line 88 of file math_frwds.h.
| class MRPTDLLIMPEXP mrpt::math::CMatrixD |
Definition at line 89 of file math_frwds.h.
Referenced by mrpt::utils::CProbabilityDensityFunction< CPose2D, 3 >::MRPT_DECLARE_DEPRECATED_FUNCTION().
| class MRPTDLLIMPEXP mrpt::math::CMatrixTemplateNumeric |
Definition at line 79 of file math_frwds.h.
| const unsigned char mrpt::math::GEOMETRIC_TYPE_LINE = 2 |
Object type identifier for TLine2D or TLine3D.
Definition at line 1104 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::generate2DObject(), mrpt::math::TObject3D::isLine(), mrpt::math::TObject2D::isLine(), mrpt::math::TObject3D::operator=(), and mrpt::math::TObject2D::operator=().
| const unsigned char mrpt::math::GEOMETRIC_TYPE_PLANE = 4 |
Object type identifier for TPlane.
Definition at line 1114 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::generate2DObject(), mrpt::math::TObject3D::isPlane(), and mrpt::math::TObject3D::operator=().
| const unsigned char mrpt::math::GEOMETRIC_TYPE_POINT = 0 |
Object type identifier for TPoint2D or TPoint3D.
Definition at line 1094 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::generate2DObject(), mrpt::math::TObject3D::isPoint(), mrpt::math::TObject2D::isPoint(), mrpt::math::TObject3D::operator=(), and mrpt::math::TObject2D::operator=().
| const unsigned char mrpt::math::GEOMETRIC_TYPE_POLYGON = 3 |
Object type identifier for TPolygon2D or TPolygon3D.
Definition at line 1109 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::destroy(), mrpt::math::TObject2D::destroy(), mrpt::math::TObject3D::generate2DObject(), mrpt::math::TObject3D::isPolygon(), mrpt::math::TObject2D::isPolygon(), mrpt::math::TObject3D::operator=(), and mrpt::math::TObject2D::operator=().
| const unsigned char mrpt::math::GEOMETRIC_TYPE_SEGMENT = 1 |
Object type identifier for TSegment2D or TSegment3D.
Definition at line 1099 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::generate2DObject(), mrpt::math::TObject3D::isSegment(), mrpt::math::TObject2D::isSegment(), mrpt::math::TObject3D::operator=(), and mrpt::math::TObject2D::operator=().
| const unsigned char mrpt::math::GEOMETRIC_TYPE_UNDEFINED = 255 |
Object type identifier for empty TObject2D or TObject3D.
Definition at line 1119 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::destroy(), mrpt::math::TObject2D::destroy(), and mrpt::math::TObject3D::operator=().
| double mrpt::math::geometryEpsilon |
Global epsilon to overcome small precision errors.
Referenced by getEpsilon(), setEpsilon(), vectorsAreParallel2D(), and vectorsAreParallel3D().
| struct MRPTDLLIMPEXP mrpt::math::TLine3D |
Definition at line 514 of file lightweight_geom_data.h.
| struct MRPTDLLIMPEXP mrpt::math::TObject3D |
Definition at line 516 of file lightweight_geom_data.h.
| class MRPTDLLIMPEXP mrpt::math::TPolygon3D |
Definition at line 515 of file lightweight_geom_data.h.
Referenced by mrpt::math::TObject3D::operator=(), and mrpt::math::TObject3D::TObject3D().
| struct MRPTDLLIMPEXP mrpt::math::TSegment3D |
Definition at line 513 of file lightweight_geom_data.h.
Referenced by mrpt::opengl::CSetOfLines::appendLine(), and mrpt::opengl::CSetOfLines::setLineByIndex().
| Page generated by Doxygen 1.7.1 for MRPT 0.8.1 SVN:exported at Sun Sep 19 14:53:45 UTC 2010 |