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

Questions about implementation of Symja Integrate function based on Rubi rules #1015

Open
robert-dodier opened this issue Jun 24, 2024 · 1 comment

Comments

@robert-dodier
Copy link

I am looking at the implementation of the Symja Integrate function which, from what I see, is based on a Java translation of Rubi rules. I have a couple of basic questions about that.

  • Does Symja have any other integration algorithms aside from Rubi? I don't see anything, but I might have missed something.
  • Is there a way to get some report from Integrate about how many rules were tried and which one eventually matched, if any?
  • Does the Integrate function try one rule after another, so the execution time is approximately proportional to the number of rules tried?

Thanks for any light you can shed on these questions.

@axkr
Copy link
Owner

axkr commented Jun 24, 2024

I am looking at the implementation of the Symja Integrate function which, from what I see, is based on a Java translation of Rubi rules. I have a couple of basic questions about that.

* Does Symja have any other integration algorithms aside from Rubi? I don't see anything, but I might have missed something.

The "basic integration rules" are hardcoded here:

* Is there a way to get some report from `Integrate` about how many rules were tried and which one eventually matched, if any?

No there is no way out of the box. For debugging I'm enabling the output in Java. The priority should be the same as the line number of the Rubi rule:

In theory we can implement a IEvalStepListener (which is used for the Trace function) with the required information:

* Does the `Integrate` function try one rule after another, so the execution time is approximately proportional to the number of rules tried?

Yes one rule is tried after the other. Sometimes rules can be skipped because of unequal patternHash values.

In #1009 I want to create the java source for a decision tree from pattern-matching rules.
I have uncommited changes for a very "basic idea" (means not usable for the Rubi rules yet) how to create the decision tree.

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

No branches or pull requests

2 participants