Skip to content

Add rule based integration method#12

Merged
ChrisRackauckas merged 366 commits into
JuliaSymbolics:mainfrom
Bumblebee00:rule_based_repo_branch
Sep 10, 2025
Merged

Add rule based integration method#12
ChrisRackauckas merged 366 commits into
JuliaSymbolics:mainfrom
Bumblebee00:rule_based_repo_branch

Conversation

@Bumblebee00
Copy link
Copy Markdown
Collaborator

work in progress

Comment on lines +9 to +13
@register_symbolic SymbolicUtils.expinti(x)
@register_symbolic SymbolicUtils.expint(nu, z)
@register_symbolic SymbolicUtils.gamma(x, y)
@register_symbolic SymbolicUtils.sinint(x)
@register_symbolic SymbolicUtils.cosint(x)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just add to symbolics

Comment thread src/methods/rule_based/general.jl Outdated
@@ -0,0 +1,247 @@
using Symbolics
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
using Symbolics

usings at top level

@@ -0,0 +1,119 @@
include("string_manipulation_helpers.jl")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

includes at top level

Comment thread src/methods.jl Outdated
Comment on lines +43 to +49







Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

Comment thread src/methods.jl Outdated
Comment on lines +42 to +48







Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@Bumblebee00
Copy link
Copy Markdown
Collaborator Author

okay I removed all that stuff from the README and moved it to the documentation. The documentation is still messy, I want to improve it but I need some time to write it properly and now I need to go. But the README should be ready, tell me if you like it.

@ChrisRackauckas
Copy link
Copy Markdown
Member

Okay to get things merged here, let's split this into now vs follow ups:

  1. Open an issue about localizing the verbosity implementation and making it thread-safe. I can probably handle this in a follow up.
  2. Moving the registrations (I can do that)
  3. Making sure nothing is printed when verbosity is turned off

Comment thread src/methods.jl Outdated
verbose=method.verbose, use_gamma=method.use_gamma, kwargs...)
end

<<<<<<< HEAD
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

error?

Copy link
Copy Markdown
Member

@ChrisRackauckas ChrisRackauckas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If tests pass I think this is reasonable to merge now. Of course, still much to do, but we can take the next steps in stages.

@ChrisRackauckas
Copy link
Copy Markdown
Member

Looks like some test failures.

@Bumblebee00
Copy link
Copy Markdown
Collaborator Author

yes the tests were failing because the includes were in the wrong order. I didn't think order mattered but apparently it does

@Bumblebee00
Copy link
Copy Markdown
Collaborator Author

sorry, now should work

@ChrisRackauckas ChrisRackauckas merged commit 5af026d into JuliaSymbolics:main Sep 10, 2025
7 of 11 checks passed
@Bumblebee00
Copy link
Copy Markdown
Collaborator Author

  1. Moving the registrations (I can do that)

@ChrisRackauckas I moved the registrations to Symbolics.jl with this pr JuliaSymbolics/Symbolics.jl#1642 , I only moved there the ones definied in SymboliUtils, and not the ones definied in the packages Elliptic, HypergeometricFunctions, PolyLog and FresnelIntegrals, because they are not imported by Symbolics

@ChrisRackauckas
Copy link
Copy Markdown
Member

and not the ones definied in the packages Elliptic, HypergeometricFunctions, PolyLog and FresnelIntegrals, because they are not imported by Symbolics

Those extensions could all be in Symbolics. Basically the code that is here could just copy-paste move to be extensions there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants