Blender  V3.3
Functions | Variables
Freestyle::OGF::MatrixUtil Namespace Reference

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
 

Function Documentation

◆ semi_definite_symmetric_eigen()

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

Parameters
matThe 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().

Variable Documentation

◆ EPS

const double Freestyle::OGF::MatrixUtil::EPS = 0.00001
static

Definition at line 16 of file matrix_util.cpp.

Referenced by semi_definite_symmetric_eigen().

◆ MAX_ITER

int Freestyle::OGF::MatrixUtil::MAX_ITER = 100
static

Definition at line 17 of file matrix_util.cpp.

Referenced by semi_definite_symmetric_eigen().