diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-27 15:13:34 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-11-27 15:13:34 -0700 |
commit | f0b420e8cdd3736e64122c64ab6057b19a12bffc (patch) | |
tree | f8a3ee4b49fdd098138c2fd2c01355926febc22a /src | |
parent | 0981ffa00ce520df1134714206a70bcc1a08303e (diff) | |
download | cmath-f0b420e8cdd3736e64122c64ab6057b19a12bffc.tar.gz cmath-f0b420e8cdd3736e64122c64ab6057b19a12bffc.zip |
recompile software manual after hw 7 and hw 7 p6
Diffstat (limited to 'src')
-rw-r--r-- | src/eigen.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/eigen.c b/src/eigen.c index 92ef88c..49cc0e4 100644 --- a/src/eigen.c +++ b/src/eigen.c @@ -4,19 +4,9 @@ #include <stdio.h> #include <string.h> -Matrix_double *leslie_matrix(Array_double *age_class_surivor_ratio, - Array_double *age_class_offspring) { - assert(age_class_surivor_ratio->size + 1 == age_class_offspring->size); - - Matrix_double *leslie = InitMatrixWithSize(double, age_class_offspring->size, - age_class_offspring->size, 0.0); - - free_vector(leslie->data[0]); - leslie->data[0] = copy_vector(age_class_offspring); - - for (size_t i = 0; i < age_class_surivor_ratio->size; i++) - leslie->data[i + 1]->data[i] = age_class_surivor_ratio->data[i]; - return leslie; +double least_dominant_eigenvalue(Matrix_double *m, Array_double *v, + double tolerance, size_t max_iterations) { + return shift_inverse_power_eigenvalue(m, v, 0.0, tolerance, max_iterations); } double dominant_eigenvalue(Matrix_double *m, Array_double *v, double tolerance, @@ -110,7 +100,17 @@ Array_double *partition_find_eigenvalues(Matrix_double *m, return eigenvalues; } -double least_dominant_eigenvalue(Matrix_double *m, Array_double *v, - double tolerance, size_t max_iterations) { - return shift_inverse_power_eigenvalue(m, v, 0.0, tolerance, max_iterations); +Matrix_double *leslie_matrix(Array_double *age_class_surivor_ratio, + Array_double *age_class_offspring) { + assert(age_class_surivor_ratio->size + 1 == age_class_offspring->size); + + Matrix_double *leslie = InitMatrixWithSize(double, age_class_offspring->size, + age_class_offspring->size, 0.0); + + free_vector(leslie->data[0]); + leslie->data[0] = copy_vector(age_class_offspring); + + for (size_t i = 0; i < age_class_surivor_ratio->size; i++) + leslie->data[i + 1]->data[i] = age_class_surivor_ratio->data[i]; + return leslie; } |