Function util::diagmat

Function Documentation

void util::diagmat(std::vector<std::vector<double>> &mat, std::vector<std::vector<double>> &S, std::array<double, 3> &eigval, int maxcyc = 200, double thres = 1e-9)

Diagonalize a symmetric matrix using the Jacobi method.

Parameters:
  • mat – Input matrix (will be modified to diagonal form).

  • S – Output eigenvector matrix (columns are eigenvectors).

  • eigval – Output eigenvalue vector.

  • maxcyc – Maximum number of cycles (default: 200).

  • thres – Convergence threshold (default: 1e-9).