Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addition to the quadrature module: quadrature based on the tanh-sinh transform #612

Open
arjenmarkus opened this issue Dec 31, 2021 · 3 comments
Labels
idea Proposition of an idea and opening an issue to discuss it

Comments

@arjenmarkus
Copy link
Member

I am working on a Fortran version of the quadrature method via the tanh-sinh transform as described by Bailey et al. Experimental Mathematics in Action . Its properties are:

  • Accurate (although probably using more function evaluations than the current quadrature formulae)
  • Capable of handling integrable singularities and infinite derivatives, as long as the function is smooth
  • Easy to use and extensible to 2- and 3-dimensional functions (in principle more dimensions are possible, but that gets cumbersome and likely slow)

Would this be a suitable addition to the standard library?

@jvdp1
Copy link
Member

jvdp1 commented Dec 31, 2021

I believe so, yes. Thank you.

@arjenmarkus
Copy link
Member Author

I have attached a very first version of the module -
quadrature_tanh_sinh.f90.txt

@arjenmarkus arjenmarkus added the idea Proposition of an idea and opening an issue to discuss it label Jan 4, 2022
@ivan-pi
Copy link
Member

ivan-pi commented Jan 19, 2022

@arjenmarkus, I've found a good-looking Fortran implementation of the tanh-sinh quadrature, originally called double-exponential quadrature, made available here by Takuya Ooura from Kyoto University.

[Edit: I've found at least one paper which references the code, stating the code is both efficient and accurate]

Wikipedia also links to a page from John Cook who published a C++ implementation: "Double Exponential Integration" with source code.

[Edit: apparently the code from John Cook is not available anymore at the original website, but I've found a copy on GitHub by searching for the header file "DEIntegrator.h"].

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
idea Proposition of an idea and opening an issue to discuss it
Projects
None yet
Development

No branches or pull requests

3 participants