mat3: std::array<std::pair<float, vec3>, 3> eigen() const
Return three eigenvalues and eigenvectors of the symmetric matrix.
The method used to calculate these eigenvalues and eigenvectors can be found here.
Example
#include "include/mat3.h"
#include <iostream>
int main() {
nml::mat3 m = nml::mat3::identity();
std::array<std::pair<float, nml::vec3>, 3> eigen = m.eigen();
std::cout << eigen[0].first << " - " << nml::to_string(eigen[0].second) << std::endl;
std::cout << eigen[1].first << " - " << nml::to_string(eigen[1].second) << std::endl;
std::cout << eigen[2].first << " - " << nml::to_string(eigen[2].second) << std::endl;
return 0;
}
Result:
1 - [1.000000, 0.000000, 0.000000]
1 - [0.000000, 1.000000, 0.000000]
1 - [0.000000, 0.000000, 1.000000]