-
Notifications
You must be signed in to change notification settings - Fork 43
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
Question: automatic integration #51
Comments
Usually automatic integrators use low order quadrature rules on many small panels, with a focus on handling singularities, so it's not clear how useful fast high order quadrature schemes are. In the case of Clenshaw-Curtis, you can use ApproxFuns adaptive constructor. But there is no error estimate. |
The issue with the adaptive methods is that they can require lots of storage, something like (quadrature order) x (recursion depth). I am looking for something with similar speed and/or convergence properties, but with much smaller memory requirements. This is fine on multi-core CPUs, and it might be for many-core CPUs like intel Knight's Landing (though I haven't verified that yet). However, to run on the GPU, each thread in a warp has to compute an integral and so the I am very limited on memory. I tried Romberg integration, which had much lower memory requirements, but it turned out to be 70x slower, so I need to find the right balance. I'll take a look at Clenshaw-Curtis. Thanks for the info @dlfivefifty!! |
This issue seems inactive, so I'll close this issue. |
With these rules, one can increase quadrature order very easily and with very low memory requirements.
Any ideas on how to use these efficiently in an automatic integrator? (I would like to be able to specify a tolerance and receive an estimate of the integral w/in that tolerance, but accurate error estimation is difficult.) I have not been able to obtain similar performance to spatially adaptive, fixed order quadratures.
Has anyone investigated something along these lines?
The text was updated successfully, but these errors were encountered: