MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / compute_batch_symmetric_2x2

Method compute_batch_symmetric_2x2

tools/EigenUtils/EigenSolver.cpp:26–43  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24}
25
26void EigenSolver::compute_batch_symmetric_2x2(const VectorF& matrices) {
27 const size_t dim = 2;
28 const size_t flatten_size = 3;
29 const size_t num_matrices = matrices.size() / flatten_size;
30 m_eigen_values = VectorF(num_matrices * dim);
31 m_eigen_vectors = MatrixF(num_matrices * dim, dim);
32 for (size_t i=0; i<num_matrices; i++) {
33 const VectorF& entries = matrices.segment(i*flatten_size, flatten_size);
34 MatrixF M(dim, dim);
35 size_t base_idx = i*flatten_size;
36 M << matrices[base_idx ], matrices[base_idx+2],
37 matrices[base_idx+2], matrices[base_idx+1],
38 m_solver.compute(M);
39 m_eigen_values.segment(i*dim, dim) = m_solver.eigenvalues().real();
40 m_eigen_vectors.block(i*dim, 0, dim, dim) =
41 m_solver.eigenvectors().real();
42 }
43}
44
45void EigenSolver::compute_batch_symmetric_3x3(const VectorF& matrices) {
46 const size_t dim = 3;

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.45
computeMethod · 0.45

Tested by

no test coverage detected