diff options
author | Alberto Ruiz <aruiz@um.es> | 2012-02-08 09:26:46 -0800 |
---|---|---|
committer | Alberto Ruiz <aruiz@um.es> | 2012-02-08 09:26:46 -0800 |
commit | 746427e5ec5d1f3fec2ec2ddec4f041f5563596a (patch) | |
tree | f38528b173720ed9b20f8c9adcf9a28b227170ab /lib/Numeric/GSL/gsl-aux.c | |
parent | 3ac7bc8155e472b2c85966bd1d521d0739e67562 (diff) | |
parent | 1319c4ddae89c41633a4cd894ba28896d3445e79 (diff) |
Merge pull request #9 from cdhf/master
Support for integration over infinite intervals
Diffstat (limited to 'lib/Numeric/GSL/gsl-aux.c')
-rw-r--r-- | lib/Numeric/GSL/gsl-aux.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/Numeric/GSL/gsl-aux.c b/lib/Numeric/GSL/gsl-aux.c index 33d7dab..5c17836 100644 --- a/lib/Numeric/GSL/gsl-aux.c +++ b/lib/Numeric/GSL/gsl-aux.c | |||
@@ -761,6 +761,48 @@ int integrate_qags(double f(double,void*), double a, double b, double prec, int | |||
761 | OK | 761 | OK |
762 | } | 762 | } |
763 | 763 | ||
764 | int integrate_qagi(double f(double,void*), double prec, int w, | ||
765 | double *result, double* error) { | ||
766 | DEBUGMSG("integrate_qagi"); | ||
767 | gsl_integration_workspace * wk = gsl_integration_workspace_alloc (w); | ||
768 | gsl_function F; | ||
769 | F.function = f; | ||
770 | F.params = NULL; | ||
771 | int res = gsl_integration_qagi (&F, 0, prec, w,wk, result, error); | ||
772 | CHECK(res,res); | ||
773 | gsl_integration_workspace_free (wk); | ||
774 | OK | ||
775 | } | ||
776 | |||
777 | |||
778 | int integrate_qagiu(double f(double,void*), double a, double prec, int w, | ||
779 | double *result, double* error) { | ||
780 | DEBUGMSG("integrate_qagiu"); | ||
781 | gsl_integration_workspace * wk = gsl_integration_workspace_alloc (w); | ||
782 | gsl_function F; | ||
783 | F.function = f; | ||
784 | F.params = NULL; | ||
785 | int res = gsl_integration_qagiu (&F, a, 0, prec, w,wk, result, error); | ||
786 | CHECK(res,res); | ||
787 | gsl_integration_workspace_free (wk); | ||
788 | OK | ||
789 | } | ||
790 | |||
791 | |||
792 | int integrate_qagil(double f(double,void*), double b, double prec, int w, | ||
793 | double *result, double* error) { | ||
794 | DEBUGMSG("integrate_qagil"); | ||
795 | gsl_integration_workspace * wk = gsl_integration_workspace_alloc (w); | ||
796 | gsl_function F; | ||
797 | F.function = f; | ||
798 | F.params = NULL; | ||
799 | int res = gsl_integration_qagil (&F, b, 0, prec, w,wk, result, error); | ||
800 | CHECK(res,res); | ||
801 | gsl_integration_workspace_free (wk); | ||
802 | OK | ||
803 | } | ||
804 | |||
805 | |||
764 | int polySolve(KRVEC(a), CVEC(z)) { | 806 | int polySolve(KRVEC(a), CVEC(z)) { |
765 | DEBUGMSG("polySolve"); | 807 | DEBUGMSG("polySolve"); |
766 | REQUIRES(an>1,BAD_SIZE); | 808 | REQUIRES(an>1,BAD_SIZE); |