int main()
{
  double t1, t2;
  const int dim = 2000;
  Chronometer chrono;

  t1 = chrono.click();
  Vector x(dim);
  Matrix A(dim);
  t2 = chrono.click();
  std::cout << "Time to create matrix: " << t2 - t1 << " sec.\n";

  t1 = chrono.click();
  matrixAssembly(A);
  t2 = chrono.click();
  std::cout << "Time to compute coefficients of the matrix: " << t2 - t1 << " sec.\n";

  t1 = chrono.click();
  assemblyRhs(A, x);
  t2 = chrono.click();
  std::cout << "Time to compute coefficients of the right hand side: " << t2 - t1 << " sec.\n";

  t1 = chrono.click();
  factorize(A);
  t2 = chrono.click();
  std::cout << "Time to factorize the matrix: " << t2 - t1 << " sec.\n";

  t1 = chrono.click();
  forward(A, x);
  backward(A, x);
  t2 = chrono.click();
  std::cout << "Time to solve the linear system: " << t2 - t1 << " sec.\n";

  verifySolution(x);

  return EXIT_SUCCESS;
}