-
Notifications
You must be signed in to change notification settings - Fork 27
Description
Dear Rubi Team,
I started a port of Rubi to Maxima, which is based on the idea of the late Albert Rich to automatically convert the rule base to a decision tree - which should then be easily portable to various systems including Maxima. The plan is to write the converter in OCaml, because I think it is easier to do this in a strictly typed language supporting algebraic data types. Also I plan to port it to Coq some day.
As first step I wrote a parser for the subset of Mathematica used in Rubi rules in Menhir (OCaml's yacc). I know that Mathematica parsers exist, but it is easier this way and it also helps me to find out what subset of Mathematica is actually used in Rubi.
I came across a few rules which look questionable to me.
First there are quite a few rules which use \[Star] where I would expect ASCII * aka. Times. E.g.:
Line 24 in 61e9c18
| b^IntPart[p]*(b*x^2)^FracPart[p]/x^(2*FracPart[p]) \[Star] Int[x^(2*p),x] /; |
Is this a typo (when the file is loaded, the rendering is hard to distinguish from ASCII *) or is this some trick I need to understand? In the latter case, can you please explain it?
Second there are a few rules which use float numbers while almost all rules user integers / rationals: E.g. the x_^2. in:
Line 94 in 61e9c18
| Int[(e_.*x_)^m_.*(b_.*x_^2.)^p_*(c_+d_.*x_^2)^q_.,x_Symbol] := |
Is this intentional?
Best regards,
Michael