Blender  V3.3
Namespaces | Macros | Typedefs | Functions
numeric.h File Reference
#include <Eigen/Cholesky>
#include <Eigen/Core>
#include <Eigen/Eigenvalues>
#include <Eigen/Geometry>
#include <Eigen/LU>
#include <Eigen/QR>
#include <Eigen/SVD>

Go to the source code of this file.

Namespaces

 libmv
 

Macros

#define COLS
 
#define ROWS
 

Typedefs

typedef Eigen::MatrixXd libmv::Mat
 
typedef Eigen::VectorXd libmv::Vec
 
typedef Eigen::MatrixXf libmv::Matf
 
typedef Eigen::VectorXf libmv::Vecf
 
typedef Eigen::Matrix< unsigned int, Eigen::Dynamic, Eigen::Dynamic > libmv::Matu
 
typedef Eigen::Matrix< unsigned int, Eigen::Dynamic, 1 > libmv::Vecu
 
typedef Eigen::Matrix< unsigned int, 2, 1 > libmv::Vec2u
 
typedef Eigen::Matrix< double, 2, 2 > libmv::Mat2
 
typedef Eigen::Matrix< double, 2, 3 > libmv::Mat23
 
typedef Eigen::Matrix< double, 3, 3 > libmv::Mat3
 
typedef Eigen::Matrix< double, 3, 4 > libmv::Mat34
 
typedef Eigen::Matrix< double, 3, 5 > libmv::Mat35
 
typedef Eigen::Matrix< double, 4, 1 > libmv::Mat41
 
typedef Eigen::Matrix< double, 4, 3 > libmv::Mat43
 
typedef Eigen::Matrix< double, 4, 4 > libmv::Mat4
 
typedef Eigen::Matrix< double, 4, 6 > libmv::Mat46
 
typedef Eigen::Matrix< float, 2, 2 > libmv::Mat2f
 
typedef Eigen::Matrix< float, 2, 3 > libmv::Mat23f
 
typedef Eigen::Matrix< float, 3, 3 > libmv::Mat3f
 
typedef Eigen::Matrix< float, 3, 4 > libmv::Mat34f
 
typedef Eigen::Matrix< float, 3, 5 > libmv::Mat35f
 
typedef Eigen::Matrix< float, 4, 3 > libmv::Mat43f
 
typedef Eigen::Matrix< float, 4, 4 > libmv::Mat4f
 
typedef Eigen::Matrix< float, 4, 6 > libmv::Mat46f
 
typedef Eigen::Matrix< double, 3, 3, Eigen::RowMajor > libmv::RMat3
 
typedef Eigen::Matrix< double, 4, 4, Eigen::RowMajor > libmv::RMat4
 
typedef Eigen::Matrix< double, 2, Eigen::Dynamic > libmv::Mat2X
 
typedef Eigen::Matrix< double, 3, Eigen::Dynamic > libmv::Mat3X
 
typedef Eigen::Matrix< double, 4, Eigen::Dynamic > libmv::Mat4X
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 2 > libmv::MatX2
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 3 > libmv::MatX3
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 4 > libmv::MatX4
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 5 > libmv::MatX5
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 6 > libmv::MatX6
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 7 > libmv::MatX7
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 8 > libmv::MatX8
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 9 > libmv::MatX9
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 15 > libmv::MatX15
 
typedef Eigen::Matrix< double, Eigen::Dynamic, 16 > libmv::MatX16
 
typedef Eigen::Vector2d libmv::Vec2
 
typedef Eigen::Vector3d libmv::Vec3
 
typedef Eigen::Vector4d libmv::Vec4
 
typedef Eigen::Matrix< double, 5, 1 > libmv::Vec5
 
typedef Eigen::Matrix< double, 6, 1 > libmv::Vec6
 
typedef Eigen::Matrix< double, 7, 1 > libmv::Vec7
 
typedef Eigen::Matrix< double, 8, 1 > libmv::Vec8
 
typedef Eigen::Matrix< double, 9, 1 > libmv::Vec9
 
typedef Eigen::Matrix< double, 10, 1 > libmv::Vec10
 
typedef Eigen::Matrix< double, 11, 1 > libmv::Vec11
 
typedef Eigen::Matrix< double, 12, 1 > libmv::Vec12
 
typedef Eigen::Matrix< double, 13, 1 > libmv::Vec13
 
typedef Eigen::Matrix< double, 14, 1 > libmv::Vec14
 
typedef Eigen::Matrix< double, 15, 1 > libmv::Vec15
 
typedef Eigen::Matrix< double, 16, 1 > libmv::Vec16
 
typedef Eigen::Matrix< double, 17, 1 > libmv::Vec17
 
typedef Eigen::Matrix< double, 18, 1 > libmv::Vec18
 
typedef Eigen::Matrix< double, 19, 1 > libmv::Vec19
 
typedef Eigen::Matrix< double, 20, 1 > libmv::Vec20
 
typedef Eigen::Vector2f libmv::Vec2f
 
typedef Eigen::Vector3f libmv::Vec3f
 
typedef Eigen::Vector4f libmv::Vec4f
 
typedef Eigen::VectorXi libmv::VecXi
 
typedef Eigen::Vector2i libmv::Vec2i
 
typedef Eigen::Vector3i libmv::Vec3i
 
typedef Eigen::Vector4i libmv::Vec4i
 
typedef Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > libmv::RMatf
 
typedef Eigen::NumTraits< doublelibmv::EigenDouble
 

Functions

template<typename TMat , typename TVec >
void libmv::SVD (TMat *, Vec *, Mat *, Mat *)
 
template<typename TMat , typename TVec >
double libmv::Nullspace (TMat *A, TVec *nullspace)
 
template<typename TMat , typename TVec1 , typename TVec2 >
double libmv::Nullspace2 (TMat *A, TVec1 *x1, TVec2 *x2)
 
template<class TA >
void libmv::TransposeInPlace (TA *A)
 
template<typename TVec >
double libmv::NormL1 (const TVec &x)
 
template<typename TVec >
double libmv::NormL2 (const TVec &x)
 
template<typename TVec >
double libmv::NormLInfinity (const TVec &x)
 
template<typename TVec >
double libmv::DistanceL1 (const TVec &x, const TVec &y)
 
template<typename TVec >
double libmv::DistanceL2 (const TVec &x, const TVec &y)
 
template<typename TVec >
double libmv::DistanceLInfinity (const TVec &x, const TVec &y)
 
template<typename TVec >
double libmv::NormalizeL1 (TVec *x)
 
template<typename TVec >
double libmv::NormalizeL2 (TVec *x)
 
template<typename TVec >
double libmv::NormalizeLInfinity (TVec *x)
 
template<typename T >
T libmv::Square (T x)
 
Mat3 libmv::RotationAroundX (double angle)
 
Mat3 libmv::RotationAroundY (double angle)
 
Mat3 libmv::RotationAroundZ (double angle)
 
Mat3 libmv::RotationRodrigues (const Vec3 &axis)
 
Mat3 libmv::LookAt (Vec3 center)
 
template<typename TVec >
Mat libmv::Diag (const TVec &x)
 
template<typename TMat >
double libmv::FrobeniusNorm (const TMat &A)
 
template<typename TMat >
double libmv::FrobeniusDistance (const TMat &A, const TMat &B)
 
Vec3 libmv::CrossProduct (const Vec3 &x, const Vec3 &y)
 
Mat3 libmv::CrossProductMatrix (const Vec3 &x)
 
void libmv::MeanAndVarianceAlongRows (const Mat &A, Vec *mean_pointer, Vec *variance_pointer)
 
template<typename T , int RowsLeft, int RowsRight, int ColsLeft, int ColsRight>
Eigen::Matrix< T, ROWS, COLSlibmv::HStack (const Eigen::Matrix< T, RowsLeft, ColsLeft > &left, const Eigen::Matrix< T, RowsRight, ColsRight > &right)
 
template<typename T , int RowsLeft, int RowsRight, int ColsLeft, int ColsRight>
Eigen::Matrix< T, COLS, ROWSlibmv::VStack (const Eigen::Matrix< T, ColsLeft, RowsLeft > &top, const Eigen::Matrix< T, ColsRight, RowsRight > &bottom)
 
void libmv::HorizontalStack (const Mat &left, const Mat &right, Mat *stacked)
 
template<typename TTop , typename TBot , typename TStacked >
void libmv::VerticalStack (const TTop &top, const TBot &bottom, TStacked *stacked)
 
void libmv::MatrixColumn (const Mat &A, int i, Vec2 *v)
 
void libmv::MatrixColumn (const Mat &A, int i, Vec3 *v)
 
void libmv::MatrixColumn (const Mat &A, int i, Vec4 *v)
 
template<typename TMat , typename TCols >
TMat libmv::ExtractColumns (const TMat &A, const TCols &columns)
 
template<typename TMat , typename TDest >
void libmv::reshape (const TMat &a, int rows, int cols, TDest *b)
 
bool libmv::isnan (double i)
 
template<typename FloatType >
FloatType libmv::ceil0 (const FloatType &value)
 
Mat3 libmv::SkewMat (const Vec3 &x)
 Returns the skew anti-symmetric matrix of a vector. More...
 
Mat23 libmv::SkewMatMinimal (const Vec2 &x)
 
Mat3 libmv::RotationFromEulerVector (Vec3 euler_vector)
 Returns the rotaiton matrix built from given vector of euler angles. More...
 

Macro Definition Documentation

◆ COLS

#define COLS
Value:
((ColsLeft == Eigen::Dynamic || ColsRight == Eigen::Dynamic) \
? Eigen::Dynamic \
: (ColsLeft + ColsRight))

Definition at line 363 of file numeric.h.

◆ ROWS

#define ROWS
Value:
((RowsLeft == Eigen::Dynamic && RowsRight == Eigen::Dynamic) \
? Eigen::Dynamic \
: ((RowsLeft == Eigen::Dynamic) ? RowsRight : RowsLeft))

Definition at line 369 of file numeric.h.