This base provides a set of functions for maths stuff.
Namespaces | |
detail | |
jacobians | |
A collection of functions to compute jacobians of diverse transformations, etc (some functions are redirections to existing methods elsewhere, so this namespace is actually used with grouping purposes). | |
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 | CArrayDouble |
A partial specialization of CArrayNumeric for double numbers. More... | |
class | CArrayFloat |
A partial specialization of CArrayNumeric for float numbers. More... | |
class | CArrayInt |
A partial specialization of CArrayNumeric for int numbers. More... | |
class | CArrayNumeric |
CArrayNumeric is an array for numeric types supporting several mathematical operations (actually, just a wrapper on Eigen::Matrix<T,N,1>) More... | |
class | CArrayUInt |
A partial specialization of CArrayNumeric for unsigned int numbers. More... | |
class | CBinaryRelation |
This class models a binary relation through the elements of any given set. 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 | 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 | CExceptionNotDefPos |
Used in mrpt::math::CSparseMatrix. 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... | |
struct | CMatrixBPtr |
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 | CMatrixD |
This class is a "CSerializable" wrapper for "CMatrixTemplateNumeric<double>". More... | |
struct | CMatrixDPtr |
class | CMatrixFixedNumeric |
A numeric matrix of compile-time fixed size. More... | |
struct | CMatrixPtr |
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 | 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 |
A matrix of dynamic size. More... | |
class | CMatrixTemplateObjects |
This template class extends the class "CMatrixTemplate" for storing "objects" at each matrix entry. More... | |
struct | CMatrixTemplateSize |
Auxiliary class used in CMatrixTemplate:size(), CMatrixTemplate::resize(), CMatrixFixedNumeric::size(), CMatrixFixedNumeric::resize(), to mimic the behavior of STL-containers. More... | |
class | CMonteCarlo |
Montecarlo simulation for experiments in 1D. More... | |
class | CPolygon |
A wrapper of a TPolygon2D class, implementing CSerializable. More... | |
struct | CPolygonPtr |
class | CQuaternion |
A quaternion, which can represent a 3D rotation as pair ![]() ![]() | |
class | CSparseMatrix |
A sparse matrix structure, wrapping T. 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... | |
struct | CSplineInterpolator1DPtr |
class | KDTreeCapable |
A generic adaptor class for providing Approximate Nearest Neighbors (ANN) (via the nanoflann library) to MRPT classses. More... | |
struct | MatrixBlockSparseCols |
A templated column-indexed efficient storage of block-sparse Jacobian or Hessian matrices, together with other arbitrary information. More... | |
class | ModelSearch |
Model search implementations: RANSAC and genetic algorithm. More... | |
class | RANSAC_Template |
A generic RANSAC implementation with models as matrices. More... | |
struct | TLine2D |
2D line without bounds, represented by its equation ![]() | |
struct | TLine3D |
3D line, represented by a base point and a director vector. More... | |
struct | TObject2D |
Standard type for storing any lightweight 2D type. More... | |
struct | TObject3D |
Standard object for storing any 3D lightweight object. More... | |
struct | TPlane |
3D Plane, represented by its equation ![]() | |
struct | TPoint2D |
Lightweight 2D point. More... | |
struct | TPoint3D |
Lightweight 3D point. More... | |
struct | TPoint3Df |
Lightweight 3D point (float version). More... | |
class | TPolygon2D |
2D polygon, inheriting from std::vector<TPoint2D>. More... | |
class | TPolygon3D |
3D polygon, inheriting from std::vector<TPoint3D> More... | |
class | TPolygonWithPlane |
Slightly heavyweight type to speed-up calculations with polygons in 3D. More... | |
struct | TPose2D |
Lightweight 2D pose. More... | |
struct | TPose3D |
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates). More... | |
struct | TPose3DQuat |
Lightweight 3D pose (three spatial coordinates, plus a quaternion ). More... | |
struct | TSegment2D |
2D segment, consisting of two points. More... | |
struct | TSegment3D |
3D segment, consisting of two points. More... | |
Typedefs | |
typedef CLevenbergMarquardtTempl< vector_double > | CLevenbergMarquardt |
The default name for the LM class is an instantiation for "double". More... | |
typedef CMatrixTemplateNumeric< float > | CMatrixFloat |
Declares a matrix of float numbers (non serializable). More... | |
typedef CMatrixTemplateNumeric< double > | CMatrixDouble |
Declares a matrix of double numbers (non serializable). More... | |
typedef CMatrixTemplateNumeric< unsigned int > | CMatrixUInt |
Declares a matrix of unsigned ints (non serializable). More... | |
typedef CMatrixTemplate< bool > | CMatrixBool |
Declares a matrix of booleans (non serializable). More... | |
typedef CMatrixTemplateNumeric< double > | CMatrixLongDouble |
Declares a matrix of "long doubles" (non serializable), or of "doubles" if the compiler does not support "long double". More... | |
typedef CQuaternion< double > | CQuaternionDouble |
A quaternion of data type "double". More... | |
typedef CQuaternion< float > | CQuaternionFloat |
A quaternion of data type "float". More... | |
typedef mrpt::vector_float | CVectorFloat |
This is just another name for mrpt::vector_float (Backward compatibility with MRPT <=0.9.2); for a complete introduction to Matrices and vectors in MRPT, see: http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes. More... | |
typedef mrpt::vector_double | CVectorDouble |
This is just another name for mrpt::vector_double (Backward compatibility with MRPT <=0.9.2); for a complete introduction to Matrices and vectors in MRPT, see: http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes. More... | |
typedef TPlane | TPlane3D |
typedef RANSAC_Template< double > | RANSAC |
The default instance of RANSAC, for double type. More... | |
Typedefs for common sizes | |
typedef CMatrixFixedNumeric< double, 2, 2 > | CMatrixDouble22 |
typedef CMatrixFixedNumeric< double, 2, 3 > | CMatrixDouble23 |
typedef CMatrixFixedNumeric< double, 3, 2 > | CMatrixDouble32 |
typedef CMatrixFixedNumeric< double, 3, 3 > | CMatrixDouble33 |
typedef CMatrixFixedNumeric< double, 4, 4 > | CMatrixDouble44 |
typedef CMatrixFixedNumeric< double, 6, 6 > | CMatrixDouble66 |
typedef CMatrixFixedNumeric< double, 7, 7 > | CMatrixDouble77 |
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< double, 7, 1 > | CMatrixDouble71 |
typedef CMatrixFixedNumeric< double, 1, 7 > | CMatrixDouble17 |
typedef CMatrixFixedNumeric< double, 5, 1 > | CMatrixDouble51 |
typedef CMatrixFixedNumeric< double, 1, 5 > | CMatrixDouble15 |
typedef CMatrixFixedNumeric< float, 2, 2 > | CMatrixFloat22 |
typedef CMatrixFixedNumeric< float, 2, 3 > | CMatrixFloat23 |
typedef CMatrixFixedNumeric< float, 3, 2 > | CMatrixFloat32 |
typedef CMatrixFixedNumeric< float, 3, 3 > | CMatrixFloat33 |
typedef CMatrixFixedNumeric< float, 4, 4 > | CMatrixFloat44 |
typedef CMatrixFixedNumeric< float, 6, 6 > | CMatrixFloat66 |
typedef CMatrixFixedNumeric< float, 7, 7 > | CMatrixFloat77 |
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 |
typedef CMatrixFixedNumeric< float, 7, 1 > | CMatrixFloat71 |
typedef CMatrixFixedNumeric< float, 1, 7 > | CMatrixFloat17 |
typedef CMatrixFixedNumeric< float, 5, 1 > | CMatrixFloat51 |
typedef CMatrixFixedNumeric< float, 1, 5 > | CMatrixFloat15 |
Enumerations | |
enum | TConstructorFlags_Quaternions { UNINITIALIZED_QUATERNION = 0 } |
enum | TMatrixTextFileFormat { MATRIX_FORMAT_ENG = 0, MATRIX_FORMAT_FIXED = 1, MATRIX_FORMAT_INT = 2 } |
enum | TConstructorFlags_Matrices { UNINITIALIZED_MATRIX = 0 } |
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes), if it's not required to fill it with zeros at the constructor to save time. More... | |
Functions | |
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) |
BASE_IMPEXP ::mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CMatrixPtr &pObj) |
::mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CMatrixBPtr &pObj) |
BASE_IMPEXP ::mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CMatrixDPtr &pObj) |
::mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CPolygonPtr &pObj) |
::mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, CSplineInterpolator1DPtr &pObj) |
double BASE_IMPEXP | normalPDF (double x, double mu, double std) |
Evaluates the univariate normal (Gaussian) distribution at a given point "x". More... | |
template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE > | |
MATRIXLIKE::Scalar | normalPDFInf (const VECTORLIKE1 &x, const VECTORLIKE2 &mu, const MATRIXLIKE &cov_inv, const bool scaled_pdf=false) |
Evaluates the multivariate normal (Gaussian) distribution at a given point "x". More... | |
template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE > | |
MATRIXLIKE::Scalar | normalPDF (const VECTORLIKE1 &x, const VECTORLIKE2 &mu, const MATRIXLIKE &cov, const bool scaled_pdf=false) |
Evaluates the multivariate normal (Gaussian) distribution at a given point "x". More... | |
template<typename VECTORLIKE , typename MATRIXLIKE > | |
MATRIXLIKE::Scalar | 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. More... | |
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. More... | |
double BASE_IMPEXP | erfc (const double x) |
The complementary error function of a Normal distribution. More... | |
double BASE_IMPEXP | erf (const double x) |
The error function of a Normal distribution. More... | |
double BASE_IMPEXP | normalQuantile (double p) |
Evaluates the Gaussian distribution quantile for the probability value p=[0,1]. More... | |
double BASE_IMPEXP | normalCDF (double p) |
Evaluates the Gaussian cumulative density function. More... | |
double BASE_IMPEXP | 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. More... | |
double BASE_IMPEXP | noncentralChi2CDF (unsigned int degreesOfFreedom, double noncentrality, double arg) |
double BASE_IMPEXP | chi2CDF (unsigned int degreesOfFreedom, double arg) |
double BASE_IMPEXP | chi2PDF (unsigned int degreesOfFreedom, double arg, double accuracy=1e-7) |
std::pair< double, double > BASE_IMPEXP | noncentralChi2PDF_CDF (unsigned int degreesOfFreedom, double noncentrality, double arg, double eps=1e-7) |
Returns the 'exact' PDF (first) and CDF (second) of a Non-central chi-squared probability distribution, using an iterative method. More... | |
template<typename CONTAINER > | |
void | confidenceIntervals (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. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | idft2_real (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_data) |
Compute the 2D inverse Discrete Fourier Transform (DFT) More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | idft2_complex (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_real, CMatrixFloat &out_imag) |
Compute the 2D inverse Discrete Fourier Transform (DFT). More... | |
void BASE_IMPEXP | cross_correlation_FFT (const CMatrixFloat &A, const CMatrixFloat &B, CMatrixFloat &out_corr) |
Correlation of two matrixes using 2D FFT. More... | |
std::ostream BASE_IMPEXP & | operator<< (std::ostream &o, const TPoint2D &p) |
std::ostream BASE_IMPEXP & | operator<< (std::ostream &o, const TPoint3D &p) |
std::ostream BASE_IMPEXP & | operator<< (std::ostream &o, const TPose2D &p) |
std::ostream BASE_IMPEXP & | operator<< (std::ostream &o, const TPose3D &p) |
std::ostream BASE_IMPEXP & | operator<< (std::ostream &o, const TPose3DQuat &p) |
TPoint3D | operator- (const TPoint3D &p1) |
Unary minus operator for 3D points. More... | |
bool | operator== (const TPoint2D &p1, const TPoint2D &p2) |
Exact comparison between 2D points. More... | |
bool | operator!= (const TPoint2D &p1, const TPoint2D &p2) |
Exact comparison between 2D points. More... | |
bool | operator== (const TPoint3D &p1, const TPoint3D &p2) |
Exact comparison between 3D points. More... | |
bool | operator!= (const TPoint3D &p1, const TPoint3D &p2) |
Exact comparison between 3D points. More... | |
bool | operator== (const TPose2D &p1, const TPose2D &p2) |
Exact comparison between 2D poses, taking possible cycles into account. More... | |
bool | operator!= (const TPose2D &p1, const TPose2D &p2) |
Exact comparison between 2D poses, taking possible cycles into account. More... | |
bool | operator== (const TPose3D &p1, const TPose3D &p2) |
Exact comparison between 3D poses, taking possible cycles into account. More... | |
bool | operator!= (const TPose3D &p1, const TPose3D &p2) |
Exact comparison between 3D poses, taking possible cycles into account. More... | |
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) |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPoint2D &o) |
TPoint2D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPoint2D &o) |
TPoint2D binary output. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPoint3D &o) |
TPoint3D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPoint3D &o) |
TPoint3D binary output. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPose2D &o) |
TPose2D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPose2D &o) |
TPose2D binary output. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPose3D &o) |
TPose3D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPose3D &o) |
TPose3D binary output. More... | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TSegment2D &s) |
TSegment2D binary input. More... | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TSegment2D &s) |
TSegment2D binary output. More... | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TLine2D &l) |
TLine2D binary input. More... | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TLine2D &l) |
TLine2D binary output. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TObject2D &o) |
TObject2D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TObject2D &o) |
TObject2D binary input. More... | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TSegment3D &s) |
TSegment3D binary input. More... | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TSegment3D &s) |
TSegment3D binary output. More... | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TLine3D &l) |
TLine3D binary input. More... | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TLine3D &l) |
TLine3D binary output. More... | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TPlane &p) |
TPlane binary input. More... | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TPlane &p) |
TPlane binary output. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &in, mrpt::math::TObject3D &o) |
TObject3D binary input. More... | |
BASE_IMPEXP mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &out, const mrpt::math::TObject3D &o) |
TObject3D binary output. More... | |
template<class CONTAINER1 , class CONTAINER2 > | |
void | cumsum (const CONTAINER1 &in_data, CONTAINER2 &out_cumsum) |
template<class CONTAINER > | |
CONTAINER::Scalar | norm (const CONTAINER &v) |
template<class CONTAINER > | |
CONTAINER::Scalar | norm_inf (const CONTAINER &v) |
template<class MAT_A , class SKEW_3VECTOR , class MAT_OUT > | |
void | multiply_A_skew3 (const MAT_A &A, const SKEW_3VECTOR &v, MAT_OUT &out) |
Only for vectors/arrays "v" of length3, compute out = A * Skew(v), where Skew(v) is the skew symmetric matric generated from v (see mrpt::math::skew_symmetric3) More... | |
template<class SKEW_3VECTOR , class MAT_A , class MAT_OUT > | |
void | multiply_skew3_A (const SKEW_3VECTOR &v, const MAT_A &A, MAT_OUT &out) |
Only for vectors/arrays "v" of length3, compute out = Skew(v) * A, where Skew(v) is the skew symmetric matric generated from v (see mrpt::math::skew_symmetric3) More... | |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const mrpt::poses::CPoint2D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const mrpt::poses::CPoint3D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const mrpt::poses::CPose2D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const mrpt::poses::CPose3D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const mrpt::poses::CPose3DQuat &p) |
template<class T > | |
T | wrapTo2Pi (T a) |
Modifies the given angle to translate it into the [0,2pi[ range. More... | |
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 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<class CONTAINER > | |
vector_double | histogram (const CONTAINER &v, double limit_min, double limit_max, size_t number_bins, bool do_normalization=false, vector_double *out_bin_centers=NULL) |
Computes the normalized or normal histogram of a sequence of numbers given the number of bins and the limits. More... | |
template<class CONTAINER1 , class CONTAINER2 , typename VALUE > | |
void | cumsum_tmpl (const CONTAINER1 &in_data, CONTAINER2 &out_cumsum) |
Computes the cumulative sum of all the elements, saving the result in another container. More... | |
template<class CONTAINER > | |
CONTAINER | cumsum (const CONTAINER &in_data) |
Computes the cumulative sum of all the elements. More... | |
template<class CONTAINER > | |
CONTAINER::Scalar | maximum (const CONTAINER &v) |
template<class CONTAINER > | |
CONTAINER::Scalar | minimum (const CONTAINER &v) |
template<typename T > | |
T | maximum (const std::vector< T > &v) |
template<typename T > | |
T | minimum (const std::vector< T > &v) |
template<class Derived > | |
const Eigen::MatrixBase< Derived >::AdjointReturnType | operator~ (const Eigen::MatrixBase< Derived > &m) |
Transpose operator for matrices. More... | |
template<class Derived > | |
Eigen::MatrixBase< Derived >::PlainObject | operator! (const Eigen::MatrixBase< Derived > &m) |
Unary inversion operator. More... | |
template<typename MAT_H , typename MAT_C , typename MAT_R > | |
void | multiply_HCHt (const MAT_H &H, const MAT_C &C, MAT_R &R, bool accumResultInOutput) |
R = H * C * H^t (with C symmetric) More... | |
template<typename VECTOR_H , typename MAT_C > | |
MAT_C::Scalar | multiply_HCHt_scalar (const VECTOR_H &H, const MAT_C &C) |
r (a scalar) = H * C * H^t (with a vector H and a symmetric matrix C) More... | |
template<typename MAT_H , typename MAT_C , typename MAT_R > | |
void | multiply_HtCH (const MAT_H &H, const MAT_C &C, MAT_R &R, bool accumResultInOutput) |
R = H^t * C * H (with C symmetric) More... | |
template<class MAT_IN , class VECTOR , class MAT_OUT > | |
void | meanAndCovMat (const MAT_IN &v, VECTOR &out_mean, MAT_OUT &out_cov) |
Computes the mean vector and covariance from a list of samples in an NxM matrix, where each row is a sample, so the covariance is MxM. More... | |
template<class MATRIX > | |
Eigen::Matrix< typename MATRIX::Scalar, MATRIX::ColsAtCompileTime, MATRIX::ColsAtCompileTime > | 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. More... | |
template<class T > | |
std::ostream & | operator<< (std::ostream &out, const std::vector< T > &d) |
A template function for printing out the contents of a std::vector variable. More... | |
template<class T > | |
std::ostream & | operator<< (std::ostream &out, std::vector< T > *d) |
A template function for printing out the contents of a std::vector variable. More... | |
template<typename T , size_t N> | |
mrpt::utils::CStream & | operator<< (mrpt::utils::CStream &ostrm, const CArrayNumeric< T, N > &a) |
Binary dump of a CArrayNumeric<T,N> to a stream. More... | |
template<typename T , size_t N> | |
mrpt::utils::CStream & | operator>> (mrpt::utils::CStream &istrm, CArrayNumeric< T, N > &a) |
Binary read of a CArrayNumeric<T,N> from a stream. More... | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | transform_gaussian_unscented (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const bool *elem_do_wrap2pi=NULL, const double alpha=1e-3, const double K=0, const double beta=2.0) |
Scaled unscented transformation (SUT) for estimating the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | transform_gaussian_montecarlo (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const size_t num_samples=1000, typename mrpt::aligned_containers< VECTORLIKE3 >::vector_t *out_samples_y=NULL) |
Simple Montecarlo-base estimation of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | transform_gaussian_linear (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const VECTORLIKE1 &x_increments) |
First order uncertainty propagation estimator of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
bool BASE_IMPEXP | loadVector (utils::CFileStream &f, std::vector< int > &d) |
Loads one row of a text file as a numerical std::vector. More... | |
bool BASE_IMPEXP | loadVector (utils::CFileStream &f, std::vector< double > &d) |
Loads one row of a text file as a numerical std::vector. More... | |
bool BASE_IMPEXP | isNaN (float f) MRPT_NO_THROWS |
Returns true if the number is NaN. More... | |
bool BASE_IMPEXP | isNaN (double f) MRPT_NO_THROWS |
Returns true if the number is NaN. More... | |
bool BASE_IMPEXP | isFinite (float f) MRPT_NO_THROWS |
Returns true if the number is non infinity. More... | |
bool BASE_IMPEXP | isFinite (double f) MRPT_NO_THROWS |
Returns true if the number is non infinity. More... | |
void BASE_IMPEXP | medianFilter (const std::vector< double > &inV, std::vector< double > &outV, const int &winSize, const int &numberOfSigmas=2) |
template<typename T , typename VECTOR > | |
void | linspace (T first, T last, size_t count, VECTOR &out_vector) |
Generates an equidistant sequence of numbers given the first one, the last one and the desired number of points. More... | |
template<class T > | |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | 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. More... | |
template<class T , T STEP> | |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | sequence (T first, size_t length) |
Generates a sequence of values [first,first+STEP,first+2*STEP,...]. More... | |
template<class T , T STEP> | |
std::vector< T > | sequenceStdVec (T first, size_t length) |
Generates a sequence of values [first,first+STEP,first+2*STEP,...]. More... | |
template<class T > | |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | ones (size_t count) |
Generates a vector of all ones of the given length. More... | |
template<class T > | |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | zeros (size_t count) |
Generates a vector of all zeros of the given length. More... | |
template<class T > | |
void | wrapTo2PiInPlace (T &a) |
Modifies the given angle to translate it into the [0,2pi[ range. More... | |
template<class T > | |
T | wrapToPi (T a) |
Modifies the given angle to translate it into the ]-pi,pi] range. More... | |
template<class T > | |
void | wrapToPiInPlace (T &a) |
Modifies the given angle to translate it into the ]-pi,pi] range. More... | |
template<class VEC1 , class VEC2 > | |
void | normalize (const VEC1 &v, VEC2 &out_v) |
Normalize a vector, such as its norm is the unity. More... | |
template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE , class VECTORLIKE2 , class VECTORLIKE3 > | |
void | covariancesAndMeanWeighted (const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const VECTORLIKE2 *weights_mean, const VECTORLIKE3 *weights_cov, const bool *elem_do_wrap2pi=NULL) |
Computes covariances and mean of any vector of containers, given optional weights for the different samples. More... | |
template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE > | |
void | covariancesAndMean (const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const bool *elem_do_wrap2pi=NULL) |
Computes covariances and mean of any vector of containers. More... | |
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. More... | |
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. More... | |
template<class VECTOR_OF_VECTORS , class VECTORLIKE > | |
void | extractColumnFromVectorOfVectors (const size_t colIndex, const VECTOR_OF_VECTORS &data, VECTORLIKE &out_column) |
Extract a column from a vector of vectors, and store it in another vector. More... | |
uint64_t BASE_IMPEXP | factorial64 (unsigned int n) |
Computes the factorial of an integer number and returns it as a 64-bit integer number. More... | |
double BASE_IMPEXP | 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). More... | |
template<class T > | |
T | round2up (T val) |
Round up to the nearest power of two of a given number. More... | |
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, ... More... | |
template<class T > | |
double | correlate_matrix (const CMatrixTemplateNumeric< T > &a1, const CMatrixTemplateNumeric< T > &a2) |
Calculate the correlation between two matrices (by AJOGD @ JAN-2007) More... | |
double BASE_IMPEXP | averageLogLikelihood (const vector_double &logLikelihoods) |
A numerically-stable method to compute average likelihood values with strongly different ranges (unweighted likelihoods: compute the arithmetic mean). More... | |
double BASE_IMPEXP | averageWrap2Pi (const vector_double &angles) |
Computes the average of a sequence of angles in radians taking into account the correct wrapping in the range ![]() ![]() | |
double BASE_IMPEXP | averageLogLikelihood (const vector_double &logWeights, const vector_double &logLikelihoods) |
A numerically-stable method to average likelihood values with strongly different ranges (weighted likelihoods). More... | |
std::string BASE_IMPEXP | MATLAB_plotCovariance2D (const CMatrixFloat &cov22, const vector_float &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). More... | |
std::string BASE_IMPEXP | MATLAB_plotCovariance2D (const CMatrixDouble &cov22, const vector_double &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 ('double' version). More... | |
template<class MATRIXLIKE1 , class MATRIXLIKE2 > | |
void | homogeneousMatrixInverse (const MATRIXLIKE1 &M, MATRIXLIKE2 &out_inverse_M) |
Efficiently compute the inverse of a 4x4 homogeneous matrix by only transposing the rotation 3x3 part and solving the translation with dot products. More... | |
template<class IN_ROTMATRIX , class IN_XYZ , class OUT_ROTMATRIX , class OUT_XYZ > | |
void | homogeneousMatrixInverse (const IN_ROTMATRIX &in_R, const IN_XYZ &in_xyz, OUT_ROTMATRIX &out_R, OUT_XYZ &out_xyz) |
template<class MATRIXLIKE > | |
void | homogeneousMatrixInverse (MATRIXLIKE &M) |
template<class VECTORLIKE , class VECTORLIKE2 , 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) |
Estimate the Jacobian of a multi-dimensional function around a point "x", using finite differences of a given size in each input dimension. More... | |
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). More... | |
template<typename Derived , typename At , size_t N> | |
Eigen::EigenBase< Derived > & | loadVector (Eigen::EigenBase< Derived > &v, At(&theArray)[N]) |
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. More... | |
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. More... | |
template<class T , class VECTOR > | |
T | interpolate (const T &x, const VECTOR &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". More... | |
double BASE_IMPEXP | 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). More... | |
double BASE_IMPEXP | spline (const double t, const vector_double &x, const 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). More... | |
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". More... | |
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". More... | |
template<class TRIPLET > | |
bool | saveEigenSparseTripletsToFile (const std::string &sFile, std::vector< TRIPLET > &tri) |
Saves to a plain-text file the nonzero entries of a Eigen sparse matrix, represented as a vector of triplets. More... | |
template<class MATRIXLIKE > | |
size_t | size (const MATRIXLIKE &m, int dim) |
Simple intersection operations, relying basically on geometrical operations. | |
bool BASE_IMPEXP | intersect (const TSegment3D &s1, const TSegment3D &s2, TObject3D &obj) |
Gets the intersection between two 3D segments. More... | |
bool BASE_IMPEXP | intersect (const TSegment3D &s1, const TPlane &p2, TObject3D &obj) |
Gets the intersection between a 3D segment and a plane. More... | |
bool BASE_IMPEXP | intersect (const TSegment3D &s1, const TLine3D &r2, TObject3D &obj) |
Gets the intersection between a 3D segment and a 3D line. More... | |
bool | intersect (const TPlane &p1, const TSegment3D &s2, TObject3D &obj) |
Gets the intersection between a plane and a 3D segment. More... | |
bool BASE_IMPEXP | intersect (const TPlane &p1, const TPlane &p2, TObject3D &obj) |
Gets the intersection between two planes. More... | |
bool BASE_IMPEXP | intersect (const TPlane &p1, const TLine3D &p2, TObject3D &obj) |
Gets the intersection between a plane and a 3D line. More... | |
bool | intersect (const TLine3D &r1, const TSegment3D &s2, TObject3D &obj) |
Gets the intersection between a 3D line and a 3D segment. More... | |
bool | intersect (const TLine3D &r1, const TPlane &p2, TObject3D &obj) |
Gets the intersection between a 3D line and a plane. More... | |
bool BASE_IMPEXP | intersect (const TLine3D &r1, const TLine3D &r2, TObject3D &obj) |
Gets the intersection between two 3D lines. More... | |
bool BASE_IMPEXP | intersect (const TLine2D &r1, const TLine2D &r2, TObject2D &obj) |
Gets the intersection between two 2D lines. More... | |
bool BASE_IMPEXP | intersect (const TLine2D &r1, const TSegment2D &s2, TObject2D &obj) |
Gets the intersection between a 2D line and a 2D segment. More... | |
bool | intersect (const TSegment2D &s1, const TLine2D &r2, TObject2D &obj) |
Gets the intersection between a 2D line and a 2D segment. More... | |
bool BASE_IMPEXP | intersect (const TSegment2D &s1, const TSegment2D &s2, TObject2D &obj) |
Gets the intersection between two 2D segments. More... | |
Angle retrieval methods. Methods which use TSegments will automatically use TLines' implicit constructors. | |
double BASE_IMPEXP | getAngle (const TPlane &p1, const TPlane &p2) |
Computes the angle between two planes. More... | |
double BASE_IMPEXP | 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). More... | |
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). More... | |
double BASE_IMPEXP | 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). More... | |
double BASE_IMPEXP | 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). More... | |
Creation of lines from poses. | |
void BASE_IMPEXP | createFromPoseX (const CPose3D &p, TLine3D &r) |
Gets a 3D line corresponding to the X axis in a given pose. More... | |
void BASE_IMPEXP | createFromPoseY (const CPose3D &p, TLine3D &r) |
Gets a 3D line corresponding to the Y axis in a given pose. More... | |
void BASE_IMPEXP | createFromPoseZ (const CPose3D &p, TLine3D &r) |
Gets a 3D line corresponding to the Z axis in a given pose. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | createFromPoseX (const TPose2D &p, TLine2D &r) |
Gets a 2D line corresponding to the X axis in a given pose. More... | |
void BASE_IMPEXP | createFromPoseY (const TPose2D &p, TLine2D &r) |
Gets a 2D line corresponding to the Y axis in a given pose. More... | |
void BASE_IMPEXP | 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. More... | |
Other line or plane related methods. | |
bool BASE_IMPEXP | conformAPlane (const std::vector< TPoint3D > &points) |
Checks whether this polygon or set of points acceptably fits a plane. More... | |
bool BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | areAligned (const std::vector< TPoint2D > &points) |
Checks whether this set of points acceptably fits a 2D line. More... | |
bool BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | areAligned (const std::vector< TPoint3D > &points) |
Checks whether this set of points acceptably fits a 3D line. More... | |
bool BASE_IMPEXP | 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. More... | |
Projections | |
void | project3D (const TPoint3D &point, const CPose3D &newXYpose, TPoint3D &newPoint) |
Uses the given pose 3D to project a point into a new base. More... | |
void | project3D (const TSegment3D &segment, const CPose3D &newXYpose, TSegment3D &newSegment) |
Uses the given pose 3D to project a segment into a new base. More... | |
void BASE_IMPEXP | project3D (const TLine3D &line, const CPose3D &newXYpose, TLine3D &newLine) |
Uses the given pose 3D to project a line into a new base. More... | |
void BASE_IMPEXP | project3D (const TPlane &plane, const CPose3D &newXYpose, TPlane &newPlane) |
Uses the given pose 3D to project a plane into a new base. More... | |
void BASE_IMPEXP | project3D (const TPolygon3D &polygon, const CPose3D &newXYpose, TPolygon3D &newPolygon) |
Uses the given pose 3D to project a polygon into a new base. More... | |
void BASE_IMPEXP | project3D (const TObject3D &object, const CPose3D &newXYPose, TObject3D &newObject) |
Uses the given pose 3D to project any 3D object into a new base. More... | |
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. More... | |
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. More... | |
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. More... | |
void | project2D (const TPoint2D &point, const CPose2D &newXpose, TPoint2D &newPoint) |
Uses the given pose 2D to project a point into a new base. More... | |
void | project2D (const TSegment2D &segment, const CPose2D &newXpose, TSegment2D &newSegment) |
Uses the given pose 2D to project a segment into a new base. More... | |
void BASE_IMPEXP | project2D (const TLine2D &line, const CPose2D &newXpose, TLine2D &newLine) |
Uses the given pose 2D to project a line into a new base. More... | |
void BASE_IMPEXP | project2D (const TPolygon2D &polygon, const CPose2D &newXpose, TPolygon2D &newPolygon) |
Uses the given pose 2D to project a polygon into a new base. More... | |
void BASE_IMPEXP | project2D (const TObject2D &object, const CPose2D &newXpose, TObject2D &newObject) |
Uses the given pose 2D to project any 2D object into a new base. More... | |
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. More... | |
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. More... | |
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. More... | |
Polygon intersections. These operations rely more on spatial reasoning than in raw numerical operations. | |
bool BASE_IMPEXP | intersect (const TPolygon2D &p1, const TSegment2D &s2, TObject2D &obj) |
Gets the intersection between a 2D polygon and a 2D segment. More... | |
bool BASE_IMPEXP | intersect (const TPolygon2D &p1, const TLine2D &r2, TObject2D &obj) |
Gets the intersection between a 2D polygon and a 2D line. More... | |
bool BASE_IMPEXP | intersect (const TPolygon2D &p1, const TPolygon2D &p2, TObject2D &obj) |
Gets the intersection between two 2D polygons. More... | |
bool | intersect (const TSegment2D &s1, const TPolygon2D &p2, TObject2D &obj) |
Gets the intersection between a 2D segment and a 2D polygon. More... | |
bool | intersect (const TLine2D &r1, const TPolygon2D &p2, TObject2D &obj) |
Gets the intersection between a 2D line and a 2D polygon. More... | |
bool BASE_IMPEXP | intersect (const TPolygon3D &p1, const TSegment3D &s2, TObject3D &obj) |
Gets the intersection between a 3D polygon and a 3D segment. More... | |
bool BASE_IMPEXP | intersect (const TPolygon3D &p1, const TLine3D &r2, TObject3D &obj) |
Gets the intersection between a 3D polygon and a 3D line. More... | |
bool BASE_IMPEXP | intersect (const TPolygon3D &p1, const TPlane &p2, TObject3D &obj) |
Gets the intersection between a 3D polygon and a plane. More... | |
bool BASE_IMPEXP | intersect (const TPolygon3D &p1, const TPolygon3D &p2, TObject3D &obj) |
Gets the intersection between two 3D polygons. More... | |
bool | intersect (const TSegment3D &s1, const TPolygon3D &p2, TObject3D &obj) |
Gets the intersection between a 3D segment and a 3D polygon. More... | |
bool | intersect (const TLine3D &r1, const TPolygon3D &p2, TObject3D &obj) |
Gets the intersection between a 3D line and a 3D polygon. More... | |
bool | intersect (const TPlane &p1, const TPolygon3D &p2, TObject3D &obj) |
Gets the intersection between a plane and a 3D polygon. More... | |
size_t BASE_IMPEXP | intersect (const std::vector< TPolygon3D > &v1, const std::vector< TPolygon3D > &v2, CSparseMatrixTemplate< TObject3D > &objs) |
Gets the intersection between two sets of 3D polygons. More... | |
size_t BASE_IMPEXP | intersect (const std::vector< TPolygon3D > &v1, const std::vector< TPolygon3D > &v2, std::vector< TObject3D > &objs) |
Gets the intersection between two sets of 3D polygons. More... | |
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. More... | |
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. More... | |
bool BASE_IMPEXP | intersect (const TObject2D &o1, const TObject2D &o2, TObject2D &obj) |
Gets the intersection between any pair of 2D objects. More... | |
bool BASE_IMPEXP | intersect (const TObject3D &o1, const TObject3D &o2, TObject3D &obj) |
Gets the intersection between any pair of 3D objects. More... | |
Distances | |
double BASE_IMPEXP | distance (const TPoint2D &p1, const TPoint2D &p2) |
Gets the distance between two points in a 2D space. More... | |
double BASE_IMPEXP | distance (const TPoint3D &p1, const TPoint3D &p2) |
Gets the distance between two points in a 3D space. More... | |
double BASE_IMPEXP | distance (const TLine2D &r1, const TLine2D &r2) |
Gets the distance between two lines in a 2D space. More... | |
double BASE_IMPEXP | distance (const TLine3D &r1, const TLine3D &r2) |
Gets the distance between two lines in a 3D space. More... | |
double BASE_IMPEXP | distance (const TPlane &p1, const TPlane &p2) |
Gets the distance between two planes. More... | |
double BASE_IMPEXP | distance (const TPolygon2D &p1, const TPolygon2D &p2) |
Gets the distance between two polygons in a 2D space. More... | |
double BASE_IMPEXP | distance (const TPolygon2D &p1, const TSegment2D &s2) |
Gets the distance between a polygon and a segment in a 2D space. More... | |
double | distance (const TSegment2D &s1, const TPolygon2D &p2) |
Gets the distance between a segment and a polygon in a 2D space. More... | |
double BASE_IMPEXP | distance (const TPolygon2D &p1, const TLine2D &l2) |
Gets the distance between a polygon and a line in a 2D space. More... | |
double | distance (const TLine2D &l1, const TPolygon2D &p2) |
double BASE_IMPEXP | distance (const TPolygon3D &p1, const TPolygon3D &p2) |
Gets the distance between two polygons in a 3D space. More... | |
double BASE_IMPEXP | distance (const TPolygon3D &p1, const TSegment3D &s2) |
Gets the distance between a polygon and a segment in a 3D space. More... | |
double | distance (const TSegment3D &s1, const TPolygon3D &p2) |
Gets the distance between a segment and a polygon in a 3D space. More... | |
double BASE_IMPEXP | distance (const TPolygon3D &p1, const TLine3D &l2) |
Gets the distance between a polygon and a line in a 3D space. More... | |
double | distance (const TLine3D &l1, const TPolygon3D &p2) |
Gets the distance between a line and a polygon in a 3D space. More... | |
double BASE_IMPEXP | distance (const TPolygon3D &po, const TPlane &pl) |
Gets the distance between a polygon and a plane. More... | |
double | distance (const TPlane &pl, const TPolygon3D &po) |
Gets the distance between a plane and a polygon. More... | |
Bound checkers | |
void BASE_IMPEXP | getRectangleBounds (const std::vector< TPoint2D > &poly, TPoint2D &pMin, TPoint2D &pMax) |
Gets the rectangular bounds of a 2D polygon or set of 2D points. More... | |
void BASE_IMPEXP | getPrismBounds (const std::vector< TPoint3D > &poly, TPoint3D &pMin, TPoint3D &pMax) |
Gets the prism bounds of a 3D polygon or set of 3D points. More... | |
Creation of planes from poses | |
void BASE_IMPEXP | createPlaneFromPoseXY (const CPose3D &pose, TPlane &plane) |
Given a pose, creates a plane orthogonal to its Z vector. More... | |
void BASE_IMPEXP | createPlaneFromPoseXZ (const CPose3D &pose, TPlane &plane) |
Given a pose, creates a plane orthogonal to its Y vector. More... | |
void BASE_IMPEXP | createPlaneFromPoseYZ (const CPose3D &pose, TPlane &plane) |
Given a pose, creates a plane orthogonal to its X vector. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | 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. More... | |
Linear regression methods | |
double BASE_IMPEXP | getRegressionLine (const std::vector< TPoint2D > &points, TLine2D &line) |
Using eigenvalues, gets the best fitting line for a set of 2D points. More... | |
double BASE_IMPEXP | getRegressionLine (const std::vector< TPoint3D > &points, TLine3D &line) |
Using eigenvalues, gets the best fitting line for a set of 3D points. More... | |
double BASE_IMPEXP | getRegressionPlane (const std::vector< TPoint3D > &points, TPlane &plane) |
Using eigenvalues, gets the best fitting plane for a set of 3D points. More... | |
Miscellaneous Geometry methods | |
void BASE_IMPEXP | assemblePolygons (const std::vector< TSegment3D > &segms, std::vector< TPolygon3D > &polys) |
Tries to assemble a set of segments into a set of closed polygons. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | assemblePolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys) |
Extracts all the polygons, including those formed from segments, from the set of objects. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | 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. More... | |
void | setEpsilon (double nE) |
Changes the value of the geometric epsilon. More... | |
double | getEpsilon () |
Gets the value of the geometric epsilon. More... | |
bool BASE_IMPEXP | splitInConvexComponents (const TPolygon2D &poly, vector< TPolygon2D > &components) |
Splits a 2D polygon into convex components. More... | |
bool BASE_IMPEXP | splitInConvexComponents (const TPolygon3D &poly, vector< TPolygon3D > &components) |
Splits a 3D polygon into convex components. More... | |
void BASE_IMPEXP | getSegmentBisector (const TSegment2D &sgm, TLine2D &bis) |
Gets the bisector of a 2D segment. More... | |
void BASE_IMPEXP | getSegmentBisector (const TSegment3D &sgm, TPlane &bis) |
Gets the bisector of a 3D segment. More... | |
void BASE_IMPEXP | getAngleBisector (const TLine2D &l1, const TLine2D &l2, TLine2D &bis) |
Gets the bisector of two lines or segments (implicit constructor will be used if necessary) More... | |
void BASE_IMPEXP | getAngleBisector (const TLine3D &l1, const TLine3D &l2, TLine3D &bis) |
Gets the bisector of two lines or segments (implicit constructor will be used if necessary) More... | |
bool BASE_IMPEXP | traceRay (const vector< TPolygonWithPlane > &vec, const mrpt::poses::CPose3D &pose, double &dist) |
Fast ray tracing method using polygons' properties. More... | |
bool | traceRay (const vector< TPolygon3D > &vec, const mrpt::poses::CPose3D &pose, double &dist) |
Fast ray tracing method using polygons' properties. More... | |
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. More... | |
template<class T > | |
void | crossProduct3D (const std::vector< T > &v0, const std::vector< T > &v1, std::vector< T > &v_out) |
template<class VEC1 , class VEC2 > | |
Eigen::Matrix< double, 3, 1 > | crossProduct3D (const VEC1 &v0, const VEC2 &v1) |
template<class VECTOR , class MATRIX > | |
void | skew_symmetric3 (const VECTOR &v, MATRIX &M) |
Computes the 3x3 skew symmetric matrix from a 3-vector or 3-array:
. More... | |
template<class VECTOR > | |
mrpt::math::CMatrixDouble33 | skew_symmetric3 (const VECTOR &v) |
template<class VECTOR , class MATRIX > | |
void | skew_symmetric3_neg (const VECTOR &v, MATRIX &M) |
Computes the negative version of a 3x3 skew symmetric matrix from a 3-vector or 3-array:
. More... | |
template<class VECTOR > | |
mrpt::math::CMatrixDouble33 | skew_symmetric3_neg (const VECTOR &v) |
template<class T , class U > | |
bool | vectorsAreParallel2D (const T &v1, const U &v2) |
Returns true if two 2D vectors are parallel. More... | |
template<class T , class U > | |
bool | vectorsAreParallel3D (const T &v1, const U &v2) |
Returns true if two 3D vectors are parallel. More... | |
double BASE_IMPEXP | 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. More... | |
double BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | 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. More... | |
void BASE_IMPEXP | 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. More... | |
double BASE_IMPEXP | 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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
bool BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | 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. More... | |
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. More... | |
double BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | 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. More... | |
bool BASE_IMPEXP | 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. More... | |
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. More... | |
template<typename VECTOR_LIKE , typename Precision , typename MATRIX_LIKE > | |
void | rodrigues_so3_exp (const VECTOR_LIKE &w, const Precision A, const Precision B, MATRIX_LIKE &R) |
Compute a rotation exponential using the Rodrigues Formula. More... | |
k-means algorithms | |
template<class LIST_OF_VECTORS1 , class LIST_OF_VECTORS2 > | |
double | kmeans (const size_t k, const LIST_OF_VECTORS1 &points, std::vector< int > &assignments, LIST_OF_VECTORS2 *out_centers=NULL, const size_t attempts=3) |
k-means algorithm to cluster a list of N points of arbitrary dimensionality into exactly K clusters. More... | |
template<class LIST_OF_VECTORS1 , class LIST_OF_VECTORS2 > | |
double | kmeanspp (const size_t k, const LIST_OF_VECTORS1 &points, std::vector< int > &assignments, LIST_OF_VECTORS2 *out_centers=NULL, const size_t attempts=3) |
k-means++ algorithm to cluster a list of N points of arbitrary dimensionality into exactly K clusters. More... | |
Container initializer from pose classes | |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const TPoint2D &p) |
Conversion of poses to MRPT containers (vector/matrix) More... | |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const TPoint3D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const TPose2D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const TPose3D &p) |
template<class CONTAINER > | |
CONTAINER & | containerFromPoseOrPoint (CONTAINER &C, const TPose3DQuat &p) |
Generic container element-wise operations - Miscelaneous | |
template<class CONTAINER , typename VALUE > | |
VALUE | squareNorm_accum (const VALUE total, const CONTAINER &v) |
Accumulate the squared-norm of a vector/array/matrix into "total" (this function is compatible with std::accumulate). More... | |
template<size_t N, class T , class U > | |
T | squareNorm (const U &v) |
Compute the square norm of anything implementing []. More... | |
template<class CONTAINER1 , class CONTAINER2 > | |
CONTAINER1::Scalar | dotProduct (const CONTAINER1 &v1, const CONTAINER1 &v2) |
v1·v2: The dot product of two containers (vectors/arrays/matrices) More... | |
template<size_t N, class T , class U , class V > | |
T | dotProduct (const U &v1, const V &v2) |
v1·v2: The dot product of any two objects supporting [] More... | |
template<class CONTAINER > | |
CONTAINER::Scalar | sum (const CONTAINER &v) |
Computes the sum of all the elements. More... | |
template<typename T > | |
T | sum (const std::vector< T > &v) |
template<class CONTAINER , typename RET > | |
RET | sumRetType (const CONTAINER &v) |
Computes the sum of all the elements, with a custom return type. More... | |
template<class CONTAINER > | |
double | mean (const CONTAINER &v) |
Computes the mean value of a vector. More... | |
template<typename T > | |
void | minimum_maximum (const std::vector< T > &V, T &curMin, T &curMax) |
Return the maximum and minimum values of a std::vector. More... | |
template<class Derived > | |
void | minimum_maximum (const Eigen::MatrixBase< Derived > &V, typename Eigen::MatrixBase< Derived >::Scalar &curMin, typename Eigen::MatrixBase< Derived >::Scalar &curMax) |
Return the maximum and minimum values of a Eigen-based vector or matrix. More... | |
template<class CONTAINER1 , class CONTAINER2 > | |
size_t | countCommonElements (const CONTAINER1 &a, const CONTAINER2 &b) |
Counts the number of elements that appear in both STL-like containers (comparison through the == operator) It is assumed that no repeated elements appear within each of the containers. More... | |
template<class CONTAINER > | |
void | adjustRange (CONTAINER &m, const typename CONTAINER::Scalar minVal, const typename CONTAINER::Scalar maxVal) |
Adjusts the range of all the elements such as the minimum and maximum values being those supplied by the user. More... | |
template<class VECTORLIKE > | |
void | meanAndStd (const VECTORLIKE &v, double &out_mean, double &out_std, bool unbiased=true) |
Computes the standard deviation of a vector. More... | |
template<class VECTORLIKE > | |
double | stddev (const VECTORLIKE &v, bool unbiased=true) |
Computes the standard deviation of a vector. More... | |
template<class VECTOR_OF_VECTOR , class VECTORLIKE , class MATRIXLIKE > | |
void | meanAndCovVec (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. More... | |
template<class VECTOR_OF_VECTOR > | |
Eigen::MatrixXd | 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. More... | |
template<class CONT1 , class CONT2 > | |
double | ncc_vector (const CONT1 &patch1, const CONT2 &patch2) |
Normalised Cross Correlation between two vector patches The Matlab code for this is a = a - mean2(a); b = b - mean2(b); r = sum(sum(a. More... | |
Operators for binary streaming of MRPT matrices | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Operators for text streaming of MRPT matrices | |
template<typename T , size_t NROWS, size_t NCOLS> | |
std::ostream & | operator<< (std::ostream &s, const CMatrixFixedNumeric< T, NROWS, NCOLS > &m) |
Dumps the matrix to a text ostream, adding a final "\n" to Eigen's default output. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &s, const CMatrixTemplateNumeric< T > &m) |
Dumps the matrix to a text ostream, adding a final "\n" to Eigen's default output. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &s, const mrpt::dynamicsize_vector< T > &m) |
Dumps the vector as a row to a text ostream, with the format: "[v1 v2 v3... vN]". More... | |
Generic std::vector element-wise operations | |
template<typename T1 , typename T2 > | |
std::vector< T1 > & | operator*= (std::vector< T1 > &a, const std::vector< T2 > &b) |
a*=b (element-wise multiplication) More... | |
template<typename T1 > | |
std::vector< T1 > & | operator*= (std::vector< T1 > &a, const T1 b) |
a*=k (multiplication by a constant) More... | |
template<typename T1 , typename T2 > | |
std::vector< T1 > | operator* (const std::vector< T1 > &a, const std::vector< T2 > &b) |
a*b (element-wise multiplication) More... | |
template<typename T1 , typename T2 > | |
std::vector< T1 > & | operator+= (std::vector< T1 > &a, const std::vector< T2 > &b) |
a+=b (element-wise sum) More... | |
template<typename T1 > | |
std::vector< T1 > & | operator+= (std::vector< T1 > &a, const T1 b) |
a+=b (sum a constant) More... | |
template<typename T1 , typename T2 > | |
std::vector< T1 > | operator+ (const std::vector< T1 > &a, const std::vector< T2 > &b) |
a+b (element-wise sum) More... | |
template<typename T1 , typename T2 > | |
std::vector< T1 > | operator- (const std::vector< T1 > &v1, const std::vector< T2 > &v2) |
RANSAC detectors | |
template<typename NUMTYPE > | |
void BASE_IMPEXP | ransac_detect_3D_planes (const Eigen::Matrix< NUMTYPE, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< NUMTYPE, Eigen::Dynamic, 1 > &y, const Eigen::Matrix< NUMTYPE, Eigen::Dynamic, 1 > &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. More... | |
template<typename NUMTYPE > | |
void BASE_IMPEXP | ransac_detect_2D_lines (const Eigen::Matrix< NUMTYPE, Eigen::Dynamic, 1 > &x, const Eigen::Matrix< NUMTYPE, Eigen::Dynamic, 1 > &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. More... | |
template<class POINTSMAP > | |
void | ransac_detect_3D_planes (const POINTSMAP *points_map, std::vector< std::pair< size_t, TPlane > > &out_detected_planes, const double threshold, const size_t min_inliers_for_valid_plane) |
A stub for ransac_detect_3D_planes() with the points given as a mrpt::slam::CPointsMap. More... | |
SLERP (Spherical Linear Interpolation) functions | |
template<typename T > | |
void | slerp (const CQuaternion< T > &q0, const CQuaternion< T > &q1, const double t, CQuaternion< T > &q) |
SLERP interpolation between two quaternions. More... | |
void BASE_IMPEXP | slerp (const CPose3D &q0, const CPose3D &q1, const double t, CPose3D &p) |
SLERP interpolation between two 6D poses - like mrpt::math::slerp for quaternions, but interpolates the [X,Y,Z] coordinates as well. More... | |
void BASE_IMPEXP | slerp (const CPose3DQuat &q0, const CPose3DQuat &q1, const double t, CPose3DQuat &p) |
Probability density distributions (pdf) distance metrics | |
template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT > | |
MAT::Scalar | 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
. More... | |
template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT > | |
VECTORLIKE1::Scalar | 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
. More... | |
template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 > | |
MAT1::Scalar | 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. More... | |
template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 > | |
VECTORLIKE::Scalar | 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. More... | |
template<class VECTORLIKE , class MATRIXLIKE > | |
MATRIXLIKE::Scalar | 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. More... | |
template<class VECTORLIKE , class MATRIXLIKE > | |
MATRIXLIKE::Scalar | 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. More... | |
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". More... | |
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". More... | |
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. More... | |
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. More... | |
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. More... | |
Variables | |
double BASE_IMPEXP | geometryEpsilon |
Global epsilon to overcome small precision errors. More... | |
struct BASE_IMPEXP | TSegment3D |
struct BASE_IMPEXP | TLine3D |
class BASE_IMPEXP | TPolygon3D |
struct BASE_IMPEXP | TObject3D |
const unsigned char | GEOMETRIC_TYPE_POINT =0 |
Object type identifier for TPoint2D or TPoint3D. More... | |
const unsigned char | GEOMETRIC_TYPE_SEGMENT =1 |
Object type identifier for TSegment2D or TSegment3D. More... | |
const unsigned char | GEOMETRIC_TYPE_LINE =2 |
Object type identifier for TLine2D or TLine3D. More... | |
const unsigned char | GEOMETRIC_TYPE_POLYGON =3 |
Object type identifier for TPolygon2D or TPolygon3D. More... | |
const unsigned char | GEOMETRIC_TYPE_PLANE =4 |
Object type identifier for TPlane. More... | |
const unsigned char | GEOMETRIC_TYPE_UNDEFINED =255 |
Object type identifier for empty TObject2D or TObject3D. More... | |
The default name for the LM class is an instantiation for "double".
Definition at line 254 of file CLevenbergMarquardt.h.
typedef CMatrixTemplate<bool> mrpt::math::CMatrixBool |
Declares a matrix of booleans (non serializable).
Definition at line 169 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 159 of file CMatrixTemplateNumeric.h.
typedef CMatrixFixedNumeric<double,1,2> mrpt::math::CMatrixDouble12 |
Definition at line 125 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,1,3> mrpt::math::CMatrixDouble13 |
Definition at line 123 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,1,5> mrpt::math::CMatrixDouble15 |
Definition at line 132 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,1,6> mrpt::math::CMatrixDouble16 |
Definition at line 128 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,1,7> mrpt::math::CMatrixDouble17 |
Definition at line 130 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,2,1> mrpt::math::CMatrixDouble21 |
Definition at line 126 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,2,2> mrpt::math::CMatrixDouble22 |
Definition at line 116 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,2,3> mrpt::math::CMatrixDouble23 |
Definition at line 117 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,3,1> mrpt::math::CMatrixDouble31 |
Definition at line 124 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,3,2> mrpt::math::CMatrixDouble32 |
Definition at line 118 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,3,3> mrpt::math::CMatrixDouble33 |
Definition at line 119 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,4,4> mrpt::math::CMatrixDouble44 |
Definition at line 120 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,5,1> mrpt::math::CMatrixDouble51 |
Definition at line 131 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,6,1> mrpt::math::CMatrixDouble61 |
Definition at line 127 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,6,6> mrpt::math::CMatrixDouble66 |
Definition at line 121 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,7,1> mrpt::math::CMatrixDouble71 |
Definition at line 129 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<double,7,7> mrpt::math::CMatrixDouble77 |
Definition at line 122 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 153 of file CMatrixTemplateNumeric.h.
typedef CMatrixFixedNumeric<float,1,2> mrpt::math::CMatrixFloat12 |
Definition at line 143 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,1,3> mrpt::math::CMatrixFloat13 |
Definition at line 141 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,1,5> mrpt::math::CMatrixFloat15 |
Definition at line 150 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,1,6> mrpt::math::CMatrixFloat16 |
Definition at line 146 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,1,7> mrpt::math::CMatrixFloat17 |
Definition at line 148 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,2,1> mrpt::math::CMatrixFloat21 |
Definition at line 144 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,2,2> mrpt::math::CMatrixFloat22 |
Definition at line 134 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,2,3> mrpt::math::CMatrixFloat23 |
Definition at line 135 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,3,1> mrpt::math::CMatrixFloat31 |
Definition at line 142 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,3,2> mrpt::math::CMatrixFloat32 |
Definition at line 136 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,3,3> mrpt::math::CMatrixFloat33 |
Definition at line 137 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,4,4> mrpt::math::CMatrixFloat44 |
Definition at line 138 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,5,1> mrpt::math::CMatrixFloat51 |
Definition at line 149 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,6,1> mrpt::math::CMatrixFloat61 |
Definition at line 145 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,6,6> mrpt::math::CMatrixFloat66 |
Definition at line 139 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,7,1> mrpt::math::CMatrixFloat71 |
Definition at line 147 of file CMatrixFixedNumeric.h.
typedef CMatrixFixedNumeric<float,7,7> mrpt::math::CMatrixFloat77 |
Definition at line 140 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 180 of file CMatrixTemplateNumeric.h.
typedef CMatrixTemplateNumeric<unsigned int> mrpt::math::CMatrixUInt |
Declares a matrix of unsigned ints (non serializable).
Definition at line 164 of file CMatrixTemplateNumeric.h.
typedef CQuaternion<double> mrpt::math::CQuaternionDouble |
A quaternion of data type "double".
Definition at line 431 of file CQuaternion.h.
typedef CQuaternion<float> mrpt::math::CQuaternionFloat |
A quaternion of data type "float".
Definition at line 432 of file CQuaternion.h.
This is just another name for mrpt::vector_double (Backward compatibility with MRPT <=0.9.2); for a complete introduction to Matrices and vectors in MRPT, see: http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes.
Definition at line 47 of file CVectorTemplate.h.
This is just another name for mrpt::vector_float (Backward compatibility with MRPT <=0.9.2); for a complete introduction to Matrices and vectors in MRPT, see: http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes.
Definition at line 45 of file CVectorTemplate.h.
For usage in one of the constructors of CMatrixFixedNumeric or CMatrixTemplate (and derived classes), if it's not required to fill it with zeros at the constructor to save time.
Enumerator | |
---|---|
UNINITIALIZED_MATRIX |
Definition at line 107 of file math_frwds.h.
Enumerator | |
---|---|
UNINITIALIZED_QUATERNION |
Definition at line 47 of file CQuaternion.h.
Selection of the number format in CMatrixTemplate::saveToTextFile
Enumerator | |
---|---|
MATRIX_FORMAT_ENG | engineering format 'e' |
MATRIX_FORMAT_FIXED | fixed floating point 'f' |
MATRIX_FORMAT_INT | intergers 'i' |
Definition at line 98 of file math_frwds.h.
void mrpt::math::adjustRange | ( | CONTAINER & | m, |
const typename CONTAINER::Scalar | minVal, | ||
const typename CONTAINER::Scalar | maxVal | ||
) |
Adjusts the range of all the elements such as the minimum and maximum values being those supplied by the user.
Definition at line 275 of file ops_containers.h.
References minimum_maximum().
CONTAINER & mrpt::math::containerFromPoseOrPoint | ( | CONTAINER & | C, |
const TPoint2D & | p | ||
) |
Conversion of poses to MRPT containers (vector/matrix)
Definition at line 149 of file ops_containers.h.
Referenced by containerFromPoseOrPoint().
CONTAINER & mrpt::math::containerFromPoseOrPoint | ( | CONTAINER & | C, |
const TPoint3D & | p | ||
) |
Definition at line 154 of file ops_containers.h.
CONTAINER & mrpt::math::containerFromPoseOrPoint | ( | CONTAINER & | C, |
const TPose2D & | p | ||
) |
Definition at line 159 of file ops_containers.h.
CONTAINER & mrpt::math::containerFromPoseOrPoint | ( | CONTAINER & | C, |
const TPose3D & | p | ||
) |
Definition at line 164 of file ops_containers.h.
CONTAINER & mrpt::math::containerFromPoseOrPoint | ( | CONTAINER & | C, |
const TPose3DQuat & | p | ||
) |
Definition at line 169 of file ops_containers.h.
|
inline |
Definition at line 161 of file math_frwds.h.
References containerFromPoseOrPoint(), and mrpt::mrpt::math::detail::lightFromPose().
|
inline |
Definition at line 162 of file math_frwds.h.
References containerFromPoseOrPoint(), and mrpt::mrpt::math::detail::lightFromPose().
|
inline |
Definition at line 163 of file math_frwds.h.
References containerFromPoseOrPoint(), and mrpt::mrpt::math::detail::lightFromPose().
|
inline |
Definition at line 164 of file math_frwds.h.
References containerFromPoseOrPoint(), and mrpt::mrpt::math::detail::lightFromPose().
|
inline |
Definition at line 165 of file math_frwds.h.
References containerFromPoseOrPoint(), and mrpt::mrpt::math::detail::lightFromPose().
size_t mrpt::math::countCommonElements | ( | const CONTAINER1 & | a, |
const CONTAINER2 & | b | ||
) |
Counts the number of elements that appear in both STL-like containers (comparison through the == operator) It is assumed that no repeated elements appear within each of the containers.
Definition at line 263 of file ops_containers.h.
|
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 240 of file ops_matrices.h.
References meanAndCovMat().
Referenced by mrpt::random::CRandomGenerator::drawGaussianMultivariate(), mrpt::random::CRandomGenerator::drawGaussianMultivariateMany(), mrpt::utils::CProbabilityDensityFunction< CPose2D, 3 >::getCovariance(), mrpt::poses::CPoint2DPDFGaussian::getCovarianceAndMean(), mrpt::poses::CPose3DQuatPDFGaussianInf::getCovarianceAndMean(), mrpt::poses::CPosePDFGaussian::getCovarianceAndMean(), mrpt::poses::CPosePDFGaussianInf::getCovarianceAndMean(), mrpt::poses::CPose3DPDFGaussianInf::getCovarianceAndMean(), mrpt::poses::CPose3DPDFGaussian::getCovarianceAndMean(), mrpt::utils::CProbabilityDensityFunction< CPose2D, 3 >::getCovarianceDynAndMean(), mrpt::utils::CProbabilityDensityFunction< CPose2D, 3 >::getInformationMatrix(), mahalanobisDistance(), mahalanobisDistance2(), mahalanobisDistance2AndLogPDF(), mahalanobisDistance2AndPDF(), normalPDF(), mrpt::random::randomNormalMultiDimensional(), mrpt::random::randomNormalMultiDimensionalMany(), and mrpt::srba::LandmarkRendererBase< landmark_rendering_as_point >::render().
|
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 383 of file ops_containers.h.
References meanAndCovVec().
|
inline |
Computes the cumulative sum of all the elements.
Definition at line 117 of file ops_containers.h.
References cumsum().
|
inline |
Definition at line 112 of file ops_containers.h.
Referenced by confidenceIntervals(), and cumsum().
|
inline |
Computes the cumulative sum of all the elements, saving the result in another container.
This works for both matrices (even mixing their types) and vectores/arrays (even mixing types), and even to store the cumsum of any matrix into any vector/array, but not in opposite direction.
Definition at line 102 of file ops_containers.h.
|
inline |
v1·v2: The dot product of two containers (vectors/arrays/matrices)
Definition at line 201 of file ops_containers.h.
|
inline |
v1·v2: The dot product of any two objects supporting []
Definition at line 208 of file ops_containers.h.
|
inline |
Definition at line 475 of file matrix_adaptors.h.
|
inline |
Definition at line 539 of file matrix_adaptors.h.
|
inline |
Definition at line 582 of file matrix_adaptors.h.
|
inline |
Definition at line 629 of file matrix_adaptors.h.
|
inline |
Definition at line 264 of file matrix_adaptors.h.
|
inline |
Definition at line 329 of file matrix_adaptors.h.
|
inline |
Definition at line 373 of file matrix_adaptors.h.
|
inline |
Definition at line 421 of file matrix_adaptors.h.
vector_double mrpt::math::histogram | ( | const CONTAINER & | v, |
double | limit_min, | ||
double | limit_max, | ||
size_t | number_bins, | ||
bool | do_normalization = false , |
||
vector_double * | out_bin_centers = NULL |
||
) |
Computes the normalized or normal histogram of a sequence of numbers given the number of bins and the limits.
In any case this is a "linear" histogram, i.e. for matrices, all the elements are taken as if they were a plain sequence, not taking into account they were in columns or rows. If desired, out_bin_centers can be set to receive the bins centers.
Definition at line 79 of file ops_containers.h.
References mrpt::math::CHistogram::add(), mrpt::math::CHistogram::getHistogram(), and mrpt::math::CHistogram::getHistogramNormalized().
Referenced by confidenceIntervals(), and mrpt::pbmap::getMode().
|
inline |
k-means algorithm to cluster a list of N points of arbitrary dimensionality into exactly K clusters.
The list of input points can be any template CONTAINER<POINT> with:
k | [IN] Number of cluster to look for. |
points | [IN] The list of N input points. It can be any STL-like containers of std::vector<float/double>, for example a std::vector<vector_double>, a std::list<vector_float>, etc... |
assignments | [OUT] At output it will have a number [0,k-1] for each of the N input points. |
out_centers | [OUT] If not NULL, at output will have the centers of each group. Can be of any of the supported types of "points", but the basic coordinates should be float or double exactly as in "points". |
attempts | [IN] Number of attempts. |
Definition at line 143 of file kmeans.h.
References mrpt::math::detail::stub_kmeans().
|
inline |
k-means++ algorithm to cluster a list of N points of arbitrary dimensionality into exactly K clusters.
The list of input points can be any template CONTAINER<POINT> with:
k | [IN] Number of cluster to look for. |
points | [IN] The list of N input points. It can be any STL-like containers of std::vector<float/double>, for example a std::vector<vector_double>, a std::list<vector_float>, etc... |
assignments | [OUT] At output it will have a number [0,k-1] for each of the N input points. |
out_centers | [OUT] If not NULL, at output will have the centers of each group. Can be of any of the supported types of "points", but the basic coordinates should be float or double exactly as in "points". |
attempts | [IN] Number of attempts. |
Definition at line 171 of file kmeans.h.
References mrpt::math::detail::stub_kmeans().
|
inline |
Definition at line 126 of file ops_containers.h.
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::compute_all_node_degrees(), mrpt::slam::PF_implementation< CPose2D, CMonteCarloLocalization2D >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), weightedHistogram(), and weightedHistogramLog().
|
inline |
Definition at line 129 of file ops_containers.h.
References ASSERT_, and mrpt::mrpt::utils::keep_max().
|
inline |
Computes the mean value of a vector.
Definition at line 229 of file ops_containers.h.
References sum().
Referenced by confidenceIntervals(), and mrpt::slam::PF_implementation< CPose2D, CMonteCarloLocalization2D >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal().
void mrpt::math::meanAndCovMat | ( | const MAT_IN & | v, |
VECTOR & | out_mean, | ||
MAT_OUT & | out_cov | ||
) |
Computes the mean vector and covariance 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, of types: CMatrixTemplateNumeric or CMatrixFixedNumeric |
out_mean | The output M-vector for the estimated mean. |
out_cov | The output MxM matrix for the estimated covariance matrix, this can also be either a fixed-size of dynamic size matrix. |
Definition at line 194 of file ops_matrices.h.
References ASSERTMSG_, and mrpt::utils::square().
Referenced by cov().
void mrpt::math::meanAndCovVec | ( | 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 338 of file ops_containers.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 |
||
) |
Computes the standard deviation of a vector.
v | The set of data |
out_mean | The output for the estimated mean |
out_std | The output for the estimated standard deviation |
unbiased | If set to true or false the std is normalized by "N-1" or "N", respectively. |
Definition at line 294 of file ops_containers.h.
References mrpt::mrpt::utils::square(), and sum().
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::compute_all_node_degrees(), mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::get_stats(), mrpt::pbmap::getHistogramMeanShift(), and stddev().
|
inline |
Definition at line 127 of file ops_containers.h.
Referenced by mrpt::slam::PF_implementation< CPose2D, CMonteCarloLocalization2D >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), weightedHistogram(), and weightedHistogramLog().
|
inline |
Definition at line 136 of file ops_containers.h.
References ASSERT_, and mrpt::mrpt::utils::keep_min().
|
inline |
Return the maximum and minimum values of a std::vector.
Definition at line 238 of file ops_containers.h.
References ASSERT_, mrpt::mrpt::utils::keep_max(), and mrpt::mrpt::utils::keep_min().
Referenced by adjustRange(), confidenceIntervals(), and mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::get_stats().
|
inline |
Return the maximum and minimum values of a Eigen-based vector or matrix.
Definition at line 252 of file ops_containers.h.
void mrpt::math::multiply_A_skew3 | ( | const MAT_A & | A, |
const SKEW_3VECTOR & | v, | ||
MAT_OUT & | out | ||
) |
Only for vectors/arrays "v" of length3, compute out = A * Skew(v), where Skew(v) is the skew symmetric matric generated from v (see mrpt::math::skew_symmetric3)
Definition at line 255 of file ops_matrices.h.
References ASSERT_EQUAL_, MRPT_END, MRPT_START, and size().
Referenced by multiply_A_skew3().
|
inline |
R = H * C * H^t (with C symmetric)
Definition at line 152 of file ops_matrices.h.
MAT_C::Scalar mrpt::math::multiply_HCHt_scalar | ( | const VECTOR_H & | H, |
const MAT_C & | C | ||
) |
r (a scalar) = H * C * H^t (with a vector H and a symmetric matrix C)
Definition at line 167 of file ops_matrices.h.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::auxMaha2Dist(), KLD_Gaussians(), mahalanobisDistance2(), mahalanobisDistance2AndLogPDF(), normalPDF(), and normalPDFInf().
void mrpt::math::multiply_HtCH | ( | const MAT_H & | H, |
const MAT_C & | C, | ||
MAT_R & | R, | ||
bool | accumResultInOutput | ||
) |
R = H^t * C * H (with C symmetric)
Definition at line 174 of file ops_matrices.h.
void mrpt::math::multiply_skew3_A | ( | const SKEW_3VECTOR & | v, |
const MAT_A & | A, | ||
MAT_OUT & | out | ||
) |
Only for vectors/arrays "v" of length3, compute out = Skew(v) * A, where Skew(v) is the skew symmetric matric generated from v (see mrpt::math::skew_symmetric3)
Definition at line 274 of file ops_matrices.h.
References ASSERT_EQUAL_, MRPT_END, MRPT_START, and size().
Referenced by multiply_skew3_A().
double mrpt::math::ncc_vector | ( | const CONT1 & | patch1, |
const CONT2 & | patch2 | ||
) |
Normalised Cross Correlation between two vector patches The Matlab code for this is a = a - mean2(a); b = b - mean2(b); r = sum(sum(a.
*b))/sqrt(sum(sum(a.*a))*sum(sum(b.*b)));
Definition at line 399 of file ops_containers.h.
References ASSERT_, ASSERTMSG_, and mrpt::mrpt::utils::square().
|
inline |
Definition at line 125 of file ops_containers.h.
Referenced by octomath::Vector3::angleTo(), mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), octomath::Vector3::normalize(), and mrpt::graphslam::optimize_graph_spa_levmarq().
|
inline |
Definition at line 124 of file ops_containers.h.
Referenced by mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), and mrpt::graphslam::optimize_graph_spa_levmarq().
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 | ||
) |
Definition at line 298 of file CArray.h.
References mrpt::math::CArray< T, N >::begin(), and mrpt::math::CArray< T, N >::end().
::mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, |
CMatrixBPtr & | pObj | ||
) |
::mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, |
CSplineInterpolator1DPtr & | pObj | ||
) |
::mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, |
CPolygonPtr & | pObj | ||
) |
BASE_IMPEXP ::mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, |
CMatrixPtr & | pObj | ||
) |
BASE_IMPEXP ::mrpt::utils::CStream& mrpt::math::operator>> | ( | mrpt::utils::CStream & | in, |
CMatrixDPtr & | pObj | ||
) |
|
inline |
Returns the size of the matrix in the i'th dimension: 1=rows, 2=columns (MATLAB-compatible function)
Definition at line 72 of file bits.h.
References THROW_EXCEPTION_CUSTOM_MSG1.
Referenced by end(), mrpt::pbmap::SemanticClustering::evalPartition(), mrpt::pbmap::getHistogramMeanShift(), mrpt::slam::CPointsMap::getPCLPointCloud(), mrpt::opengl::CPointCloudColoured::getPoint(), mrpt::opengl::CPointCloud::getPoint(), mrpt::slam::CPointsMap::getPointAllFields(), mrpt::opengl::CPointCloudColoured::getPointf(), mrpt::opengl::CPointCloud::getPointf(), mrpt::slam::CPointsMap::getPointsCount(), mrpt::math::CPolygon::GetVertex_x(), mrpt::math::CPolygon::GetVertex_y(), homogeneousMatrixInverse(), mrpt::vision::CFeatureListKDTree< FEAT >::kdtree_distance(), mrpt::vision::CFeatureList::kdtree_distance(), mrpt::slam::CPointsMap::kdtree_distance(), mrpt::vision::CFeatureList::kdtree_get_point_count(), mrpt::slam::CPointsMap::kdtree_get_point_count(), KLD_Gaussians(), mahalanobisDistance2(), maximum(), mean(), meanAndStdAll(), minimum(), mrpt::mrpt::math::multiply_A_skew3(), mrpt::mrpt::math::multiply_skew3_A(), normalize(), normalPDFInf(), mrpt::opengl::CPointCloudColoured::operator[](), mrpt::opengl::CPointCloud::operator[](), push_back(), mrpt::dynamicsize_vector< T >::resize(), mrpt::kinematics::CKinematicChain::setConfiguration(), mrpt::slam::CPointsMap::setPoint(), mrpt::slam::CPointsMap::setPointAllFields(), and mrpt::math::CPolygon::verticesCount().
|
inline |
Compute the square norm of anything implementing [].
Definition at line 192 of file ops_containers.h.
References mrpt::utils::square().
VALUE mrpt::math::squareNorm_accum | ( | const VALUE | total, |
const CONTAINER & | v | ||
) |
Accumulate the squared-norm of a vector/array/matrix into "total" (this function is compatible with std::accumulate).
Definition at line 185 of file ops_containers.h.
|
inline |
Computes the standard deviation of a vector.
v | The set of data |
unbiased | If set to true or false the std is normalized by "N-1" or "N", respectively. |
Definition at line 324 of file ops_containers.h.
References meanAndStd().
Referenced by mrpt::pbmap::getHistogramMeanShift().
|
inline |
Computes the sum of all the elements.
Definition at line 217 of file ops_containers.h.
Referenced by mrpt::pbmap::getHistogramMeanShift(), mean(), meanAndStd(), meanAndStd(), meanAndStdAll(), and mrpt::srba::RbaEngine< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::optimize_edges().
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 220 of file ops_containers.h.
|
inline |
Computes the sum of all the elements, with a custom return type.
Definition at line 224 of file ops_containers.h.
Page generated by Doxygen 1.8.14 for MRPT 1.0.2 SVN: at lun oct 28 00:52:41 CET 2019 | Hosted on: |