36 lines
643 B
C++
36 lines
643 B
C++
#include <cassert>
|
|
#include <cmath>
|
|
|
|
#include "matrix.hpp"
|
|
|
|
void test_create_symmetric_tridiagonal() {
|
|
double tol = 10e-8;
|
|
double diff;
|
|
int N = 6;
|
|
double h = 1./(double) (N+1);
|
|
double a = -1. / (h*h), d = 2. / (h*h);
|
|
|
|
arma::mat A = create_symmetric_tridiagonal(N, a, d);
|
|
|
|
arma::vec eigval;
|
|
arma::mat eigvec;
|
|
|
|
arma::eig_sym(eigval, eigvec, A);
|
|
|
|
for (int i=0; i < N; i++) {
|
|
diff = eigval(i) - (d + 2.*a*std::cos(((i+1.)*M_PI)/(N+1.)));
|
|
assert(std::abs(diff) < tol);
|
|
}
|
|
}
|
|
|
|
void test_max_off_diag_symmetric() {
|
|
|
|
}
|
|
|
|
int main() {
|
|
|
|
test_create_symmetric_tridiagonal();
|
|
|
|
return 0;
|
|
}
|