Blender
V3.3
|
Functions | |
void | semi_definite_symmetric_eigen (const double *mat, int n, double *eigen_vec, double *eigen_val) |
Variables | |
static const double | EPS = 0.00001 |
static int | MAX_ITER = 100 |
void Freestyle::OGF::MatrixUtil::semi_definite_symmetric_eigen | ( | const double * | mat, |
int | n, | ||
double * | eigen_vec, | ||
double * | eigen_val | ||
) |
computes the eigen values and eigen vectors of a semi definite symmetric matrix
mat | The matrix stored in column symmetric storage, i.e. matrix = { m11, m12, m22, m13, m23, m33, m14, m24, m34, m44 ... } size = n(n+1)/2 |
eigen_vec | (return) = { v1, v2, v3, ..., vn } where vk = vk0, vk1, ..., vkn size = n^2 , must be allocated by caller. |
eigen_val | (return) are in decreasing order size = n , must be allocated by caller. |
Definition at line 19 of file matrix_util.cpp.
References Freestyle::a, KDL::atan(), KDL::cos(), ELEM, EPS, fabs(), l, M_PI_4, MAX_ITER, KDL::sin(), v, and Freestyle::x.
Referenced by Freestyle::OGF::NormalCycle::end().
|
static |
Definition at line 16 of file matrix_util.cpp.
Referenced by semi_definite_symmetric_eigen().
|
static |
Definition at line 17 of file matrix_util.cpp.
Referenced by semi_definite_symmetric_eigen().