41 M_[0] = M_[1] = M_[2] = M_[3] = M_[4] = M_[5] = 0;
46 double eigen_vectors[9];
49 axis_[0] =
Vec3r(eigen_vectors[0], eigen_vectors[1], eigen_vectors[2]);
51 axis_[1] =
Vec3r(eigen_vectors[3], eigen_vectors[4], eigen_vectors[5]);
53 axis_[2] =
Vec3r(eigen_vectors[6], eigen_vectors[7], eigen_vectors[8]);
56 for (
int i = 0; i < 3; i++) {
65 double l0 =
::fabs(eigen_value_[0]);
66 double l1 =
::fabs(eigen_value_[1]);
67 double l2 =
::fabs(eigen_value_[2]);
Vec< T, N > & normalize()
VecMat::Vec3< real > Vec3r
void semi_definite_symmetric_eigen(const double *mat, int n, double *eigen_vec, double *eigen_val)
void ogf_swap(T &x, T &y)
ccl_device_inline float2 fabs(const float2 &a)