-
-
Notifications
You must be signed in to change notification settings - Fork 102
Porting Rubi Integration rules to Symja
From the Rubi website:
Rubi is an extensive system of symbolic integration rules that can be systematically applied to determine the antiderivative of a wide variety of mathematical expressions. Organized as a decision tree based on the form of the integrand, the 6600+ rules Rubi uses can be viewed in human-readable form or downloaded in machine-readable form.
The Symja project has ported these Rubi rules into an internal Java based structure. This wiki page describes how to create these Java rules.
The Java converter programs are maintained in this project: github.com/axkr/Rubi-1.
The converter include 2 programs which generate Java files for the Symja package org.matheclipse.core.integrate.rubi
- the converter
ConvertRubi.javafor converting the Rubi integration rules/Rubi/RubiRules4.16.0_FullLHS.minto Java source codesIntRuleXXX(XXXcounter for generated source files). - the converter
ConvertRubiUtilityFunctions.javafor converting the Rubi utility function rules/Rubi/IntegrationUtilityFunctions.minto Java source codesUtilityFunctionsXXX(XXXcounter for generated source files).
The generated rules for the package org.matheclipse.core.integrate.rubi are loaded in the static initializer part of the F.class.
Notes:
- in the file
RubiRules4.16.0_FullLHS.mthe line number in which a rule appears corresponds to the Rubi rule number. - the priority in which a rule is used in the pattern-matching corresponds to the Rubi rule number.
The JUnit Rubi tests suite include the following files (not working completly at the moment):