From: Francis W. <f.j...@li...> - 2024-01-10 18:09:55
|
It's good to see that REDUCE integration is fast, but it may not be quite as fast as it appears. The REDUCE symbolic-mode function time returns time in milliseconds as an integer, so the timing code I suggested will report a time of 0 for any integral that takes less than a millisecond. I think that on a reasonably fast computer that will be the case for a lot of simple integrals. Maybe CSL or PSL offers a more accurate time function that could be used. Before each timed integration, it would probably be a good idea to request a garbage collection, so that each integration is performed with the same initial environment. You can do that using symbolic reclaim(); I think that in CSL REDUCE you can also use symbolic gc(); Francis ________________________________ From: Nasser M. Abbasi <nm...@12...> Sent: 09 January 2024 5:19 AM To: red...@li... <red...@li...> Subject: [Reduce-algebra-developers] fyi, CAS integration test using Reduce CAS fyi, release notes for CAS integration test using Reduce CAS -------------------------------------------------------- Link to this post in plain text is at <https://12000.org/my_notes/CAS_integration_tests/reports/january_2024_reduce/release_notes_reduce_test_jan_8_2024.txt> This test was done to compare Reduce CAS integrator with the other CAS systems used by the independent CAS integration test program. The link to this test can be found under the special CAS integration tests page <https://12000.org/my_notes/CAS_integration_tests/indexsection2.htm> This test used only the first 3,809 integrals from Rubi's test files and not the full integration test suite which is over 125,000 integrals. Reduce integrator was run with algint package loaded. Reduce was build from source using CSL lisp. There is also SQL database of all the results. Systems used ------------- Mathematica 13.3.1 Rubi 4.17.3 Maple 2023.1 Maxima 5.47 using Lisp SBCL 2.3.0 on Linux via sagemath 10.1 FriCAS 1.3.9 based on sbcl 2.3.0 on Linux via sagemath 10.1 Giac/Xcas 1.9.0-57 on Linux via sagemath 10.1 Sympy 1.12 Using Python 3.11.3 on Linux. Mupad using Matlab 2021a with Symbolic Math Toolbox Version 8.7 Reduce CSL rev. 6657. December 10, 2023. On Linux The following is the percentage solved -------------------------------------- If an integral is solved, it is assumed correct. Verification is currently only done for Mathematica, Rubi and Maple. 1. Mathematica %99.606 2. Rubi %99.396 3. Fricas %89.525 4. Maple %87.897 5. Giac %79.312 6. Maxima %75.663 7. Mupad %73.326 8. Reduce %72.828 9. Sympy %69.782 In terms of speed, Reduce integrator was very fast. Actually it was the fastest. The following table gives mean time used to solve one integration problem, in seconds. Note that time used by Fricas, GIAC and Maxima is inflated as they are called via sagemath which adds extra time due to interface overhead and the use of a new subprocess to make the call each time. Maple time is inflated because it is run using all integration methods and not just the default one. Otherwise its time used will be much less than shown. 1. Reduce 0.09 sec 2. Rubi 0.21 sec 3. Maxima 0.23 sec 4. Mupad 0.27 sec 5. Mathematica 0.29 sec 6. Fricas 0.36 sec 7. Maple 0.5 sec 8. Giac 1.9 sec 9. Sympy 3.2 sec In terms of leaf size, the following table gives average leaf size per CAS. For reduce, Maple was used to find the leaf size. Maple was also used to convert the output of reduce to Latex. 1. Mathematica 66.49 2. Rubi 71.88 3. Mupad 76.27 4. Maxima 76.7 5. GIAC 102.39 6. Reduce 112.42 7. Maple 114.53 8. Fricas 156.66 9. Sympy 209.21 Note that all these statistics are applied only to integrals which were solved by CAS. Failed integrals are not included in any of the above performances result. There is a link to each reduce script used to run the tests under each separate web page for each test file with listing of all integrals in it. Since Reduce currently does not have timelimit command build in, it will not be practical to add it to the FULL cas integration tests of over 125,000 integrals. When and if in the future Reduce has a timelimit() command that can be used to set timelimit on each call to integration, it will then be possible to add it to the full CAS integration test suite. I hope these result will be useful for some. Any problems found please let me know. --Nasser _______________________________________________ Reduce-algebra-developers mailing list Red...@li... https://lists.sourceforge.net/lists/listinfo/reduce-algebra-developers |