1 Home PDF (Letter Size) PDF (Legal Size) Computer Algebra Independent Integration Tests
Total Page:16
File Type:pdf, Size:1020Kb
1 home PDF (letter size) PDF (legal size) Computer Algebra Independent Integration Tests Nasser M. Abbasi September 17, 2021 Compiled on September 17, 2021 at 9:43am [public] Contents 1 FULL CAS integration tests 2 2 Specialized integration tests 3 2.1 Waldek Hebisch’s Yet another integration test . 3 2.2 Elementary Algebraic integrals . 3 2.3 Sam Blake’s IntegrateAlgebraic function Test . 4 2.4 LITE CAS integration tests . 4 3 Note on build system 5 3.1 My PC during running the tests . 5 4 my cheat sheet notes 6 4.1 Fricas . 6 4.2 sympy . 14 4.3 sagemath hints . 21 4.4 Trying rubi in sympy . 21 4.5 build logs . 23 These reports and the web pages themselves were written in LATEX using TeXLive distribution and compiled to HTML using TeX4ht. 1 FULL CAS integration tests These reports show the result of using full CAS test suite on different CAS’s at same time. This compares how one CAS perform against another. The test suite uses the full Rubi test files provided thanks to Albert Rich. 1. Summer 2021 build Completed. Started May 15, 2021, finished July 28, 2021. Uses Rubi 4.16.1 input data. Number of integrals [71,994]. With grading for all CAS systems except for Mupad. Eight CAS systems were tested : Rubi 4.16.1, Mathematica 12.3, Maple 2021.1, Maxima 5.44, Fricas 1.3.7, Sympy 1.8 under Python 3.7.9, Giac/XCAS 1.7 and Mupad/Matlab 2021a and Sagemath 9.3. 2 3 Maxima, Fricas and Giac were used from within Sagemath 9.3 interface. 2. April 2020 build Started March 9, 2020, Completed April 6, 2020. Uses Rubi 4.16.1 input data. Number of integrals [71,994]. With grading for all CAS systems. CAS systems used are : Rubi 4.16.1, Mathematica 12.1, Maple 2020, Maxima 5.43, Fricas 1.3.6, Sympy 1.5, Giac/XCAS 1.5 and Sagemath. 3. December 2018 build. Number of tests completed [28,425]. Completed December 16, 2018. CAS systems used are : Rubi 4.15.2, Mathematica 11.3, Maple 2018, Maxima 5.41, Fricas 1.3.3, Sympy 1.1.1, Giac/XCAS 1.4.9, SageMath version 8.3 and Rubi in Sympy implemetation (port of Rubi to Sympy) Sympy 1.3 was used in this test for both Sympy itself and for Rubi in Sympy. 2 Specialized integration tests 2.1 Waldek Hebisch’s Yet another integration test Completed on Sept 15, 2021 This report uses the integrals provided thanks to Waldek Hebisch taken from this sci.math.sym- bolic post The Number of integrals is [10,335]. With grading for all CAS systems except for Mupad. These CAS systems were tested : Rubi 4.16.1, Mathematica 12.3.1, Maple 2021.1, Maxima 5.45, Fricas 1.3.7, Sympy 1.8 under Python 3.7.9, Giac/XCAS 1.7 and Mupad/Matlab 2021a and Sage- math 9.4. Maxima, Fricas and Giac were used from within Sagemath 9.4 interface. 2.2 Elementary Algebraic integrals September 2021 version Number of integrals [22,622]. With grading for all CAS systems except for Mupad. Nine CAS systems were tested : Rubi 4.16.1, Mathematica 12.3.1, Maple 2021.1, Maxima 5.44, Fricas 1.3.7, Sympy 1.8 under Python 3.7.9, Giac/XCAS 1.7 and Mupad/Matlab 2021a and Sagemath 9.3 and IntegrateAlgebraic under Mathematica 12.3.1 on windows 10. Maxima, Fricas and Giac were used from within Sagemath 9.3 interface. 4 2.3 Sam Blake’s IntegrateAlgebraic function Test IntegrateAlgebraic test problems Finished August 26, 2021. This test Uses IntegrateAlgebraic test suite provided thanks to Sam Blake. Number of integrals [3,154]. With grading for all CAS systems except for Mupad. Nine CAS systems were tested : Rubi 4.16.1, Mathematica 12.3.1, Maple 2021.1, Maxima 5.44, Fricas 1.3.7, Sympy 1.8 under Python 3.7.9, Giac/XCAS 1.7 and Mupad/Matlab 2021a and Sagemath 9.3 and IntegrateAlgebraic under Mathematica 12.3.1 on windows 10. Maxima, Fricas and Giac were used from within Sagemath 9.3 interface. 2.4 LITE CAS integration tests These reports show the result of using same test suite on different versions of same CAS. Only Maple, Mathematica and Rubi are used. This is for regression testing to find how different version of the same CAS improved over the years. The test suite used is the lite version of the full CAS intergation tests. It contains smaller number of integrals compared to the full test suite used above. 1. Mathematica This zip file contains the raw input tests used which was obtained from Rubi website. 2. Rubi Uses same zip file as above for input. 3. Maple This zip file contains the raw input tests used which was obtained from Rubi website. 5 3 Note on build system The following diagram gives a high level view of the current test build system. Mathematica script Result table POST PROCESSOR PROGRAM Rubi script Result table Result table Test files from Maple script Program that Albert Rich Rubi generates the web site Python script to run sympy Result table Latex report PDF using input Latex report Sam Blake from the test file Matlab script for Mupad/Symbolic toolbox Result table result tables Waldek HTML Hebisch test Script to run IntegrateAlgebraic Result table file Giac Result table SageMath/Python Fricas Result table script to test SageMath Maxima, Fricas, Giac Maxima Result table One record (line) per one integral result. The line is CSV comma separated. This is description of each record 1. integer, the problem number. 2. integer. 0 for failed, 1 for passed, -1 for timeout, -2 for CAS specific exception. (this is not the grade field) 3. integer. Leaf size of result. 4. integer. Leaf size of the optimal antiderivative. High level overview of the CAS 5. number. CPU time used to solve this integral. 0 if failed. 6. string. The integral in Latex format independent integration test 7. string. The input used in CAS own syntax. build system 8. string. The result (antiderivative) produced by CAS in Latex format 9. string. The optimal antiderivative in Latex format. 10. integer. 0 or 1. Indicates if problem has known antiderivative or not 11. String. The result (antiderivative) in CAS own syntax. 12. String. The grade of the antiderivative. Can be “A”, “B”, “C”, or “F” Nasser M. Abbasi The following field present only in Rubi and Mathematica Tables May 11, 2021 13. integer. 1 if result was verified or 0 if not verified. The following fields present only in Rubi Tables 14. integer. Number of rules used. 15. integer. Integrand leaf size. 16. real number. Ratio of field 14 over field 15 17. integer. 1 if result was verified or 0 if not verified. 18. String of form “{n,n,..}” which is list of the rules used by Rubi 3.1 My PC during running the tests I really need a faster PC with much more RAM ! 6 This below shows example of CAS suddenly consuming all RAM in PC, and I had to terminate the process, since it did not time out as instructed, and just hanged. 4 my cheat sheet notes 4.1 Fricas Home page https://fricas.github.io/index.html To install fricas on Linux Manjaro sudo pacman -S sagemath. in case of error while installing the package, try sudo pacman -Rs sagemath and then repeat the previous command If copy paste does not work between windows and Linux VBox, try VBoxClient --clipboard To use Fricas online, go to http://fricas-wiki.math.uni.wroc.pl/SandBox Go to bottom of page, type \begin{axiom} setSimplifyDenomsFlag(true) 7 integrate(sin(x),x) \end{axiom} Then click the preview button to send email to supprt group use [email protected] To download go to https://sourceforge.net/projects/fricas To installl on Linux Manjaro, type yay -S fricas . Do not use the Manjaro GUI package manager, it always gives build error for some reason. Make sure to install yay first using GUI manager. Make sure when installing Linux on VBox, to add second CPU to configuration of VBox. i.e. do not use ONE CPU (which is default). There is a bug in fricas installation which makes it fail due to use of multi-threading if only one CPU exist. This should be fixed in future, but just in case. To install directly, see http://fricas.sourceforge.net/doc/INSTALL.txt To build directly (but I use yay now and not this any more) #install sbcl #sudo apt-get install sbcl #do not use this. bug sudo apt-get install clisp #This lisp works sudo apt-get install dvipng sudo apt-get install auctex bzip2 -dk fricas-1.3.2-full.tar.bz2 tar -xf fricas-1.3.2-full.tar Now build it make clean fricas-1.3.2>./configure --with-lisp=/usr/bin/clisp checking build system type... x86_64-linux-gnu checking host system type... x86_64-linux-gnu checking target system type... x86_64-linux-gnu checking for make... make checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89..