Add initial Bessel rule support#109
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #109 +/- ##
===========================================
+ Coverage 13.91% 54.51% +40.60%
===========================================
Files 22 22
Lines 4291 4309 +18
===========================================
+ Hits 597 2349 +1752
+ Misses 3694 1960 -1734 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This looks great, thank you for contributing and taking the time to add new rules @AshtonSBradley ! I am actually curious on why you added them, you use them in your research/work? did you create these rules manually yourself or you translated them from the Mathematica ones? Some small notes:
but i actually dont know it that's really useful
|
|
Also @ChrisRackauckas the next times please wait for also my review before merging into main 😃 |
|
Okay yup, always happy to have other folks maintain. I didn't know if you were still around. But I also thought this was posted like weeks ago, and now I see it was just yesterday 😅 time is nebulous. |
Summary
SpecialFunctions.jl.Explanation
This adds a new Bessel rule file covering direct power-weighted Bessel integrals for
besselj,bessely,besseli, andbesselk, plus recurrence reductions for even positive order gaps such asx^3*besselj(0, a*x).The implementation also makes special-function handling less Bessel-specific: products containing an
x-dependent sum and a supported special-function factor are distributed before integration. That lets algebraic combinations like(x + x^3)*besselj(0, a*x)reuse the simpler Bessel rules, and it also applies to other known special functions such as Airy functions.SpecialFunctionsis added as a direct dependency because rule results now explicitly emitSpecialFunctions.besselj,bessely,besseli,besselk, Hankel, and Airy calls.Tests
julia --project=@runic -m Runic --inplace src/methods/rule_based/rules2/8\ Special\ functions/8.1\ Bessel\ functions.jl test/methods/rule_based/test_special_functions.jlcompleted successfully.julia --project=. test/methods/rule_based/test_special_functions.jl→ 11 passed.env TEST_GROUP=easy julia --project=. test/runtests.jl→ 182 passed, 1 broken, 183 total.Notes
SpecialFunctionsdependency.