// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0

#include <contrib/Eigen/Polynomials>
#include <iostream>

using namespace Eigen;
using namespace std;

int main() {
  Vector4d roots = Vector4d::Random();
  cout << "Roots: " << roots.transpose() << endl;
  Eigen::Matrix<double, 5, 1> polynomial;
  roots_to_monicPolynomial(roots, polynomial);
  cout << "Polynomial: ";
  for (int i = 0; i < 4; ++i) {
    cout << polynomial[i] << ".x^" << i << "+ ";
  }
  cout << polynomial[4] << ".x^4" << endl;
  Vector4d evaluation;
  for (int i = 0; i < 4; ++i) {
    evaluation[i] = poly_eval(polynomial, roots[i]);
  }
  cout << "Evaluation of the polynomial at the roots: " << evaluation.transpose();
}
