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 > | |
T | normsqr (const T *pf1, int r) |
template<typename T > | |
T | lengthsqr (const T *pf1, const T *pf2, int length) |
template<typename T > | |
T | dot (T *pf1, T *pf2, int length) |
template<typename T > | |
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 > | |
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 > | |
T | _dot2 (const T *pf1, const T *pf2) |
template<typename T > | |
T | _dot3 (const T *pf1, const T *pf2) |
template<typename T > | |
T | _dot4 (const T *pf1, const T *pf2) |
template<typename T > | |
T | _lengthsqr2 (const T *pf) |
template<typename T > | |
T | _lengthsqr3 (const T *pf) |
template<typename T > | |
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.
|
inline |
mathextra.h の 668 行で定義されています。
|
inline |
mathextra.h の 582 行で定義されています。
|
inline |
mathextra.h の 589 行で定義されています。
|
inline |
mathextra.h の 596 行で定義されています。
|
inline |
3x3 matrix inverse.
[in] | pf | the input 3x3 matrix |
[out] | pf | the result of the operation, can be the same matrix as pf |
[out] | pfdet | if not NULL, fills it with the determinant of the source matrix |
[in] | stride | the stride in elements between elements. |
mathextra.h の 409 行で定義されています。
|
inline |
4x4 matrix inverse.
mathextra.h の 462 行で定義されています。
|
inline |
mathextra.h の 603 行で定義されています。
|
inline |
mathextra.h の 610 行で定義されています。
|
inline |
mathextra.h の 617 行で定義されています。
|
inline |
mult3 with a 3x3 matrix whose row stride is 12 bytes
mathextra.h の 302 行で定義されています。
|
inline |
mult3 with a 3x3 matrix whose row stride is 16 bytes
mathextra.h の 287 行で定義されています。
|
inline |
mathextra.h の 319 行で定義されています。
|
inline |
mathextra.h の 352 行で定義されています。
|
inline |
mathextra.h の 376 行で定義されています。
|
inline |
mathextra.h の 624 行で定義されています。
|
inline |
mathextra.h の 637 行で定義されています。
|
inline |
mathextra.h の 652 行で定義されています。
bool OpenRAVE::mathextra::_QLAlgorithm3 | ( | T * | m_aafEntry, |
T * | afDiag, | ||
T * | afSubDiag | ||
) |
|
inline |
mathextra.h の 682 行で定義されています。
|
inline |
Transpose a 3x3 matrix.
mathextra.h の 540 行で定義されています。
|
inline |
Transpose a 4x4 matrix.
mathextra.h の 560 行で定義されています。
|
inline |
mathextra.h の 1009 行で定義されています。
|
inline |
mathextra.h の 753 行で定義されています。
|
inline |
mathextra.h の 824 行で定義されています。
int OpenRAVE::mathextra::CubicRoots | ( | double | c0, |
double | c1, | ||
double | c2, | ||
double * | r0, | ||
double * | r1, | ||
double * | r2 | ||
) |
|
inline |
mathextra.h の 1054 行で定義されています。
|
inline |
mathextra.h の 723 行で定義されています。
|
inline |
mathextra.h の 794 行で定義されています。
|
inline |
mathextra.h の 726 行で定義されています。
|
inline |
mathextra.h の 797 行で定義されています。
|
inline |
mathextra.h の 729 行で定義されています。
|
inline |
mathextra.h の 800 行で定義されています。
|
inline |
extract eigen values and vectors from a 2x2 matrix and returns true if all values are real returned eigen vectors are normalized
mathextra.h の 212 行で定義されています。
void OpenRAVE::mathextra::EigenSymmetric3 | ( | const double * | fCovariance, |
double * | eval, | ||
double * | fAxes | ||
) |
|
inline |
Computes the eigenvectors of the covariance matrix and forms a basis
[in] | fCovariance | a symmetric 3x3 matrix. |
[out] | vbasis | the basis vectors extracted (form a right hand coordinate system). |
mathextra.h の 134 行で定義されています。
|
inline |
takes the inverse of the 2x2 matrix pf and stores it into pfres, returns true if matrix is invertible
mathextra.h の 1076 行で定義されています。
|
inline |
mathextra.h の 765 行で定義されています。
|
inline |
mathextra.h の 836 行で定義されています。
|
inline |
mathextra.h の 768 行で定義されています。
|
inline |
mathextra.h の 839 行で定義されています。
|
inline |
mathextra.h の 1042 行で定義されています。
|
inline |
mathextra.h の 733 行で定義されています。
|
inline |
mathextra.h の 804 行で定義されています。
|
inline |
mathextra.h の 736 行で定義されています。
|
inline |
mathextra.h の 807 行で定義されています。
|
inline |
mathextra.h の 739 行で定義されています。
|
inline |
mathextra.h の 810 行で定義されています。
|
inline |
Compute the determinant of a 3x3 matrix whose row stride stride elements.
mathextra.h の 394 行で定義されています。
int OpenRAVE::mathextra::Max | ( | T * | pts, |
int | stride, | ||
int | numPts | ||
) |
mathextra.h の 1211 行で定義されています。
int OpenRAVE::mathextra::Min | ( | T * | pts, |
int | stride, | ||
int | numPts | ||
) |
mathextra.h の 1197 行で定義されています。
|
inline |
mathextra.h の 154 行で定義されています。
|
inline |
mathextra.h の 844 行で定義されています。
|
inline |
mathextra.h の 761 行で定義されています。
|
inline |
mathextra.h の 832 行で定義されています。
|
inline |
mathextra.h の 758 行で定義されています。
|
inline |
mathextra.h の 829 行で定義されています。
|
inline |
mathextra.h の 702 行で定義されています。
|
inline |
mathextra.h の 773 行で定義されています。
|
inline |
mathextra.h の 930 行で定義されています。
|
inline |
mathextra.h の 967 行で定義されています。
|
inline |
mathextra.h の 872 行で定義されています。
|
inline |
mathextra.h の 706 行で定義されています。
|
inline |
mathextra.h の 777 行で定義されています。
|
inline |
mathextra.h の 709 行で定義されています。
|
inline |
mathextra.h の 780 行で定義されています。
|
inline |
mathextra.h の 903 行で定義されています。
|
inline |
mathextra.h の 743 行で定義されています。
|
inline |
mathextra.h の 814 行で定義されています。
|
inline |
mathextra.h の 746 行で定義されています。
|
inline |
mathextra.h の 817 行で定義されています。
|
inline |
mathextra.h の 749 行で定義されています。
|
inline |
mathextra.h の 820 行で定義されています。
|
inline |
mathextra.h の 1029 行で定義されています。
bool OpenRAVE::mathextra::QLAlgorithm3 | ( | float * | m_aafEntry, |
float * | afDiag, | ||
float * | afSubDiag | ||
) |
bool OpenRAVE::mathextra::QLAlgorithm3 | ( | double * | m_aafEntry, |
double * | afDiag, | ||
double * | afSubDiag | ||
) |
|
inline |
mathextra.h の 256 行で定義されています。
|
inline |
mathextra.h の 1019 行で定義されています。
|
inline |
mathextra.h の 1065 行で定義されています。
|
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] | A | 3x3 matrix |
[out] | U | 3x3 matrix |
[out] | D | 3x1 matrix |
[out] | V | 3x3 matrix |
mathextra.h の 1139 行で定義されています。
|
inline |
mathextra.h の 712 行で定義されています。
|
inline |
mathextra.h の 783 行で定義されています。
|
inline |
mathextra.h の 716 行で定義されています。
|
inline |
mathextra.h の 787 行で定義されています。
|
inline |
mathextra.h の 719 行で定義されています。
|
inline |
mathextra.h の 790 行で定義されています。
void OpenRAVE::mathextra::Tridiagonal3 | ( | S * | mat, |
T * | diag, | ||
T * | subd | ||
) |
mathextra.h の 1101 行で定義されています。