Go to the documentation of this file.
33 template <
class T1,
class T2>
36 return fabs(
a -
b) <= ((fabs(
a) > fabs(
b) ? fabs(
b) : fabs(
a)) * epsilon);
56 return lhs > rhs ? lhs - rhs : rhs - lhs;
66 bool loadVector(std::istream& f, std::vector<int>& d);
72 bool loadVector(std::istream& f, std::vector<double>& d);
75 const std::vector<double>& inV, std::vector<double>& outV,
76 const int& winSize,
const int& numberOfSigmas = 2);
81 template <
typename T,
typename VECTOR>
86 out_vector.assign(
count, last);
91 out_vector.resize(
count);
94 for (
size_t i = 0; i <
count; i++,
c += incr) out_vector[i] =
c;
100 template <
class T, T STEP>
103 std::vector<T> ret(
length);
117 template <
class VEC1,
class VEC2>
121 const size_t N =
v.size();
122 for (
size_t i = 0; i < N; i++) total +=
square(
v[i]);
123 total = std::sqrt(total);
126 out_v =
v * (1.0 / total);
129 out_v.assign(
v.size(), 0);
141 template <
class VECTOR_OF_VECTORS,
class VECTORLIKE>
143 const size_t colIndex,
const VECTOR_OF_VECTORS&
data,
144 VECTORLIKE& out_column)
146 const size_t N =
data.size();
147 out_column.resize(N);
148 for (
size_t i = 0; i < N; i++) out_column[i] =
data[i][colIndex];
174 const size_t& nEllipsePoints = 30);
189 const size_t& nEllipsePoints = 30);
200 template <
typename EIGEN_VECTOR,
typename At,
size_t N>
204 v.derived().resize(N);
205 for (
size_t i = 0; i < N; i++)
211 template <
typename T,
typename At,
size_t N>
216 for (
size_t i = 0; i < N; i++) v[i] = static_cast<T>(theArray[i]);
233 template <
class TRIPLET>
235 const std::string& sFile, std::vector<TRIPLET>& tri)
237 #if defined(_MSC_VER) && \
238 (_MSC_VER >= 1400) // Use a secure version in Visual Studio 2005+
240 if (0 != ::fopen_s(&f, sFile.c_str(),
"wt")) f =
nullptr;
242 FILE* f =
::fopen(sFile.c_str(),
"wt");
245 if (!f)
return false;
247 for (
size_t i = 0; i < tri.size(); i++)
249 f,
"%u %u %e\n", 1 + tri[i].
row(), 1 + tri[i].col(),
CMatrixTemplateNumeric< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).
CMatrixTemplateNumeric< float > CMatrixFloat
Declares a matrix of float numbers (non serializable).
int void fclose(FILE *f)
An OS-independent version of fclose.
std::vector< T > sequenceStdVec(T first, size_t length)
Generates a sequence of values [first,first+STEP,first+2*STEP,...].
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 t...
double factorial(unsigned int n)
Computes the factorial of an integer number and returns it as a double value (internally it uses loga...
double mean(const CONTAINER &v)
Computes the mean value of a vector.
T absDiff(const T &lhs, const T &rhs)
Absolute difference between two numbers.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
T square(const T x)
Inline function for the square of a number.
dynamic_vector< double > CVectorDouble
Column vector, like Eigen::MatrixXd, but automatically initialized to zeros since construction.
bool loadVector(std::istream &f, std::vector< int > &d)
Loads one row of a text file as a numerical std::vector.
GLuint GLsizei GLsizei * length
#define MRPT_COMPILE_TIME_ASSERT(expression)
uint64_t factorial64(unsigned int n)
Computes the factorial of an integer number and returns it as a 64-bit integer number.
GLsizei GLsizei GLenum GLenum const GLvoid * data
GLuint GLuint GLsizei count
bool approximatelyEqual(T1 a, T1 b, T2 epsilon)
Compare 2 floats and determine whether they are equal.
void medianFilter(const std::vector< double > &inV, std::vector< double > &outV, const int &winSize, const int &numberOfSigmas=2)
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...
unsigned __int64 uint64_t
int fprintf(FILE *fil, const char *format,...) noexcept MRPT_printf_format_check(2
An OS-independent version of fprintf.
std::string MATLAB_plotCovariance2D(const CMatrixFloat &cov22, const CVectorFloat &mean, const float &stdCount, const std::string &style=std::string("b"), const size_t &nEllipsePoints=30)
Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2...
GLenum GLenum GLvoid * row
GLsizei const GLfloat * value
FILE * fopen(const char *fileName, const char *mode) noexcept
An OS-independent version of fopen.
GLsizei const GLchar ** string
dynamic_vector< float > CVectorFloat
Column vector, like Eigen::MatrixXf, but automatically initialized to zeros since construction.
void normalize(const VEC1 &v, VEC2 &out_v)
Normalize a vector, such as its norm is the unity.
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.
GLubyte GLubyte GLubyte a
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |