Example #1
0
unsigned int Model::check_feedback_matrix(Eigen::MatrixXd &S) {

  Eigen::VectorXcd eigenvalues = S.eigenvalues();
  Eigen::VectorXd real = eigenvalues.real();
  Eigen::VectorXd imag = eigenvalues.imag();

  double magnitude, max_magnitude = 0;
  for (unsigned int i = 0; i < n_alternatives; i++) {
    magnitude = sqrt(real(i) * real(i) + imag(i) * imag(i));
    if (magnitude > max_magnitude) {
      max_magnitude = magnitude;
    }
  }

  // unsigned int res = 1;
  unsigned int res = 0;
  if (max_magnitude < 1) {
    res = 0;
  }

  return res;
}