openrave.org

 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 グループ ページ
関数
ネームスペース OpenRAVE::mathextra

Extra math routines that are useful to have but don't really belong anywhere. [詳細]

関数

float * mult4 (float *pfres, const float *pf1, const float *pf2)
 
float * multtrans3 (float *pfres, const float *pf1, const float *pf2)
 
float * multtrans4 (float *pfres, const float *pf1, const float *pf2)
 
float * transnorm3 (float *pfout, const float *pfmat, const float *pf)
 
float * transpose3 (const float *pf, float *pfres)
 
float * transpose4 (const float *pf, float *pfres)
 
float dot2 (const float *pf1, const float *pf2)
 
float dot3 (const float *pf1, const float *pf2)
 
float dot4 (const float *pf1, const float *pf2)
 
float lengthsqr2 (const float *pf)
 
float lengthsqr3 (const float *pf)
 
float lengthsqr4 (const float *pf)
 
float * normalize2 (float *pfout, const float *pf)
 
float * normalize3 (float *pfout, const float *pf)
 
float * normalize4 (float *pfout, const float *pf)
 
float * cross3 (float *pfout, const float *pf1, const float *pf2)
 
float * mult3_s4 (float *pfres, const float *pf1, const float *pf2)
 
float * mult3_s3 (float *pfres, const float *pf1, const float *pf2)
 
float * inv3 (const float *pf, float *pfres, float *pfdet, int stride)
 
float * inv4 (const float *pf, float *pfres)
 
double * mult4 (double *pfres, const double *pf1, const double *pf2)
 
double * multtrans3 (double *pfres, const double *pf1, const double *pf2)
 
double * multtrans4 (double *pfres, const double *pf1, const double *pf2)
 
double * transnorm3 (double *pfout, const double *pfmat, const double *pf)
 
double * transpose3 (const double *pf, double *pfres)
 
double * transpose4 (const double *pf, double *pfres)
 
double dot2 (const double *pf1, const double *pf2)
 
double dot3 (const double *pf1, const double *pf2)
 
double dot4 (const double *pf1, const double *pf2)
 
double lengthsqr2 (const double *pf)
 
double lengthsqr3 (const double *pf)
 
double lengthsqr4 (const double *pf)
 
double * normalize2 (double *pfout, const double *pf)
 
double * normalize3 (double *pfout, const double *pf)
 
double * normalize4 (double *pfout, const double *pf)
 
double * cross3 (double *pfout, const double *pf1, const double *pf2)
 
double * mult3_s4 (double *pfres, const double *pf1, const double *pf2)
 
double * mult3_s3 (double *pfres, const double *pf1, const double *pf2)
 
double * inv3 (const double *pf, double *pfres, double *pfdet, int stride)
 
double * inv4 (const double *pf, double *pfres)
 
template<typename T >
bool eig2 (const T *pfmat, T *peigs, T &fv1x, T &fv1y, T &fv2x, T &fv2y)
 
OPENRAVE_API int CubicRoots (double c0, double c1, double c2, double *r0, double *r1, double *r2)
 
template<typename T , typename S >
void Tridiagonal3 (S *mat, T *diag, T *subd)
 
OPENRAVE_API bool QLAlgorithm3 (float *m_aafEntry, float *afDiag, float *afSubDiag)
 
OPENRAVE_API bool QLAlgorithm3 (double *m_aafEntry, double *afDiag, double *afSubDiag)
 
OPENRAVE_API void EigenSymmetric3 (const double *fCovariance, double *eval, double *fAxes)
 
template<typename T >
void GetCovarBasisVectors (const T fCovariance[3][3], T vbasis[3][3])
 
template<typename T >
void svd3 (const T *A, T *U, T *D, T *V)
 
template<typename T >
void mult (T *pf, T fa, int r)
 
template<typename T >
int Min (T *pts, int stride, int numPts)
 
template<typename T >
int Max (T *pts, int stride, int numPts)
 
template<typename T , typename R , typename S >
S * mult (T *pf1, R *pf2, int r1, int c1, int c2, S *pfres, bool badd=false)
 
template<typename T , typename R , typename S >
S * multtrans (T *pf1, R *pf2, int r1, int c1, int c2, S *pfres, bool badd=false)
 
template<typename T , typename R , typename S >
S * multtrans_to2 (T *pf1, R *pf2, int r1, int c1, int r2, S *pfres, bool badd=false)
 
template<typename T >
T * multto1 (T *pf1, T *pf2, int r1, int c1, T *pftemp=NULL)
 
template<typename T , typename S >
T * multto2 (T *pf1, S *pf2, int r2, int c2, S *pftemp=NULL)
 
template<typename T >
void sub (T *pf1, T *pf2, int r)
 
template<typename T >
normsqr (const T *pf1, int r)
 
template<typename T >
lengthsqr (const T *pf1, const T *pf2, int length)
 
template<typename T >
dot (T *pf1, T *pf2, int length)
 
template<typename T >
sum (T *pf, int length)
 
template<typename T >
bool inv2 (T *pf, T *pfres)
 takes the inverse of the 2x2 matrix pf and stores it into pfres, returns true if matrix is invertible
 
template<typename T >
int solvequad (T a, T b, T c, T &r1, T &r2)
 
template<typename T >
T * _mult3_s4 (T *pfres, const T *pf1, const T *pf2)
 mult3 with a 3x3 matrix whose row stride is 16 bytes
 
template<typename T >
T * _mult3_s3 (T *pfres, const T *pf1, const T *pf2)
 mult3 with a 3x3 matrix whose row stride is 12 bytes
 
template<typename T >
T * _mult4 (T *pfres, const T *p1, const T *p2)
 
template<typename T >
T * _multtrans3 (T *pfres, const T *pf1, const T *pf2)
 
template<typename T >
T * _multtrans4 (T *pfres, const T *pf1, const T *pf2)
 
template<typename T >
matrixdet3 (const T *pf, int stride)
 Compute the determinant of a 3x3 matrix whose row stride stride elements.
 
template<typename T >
T * _inv3 (const T *pf, T *pfres, T *pfdet, int stride)
 3x3 matrix inverse.
 
template<typename T >
T * _inv4 (const T *pf, T *pfres)
 4x4 matrix inverse.
 
template<typename T >
T * _transpose3 (const T *pf, T *pfres)
 Transpose a 3x3 matrix.
 
template<typename T >
T * _transpose4 (const T *pf, T *pfres)
 Transpose a 4x4 matrix.
 
template<typename T >
_dot2 (const T *pf1, const T *pf2)
 
template<typename T >
_dot3 (const T *pf1, const T *pf2)
 
template<typename T >
_dot4 (const T *pf1, const T *pf2)
 
template<typename T >
_lengthsqr2 (const T *pf)
 
template<typename T >
_lengthsqr3 (const T *pf)
 
template<typename T >
_lengthsqr4 (const T *pf)
 
template<typename T >
T * _normalize2 (T *pfout, const T *pf)
 
template<typename T >
T * _normalize3 (T *pfout, const T *pf)
 
template<typename T >
T * _normalize4 (T *pfout, const T *pf)
 
template<typename T >
T * _cross3 (T *pfout, const T *pf1, const T *pf2)
 
template<typename T >
T * _transnorm3 (T *pfout, const T *pfmat, const T *pf)
 
template<typename T >
void add (T *pf1, T *pf2, int r)
 
template<class T >
bool _QLAlgorithm3 (T *m_aafEntry, T *afDiag, T *afSubDiag)
 

説明

Extra math routines that are useful to have but don't really belong anywhere.

関数

template<typename T >
T* OpenRAVE::mathextra::_cross3 ( T *  pfout,
const T *  pf1,
const T *  pf2 
)
inline

mathextra.h668 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_dot2 ( const T *  pf1,
const T *  pf2 
)
inline

mathextra.h582 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_dot3 ( const T *  pf1,
const T *  pf2 
)
inline

mathextra.h589 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_dot4 ( const T *  pf1,
const T *  pf2 
)
inline

mathextra.h596 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_inv3 ( const T *  pf,
T *  pfres,
T *  pfdet,
int  stride 
)
inline

3x3 matrix inverse.

引数
[in]pfthe input 3x3 matrix
[out]pfthe result of the operation, can be the same matrix as pf
[out]pfdetif not NULL, fills it with the determinant of the source matrix
[in]stridethe stride in elements between elements.

mathextra.h409 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_inv4 ( const T *  pf,
T *  pfres 
)
inline

4x4 matrix inverse.

mathextra.h462 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_lengthsqr2 ( const T *  pf)
inline

mathextra.h603 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_lengthsqr3 ( const T *  pf)
inline

mathextra.h610 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::_lengthsqr4 ( const T *  pf)
inline

mathextra.h617 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_mult3_s3 ( T *  pfres,
const T *  pf1,
const T *  pf2 
)
inline

mult3 with a 3x3 matrix whose row stride is 12 bytes

mathextra.h302 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_mult3_s4 ( T *  pfres,
const T *  pf1,
const T *  pf2 
)
inline

mult3 with a 3x3 matrix whose row stride is 16 bytes

mathextra.h287 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_mult4 ( T *  pfres,
const T *  p1,
const T *  p2 
)
inline

mathextra.h319 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_multtrans3 ( T *  pfres,
const T *  pf1,
const T *  pf2 
)
inline

mathextra.h352 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_multtrans4 ( T *  pfres,
const T *  pf1,
const T *  pf2 
)
inline

mathextra.h376 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_normalize2 ( T *  pfout,
const T *  pf 
)
inline

mathextra.h624 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_normalize3 ( T *  pfout,
const T *  pf 
)
inline

mathextra.h637 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_normalize4 ( T *  pfout,
const T *  pf 
)
inline

mathextra.h652 行で定義されています。

template<class T >
bool OpenRAVE::mathextra::_QLAlgorithm3 ( T *  m_aafEntry,
T *  afDiag,
T *  afSubDiag 
)

math.cpp142 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_transnorm3 ( T *  pfout,
const T *  pfmat,
const T *  pf 
)
inline

mathextra.h682 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_transpose3 ( const T *  pf,
T *  pfres 
)
inline

Transpose a 3x3 matrix.

mathextra.h540 行で定義されています。

template<typename T >
T* OpenRAVE::mathextra::_transpose4 ( const T *  pf,
T *  pfres 
)
inline

Transpose a 4x4 matrix.

mathextra.h560 行で定義されています。

template<typename T >
void OpenRAVE::mathextra::add ( T *  pf1,
T *  pf2,
int  r 
)
inline

mathextra.h1009 行で定義されています。

float * OpenRAVE::mathextra::cross3 ( float *  pfout,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h753 行で定義されています。

double * OpenRAVE::mathextra::cross3 ( double *  pfout,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h824 行で定義されています。

int OpenRAVE::mathextra::CubicRoots ( double  c0,
double  c1,
double  c2,
double *  r0,
double *  r1,
double *  r2 
)

math.cpp27 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::dot ( T *  pf1,
T *  pf2,
int  length 
)
inline

mathextra.h1054 行で定義されています。

float OpenRAVE::mathextra::dot2 ( const float *  pf1,
const float *  pf2 
)
inline

mathextra.h723 行で定義されています。

double OpenRAVE::mathextra::dot2 ( const double *  pf1,
const double *  pf2 
)
inline

mathextra.h794 行で定義されています。

float OpenRAVE::mathextra::dot3 ( const float *  pf1,
const float *  pf2 
)
inline

mathextra.h726 行で定義されています。

double OpenRAVE::mathextra::dot3 ( const double *  pf1,
const double *  pf2 
)
inline

mathextra.h797 行で定義されています。

float OpenRAVE::mathextra::dot4 ( const float *  pf1,
const float *  pf2 
)
inline

mathextra.h729 行で定義されています。

double OpenRAVE::mathextra::dot4 ( const double *  pf1,
const double *  pf2 
)
inline

mathextra.h800 行で定義されています。

template<typename T >
bool OpenRAVE::mathextra::eig2 ( const T *  pfmat,
T *  peigs,
T &  fv1x,
T &  fv1y,
T &  fv2x,
T &  fv2y 
)
inline

extract eigen values and vectors from a 2x2 matrix and returns true if all values are real returned eigen vectors are normalized

mathextra.h212 行で定義されています。

void OpenRAVE::mathextra::EigenSymmetric3 ( const double *  fCovariance,
double *  eval,
double *  fAxes 
)

math.cpp236 行で定義されています。

template<typename T >
void OpenRAVE::mathextra::GetCovarBasisVectors ( const T  fCovariance[3][3],
vbasis[3][3] 
)
inline

Computes the eigenvectors of the covariance matrix and forms a basis

引数
[in]fCovariancea symmetric 3x3 matrix.
[out]vbasisthe basis vectors extracted (form a right hand coordinate system).

mathextra.h134 行で定義されています。

template<typename T >
bool OpenRAVE::mathextra::inv2 ( T *  pf,
T *  pfres 
)
inline

takes the inverse of the 2x2 matrix pf and stores it into pfres, returns true if matrix is invertible

mathextra.h1076 行で定義されています。

float * OpenRAVE::mathextra::inv3 ( const float *  pf,
float *  pfres,
float *  pfdet,
int  stride 
)
inline

mathextra.h765 行で定義されています。

double * OpenRAVE::mathextra::inv3 ( const double *  pf,
double *  pfres,
double *  pfdet,
int  stride 
)
inline

mathextra.h836 行で定義されています。

float * OpenRAVE::mathextra::inv4 ( const float *  pf,
float *  pfres 
)
inline

mathextra.h768 行で定義されています。

double * OpenRAVE::mathextra::inv4 ( const double *  pf,
double *  pfres 
)
inline

mathextra.h839 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::lengthsqr ( const T *  pf1,
const T *  pf2,
int  length 
)
inline

mathextra.h1042 行で定義されています。

float OpenRAVE::mathextra::lengthsqr2 ( const float *  pf)
inline

mathextra.h733 行で定義されています。

double OpenRAVE::mathextra::lengthsqr2 ( const double *  pf)
inline

mathextra.h804 行で定義されています。

float OpenRAVE::mathextra::lengthsqr3 ( const float *  pf)
inline

mathextra.h736 行で定義されています。

double OpenRAVE::mathextra::lengthsqr3 ( const double *  pf)
inline

mathextra.h807 行で定義されています。

float OpenRAVE::mathextra::lengthsqr4 ( const float *  pf)
inline
例:
orplanning_door.cpp.

mathextra.h739 行で定義されています。

double OpenRAVE::mathextra::lengthsqr4 ( const double *  pf)
inline

mathextra.h810 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::matrixdet3 ( const T *  pf,
int  stride 
)
inline

Compute the determinant of a 3x3 matrix whose row stride stride elements.

mathextra.h394 行で定義されています。

template<typename T >
int OpenRAVE::mathextra::Max ( T *  pts,
int  stride,
int  numPts 
)

mathextra.h1211 行で定義されています。

template<typename T >
int OpenRAVE::mathextra::Min ( T *  pts,
int  stride,
int  numPts 
)

mathextra.h1197 行で定義されています。

template<typename T >
void OpenRAVE::mathextra::mult ( T *  pf,
fa,
int  r 
)
inline

mathextra.h154 行で定義されています。

template<typename T , typename R , typename S >
S * OpenRAVE::mathextra::mult ( T *  pf1,
R *  pf2,
int  r1,
int  c1,
int  c2,
S *  pfres,
bool  badd = false 
)
inline

mathextra.h844 行で定義されています。

float * OpenRAVE::mathextra::mult3_s3 ( float *  pfres,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h761 行で定義されています。

double * OpenRAVE::mathextra::mult3_s3 ( double *  pfres,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h832 行で定義されています。

float * OpenRAVE::mathextra::mult3_s4 ( float *  pfres,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h758 行で定義されています。

double * OpenRAVE::mathextra::mult3_s4 ( double *  pfres,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h829 行で定義されています。

float * OpenRAVE::mathextra::mult4 ( float *  pfres,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h702 行で定義されています。

double * OpenRAVE::mathextra::mult4 ( double *  pfres,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h773 行で定義されています。

template<typename T >
T * OpenRAVE::mathextra::multto1 ( T *  pf1,
T *  pf2,
int  r1,
int  c1,
T *  pftemp = NULL 
)
inline

mathextra.h930 行で定義されています。

template<typename T , typename S >
T * OpenRAVE::mathextra::multto2 ( T *  pf1,
S *  pf2,
int  r2,
int  c2,
S *  pftemp = NULL 
)
inline

mathextra.h967 行で定義されています。

template<typename T , typename R , typename S >
S * OpenRAVE::mathextra::multtrans ( T *  pf1,
R *  pf2,
int  r1,
int  c1,
int  c2,
S *  pfres,
bool  badd = false 
)
inline

mathextra.h872 行で定義されています。

float * OpenRAVE::mathextra::multtrans3 ( float *  pfres,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h706 行で定義されています。

double * OpenRAVE::mathextra::multtrans3 ( double *  pfres,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h777 行で定義されています。

float * OpenRAVE::mathextra::multtrans4 ( float *  pfres,
const float *  pf1,
const float *  pf2 
)
inline

mathextra.h709 行で定義されています。

double * OpenRAVE::mathextra::multtrans4 ( double *  pfres,
const double *  pf1,
const double *  pf2 
)
inline

mathextra.h780 行で定義されています。

template<typename T , typename R , typename S >
S * OpenRAVE::mathextra::multtrans_to2 ( T *  pf1,
R *  pf2,
int  r1,
int  c1,
int  r2,
S *  pfres,
bool  badd = false 
)
inline

mathextra.h903 行で定義されています。

float * OpenRAVE::mathextra::normalize2 ( float *  pfout,
const float *  pf 
)
inline

mathextra.h743 行で定義されています。

double * OpenRAVE::mathextra::normalize2 ( double *  pfout,
const double *  pf 
)
inline

mathextra.h814 行で定義されています。

float * OpenRAVE::mathextra::normalize3 ( float *  pfout,
const float *  pf 
)
inline

mathextra.h746 行で定義されています。

double * OpenRAVE::mathextra::normalize3 ( double *  pfout,
const double *  pf 
)
inline

mathextra.h817 行で定義されています。

float * OpenRAVE::mathextra::normalize4 ( float *  pfout,
const float *  pf 
)
inline

mathextra.h749 行で定義されています。

double * OpenRAVE::mathextra::normalize4 ( double *  pfout,
const double *  pf 
)
inline

mathextra.h820 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::normsqr ( const T *  pf1,
int  r 
)
inline

mathextra.h1029 行で定義されています。

bool OpenRAVE::mathextra::QLAlgorithm3 ( float *  m_aafEntry,
float *  afDiag,
float *  afSubDiag 
)

math.cpp226 行で定義されています。

bool OpenRAVE::mathextra::QLAlgorithm3 ( double *  m_aafEntry,
double *  afDiag,
double *  afSubDiag 
)

math.cpp231 行で定義されています。

template<typename T >
int OpenRAVE::mathextra::solvequad ( a,
b,
c,
T &  r1,
T &  r2 
)
inline

mathextra.h256 行で定義されています。

template<typename T >
void OpenRAVE::mathextra::sub ( T *  pf1,
T *  pf2,
int  r 
)
inline

mathextra.h1019 行で定義されています。

template<typename T >
T OpenRAVE::mathextra::sum ( T *  pf,
int  length 
)
inline

mathextra.h1065 行で定義されています。

template<typename T >
void OpenRAVE::mathextra::svd3 ( const T *  A,
T *  U,
T *  D,
T *  V 
)
inline

SVD of a 3x3 matrix A such that A = U*diag(D)*V' The row stride for all matrices is 3*sizeof(T) bytes

引数
[in]A3x3 matrix
[out]U3x3 matrix
[out]D3x1 matrix
[out]V3x3 matrix

mathextra.h1139 行で定義されています。

float * OpenRAVE::mathextra::transnorm3 ( float *  pfout,
const float *  pfmat,
const float *  pf 
)
inline

mathextra.h712 行で定義されています。

double * OpenRAVE::mathextra::transnorm3 ( double *  pfout,
const double *  pfmat,
const double *  pf 
)
inline

mathextra.h783 行で定義されています。

float * OpenRAVE::mathextra::transpose3 ( const float *  pf,
float *  pfres 
)
inline

mathextra.h716 行で定義されています。

double * OpenRAVE::mathextra::transpose3 ( const double *  pf,
double *  pfres 
)
inline

mathextra.h787 行で定義されています。

float * OpenRAVE::mathextra::transpose4 ( const float *  pf,
float *  pfres 
)
inline

mathextra.h719 行で定義されています。

double * OpenRAVE::mathextra::transpose4 ( const double *  pf,
double *  pfres 
)
inline

mathextra.h790 行で定義されています。

template<typename T , typename S >
void OpenRAVE::mathextra::Tridiagonal3 ( S *  mat,
T *  diag,
T *  subd 
)

mathextra.h1101 行で定義されています。