isDerogatoryMatrix method

bool isDerogatoryMatrix()

Checks if the matrix is a derogatory matrix.

Example:

Matrix M = Matrix([
  [2, 1],
  [1, 2]
]);
print(M.isDerogatoryMatrix()); // Output: false

Implementation

bool isDerogatoryMatrix() {
  List eigenvalues = this.eigenvalues();
  Map<dynamic, dynamic> eigenvalueCounts = {};

  for (dynamic eigenvalue in eigenvalues) {
    eigenvalueCounts[eigenvalue] =
        ((eigenvalueCounts[eigenvalue] ?? Complex(0))) + Complex.one();
  }

  for (dynamic eigenvalue in eigenvalueCounts.keys) {
    if (eigenvalueCounts[eigenvalue]! > Complex.one()) {
      return true;
    }
  }
  return false;
}