diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-15 14:16:15 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-15 14:16:15 -0700 |
commit | 1a6b95273628d898226eb448c8b671dc33f3c495 (patch) | |
tree | 08ebde756da3214142acaaa15ef45a1eea7e9970 /test/eigen.t.c | |
parent | 3f1f18b149788fe69180dc2a348fd32425bb9a3f (diff) | |
download | cmath-1a6b95273628d898226eb448c8b671dc33f3c495.tar.gz cmath-1a6b95273628d898226eb448c8b671dc33f3c495.zip |
compute dominant eigenvalue
Diffstat (limited to 'test/eigen.t.c')
-rw-r--r-- | test/eigen.t.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/eigen.t.c b/test/eigen.t.c new file mode 100644 index 0000000..985a304 --- /dev/null +++ b/test/eigen.t.c @@ -0,0 +1,23 @@ +#include "lizfcm.test.h" + +UTEST(eigen, dominant_eigenvalue) { + Matrix_double *m = InitMatrixWithSize(double, 2, 2, 0.0); + m->data[0]->data[0] = 2.0; + m->data[0]->data[1] = -12.0; + m->data[1]->data[0] = 1.0; + m->data[1]->data[1] = -5.0; + + Array_double *v_guess = InitArrayWithSize(double, 2, 1.0); + double tolerance = 0.0001; + uint64_t max_iterations = 64; + + double expect_dominant_eigenvalue = -2.0; + + double approx_dominant_eigenvalue = + dominant_eigenvalue(m, v_guess, tolerance, max_iterations); + + EXPECT_NEAR(expect_dominant_eigenvalue, approx_dominant_eigenvalue, + tolerance); + free_matrix(m); + free_vector(v_guess); +} |