FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
The following is summary of changes in this summer 2022
compared to 2021 edition are
============================
1. This now includes 85,483 integrals compared to 71,994.
The test integrals used are made of the following 210 files:
a. Rubi test suite. Files 1 to 208. Thanks to Alert Rich.
Downloaded from <https://github.com/RuleBasedIntegration>
b. IntegrateAlgebraic test file. File 209. Thanks to Sam Blake.
c. Fricas test file. File 210. Thanks to Waldek Hebisch.
2. CAS version changes: Mathematica 12.3->13.01, Maple
2021.1->2022.1, Giac 1.7.0->1.9.07, Sympy 1.8->1.10.1. Maxima
5.44->5.46.
No changes to FriCAS at 1.3.7, Mupad at 2021a, Rubi at 4.16.1.
3. New CAS added: Mathics 4.0 called from sagemath.
Mathics is an open source CAS which uses Mathematica syntax.
<https://mathics.org/>
It was possible to add it easily to CAS integration tests since
it can now be called from inside sagemath 9.6.
<https://doc.sagemath.org/html/en/reference/interfaces/sage/interfaces/mathics.html>
Mathics integrator seems to rely on sympy integrator for some of
its work but I do not know to what extent. This explains the
similar anti-derivatives compared to sympy and the similar overall
performance and result.
4. A new program to test GIAC directly using its C++ API.
<https://www-fourier.ujf-grenoble.fr/~parisse/giac_us.html>
This resulted in much faster execution and also avoids any sagemath
interface issues found so far. FriCAS and Maxima and Mathics still
use sagemath. Now GIAC has now become one of the fastest CAS's to
complete after this change. (Compiled C++ is fast!)
5. Updated sagemath from 9.3 to 9.6.
6. General improvements to Latex and other formatting.
7. Updated design flowchart of the test program to show the changes
made. <https://www.12000.org/my_notes/CAS_integration_tests/images/design.svg>
Currently only first [3,809] integrals are completed and graded
(first 13 files). Results are at the above webpage. Will not post
these here as current results will change until all files are
processed.
All systems are graded except for mupad. Verification is done
for only Rubi, Mathematica and Mathics. Integrals which
produce result that did not verify are listed with direct
links for easy inspection.
I will update the web page as soon as more files are processed. May be
once every 2-3 weeks (unless a big problem shows up) until all 210
files are completed.
The reports are written in Latex and converted to PDF using lualatex
and converted to HTML using tex4ht, all using TeXLive 2022 on Linux.
Any problems/questions/changes needed, please let me know. You could
email me directly or by posting here.
On the page <.../reports/summer_2022/indexchapter1.htm#x2-10001> in the
table under 1.2.1 ("Time and leaf size Performance") I think you should document your definition of "Normalized mean" and "Normalized median".
What is devided by what, and is the mean or median computed before or
after the normalization?
Could the addition of the Sam Blake and Waldek Hebisch test files
affect the overall performance statistics significantly?
Martin.
On 6/7/2022 1:03 AM, clicliclic@freenet.de wrote:
On the page <.../reports/summer_2022/indexchapter1.htm#x2-10001> in
the table under 1.2.1 ("Time and leaf size Performance") I think you
should document your definition of "Normalized mean" and "Normalized median".
What is devided by what, and is the mean or median computed before
or after the normalization?
Sure, will add these next build.
Mean size is the average leaf size produced by the CAS (before any normalization). The Normalized mean is relative to the
mean size of the optimal anti-derivative given in the input files.
For example, if CAS has "Normalized mean" of 3, then
the mean size of its leaf is 3 times as large as
the mean size of the optimal.
Median size is value of leaf size where half the values
are larger than this and half are smaller (before any
normalization). i.e. The Middle value.
Similarly the "Normalized median" is relative to the median
leaf size of the optimal.
So if a CAS has Normalized median of 1.2, then its
median is 1.2 as large as the median leaf size of the optimal.
Could the addition of the Sam Blake and Waldek Hebisch test files
affect the overall performance statistics significantly?
It will change statistics for some CAS'es, but probably
not too much? Files 209 and 210 combined have about
13,500 integrals, while Rubi's test suite (files 1 .. 208)
have a total of 71,994. So this is about 18.75% increase.
Fyi, There were separate tests done before on just file 209 and 210
alone on my page, under section "Specialized integration tests"
but now these files are combined with the main build.
It is good to have more variations of input test files,
this insures more coverage of each CAS.
"Nasser M. Abbasi" schrieb:
On 6/7/2022 1:03 AM, clicliclic@freenet.de wrote:
On the page <.../reports/summer_2022/indexchapter1.htm#x2-10001> in
the table under 1.2.1 ("Time and leaf size Performance") I think you should document your definition of "Normalized mean" and "Normalized median".
What is devided by what, and is the mean or median computed before
or after the normalization?
Sure, will add these next build.
Mean size is the average leaf size produced by the CAS (before any normalization). The Normalized mean is relative to the
mean size of the optimal anti-derivative given in the input files.
For example, if CAS has "Normalized mean" of 3, then
the mean size of its leaf is 3 times as large as
the mean size of the optimal.
Median size is value of leaf size where half the values
are larger than this and half are smaller (before any
normalization). i.e. The Middle value.
Similarly the "Normalized median" is relative to the median
leaf size of the optimal.
So if a CAS has Normalized median of 1.2, then its
median is 1.2 as large as the median leaf size of the optimal.
Could the addition of the Sam Blake and Waldek Hebisch test files
affect the overall performance statistics significantly?
It will change statistics for some CAS'es, but probably
not too much? Files 209 and 210 combined have about
13,500 integrals, while Rubi's test suite (files 1 .. 208)
have a total of 71,994. So this is about 18.75% increase.
Fyi, There were separate tests done before on just file 209 and 210
alone on my page, under section "Specialized integration tests"
but now these files are combined with the main build.
It is good to have more variations of input test files,
this insures more coverage of each CAS.
Waldek's "Yet another integration test" suite consist's of 10,335
integrands obtained by differentiation of random functions. While there
is a natural number of tests in the Rubi suite - something like three
to five integrands for every leaf of its decision tree -, the number in
a random suite could be anything. In fact, Waldek might argue that
it should be increased to 71,994 integrands for the sake of fairness.
A natural limit would be reached if nothing new were learned about an integrator's performance when the size is increased - say, if all of
the error messages from failures due to various unimplemented branches
of an integration algorithm have appeared three to five times already.
If there are no failures at all, only three to five tests should be
used to establish integrator function.
Is the present size of "Yet another integration test" too large or too
small for FriCAS by this measure? This could be found out with your
machinery as well as on FriCAS itself.
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
[deleted]
On Monday, June 6, 2022 at 4:36:00 AM UTC-4, Nasser M. Abbasi wrote:
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
[deleted]
The first column chart ("Antiderivative Grade distribution for each CAS") doesn't match the data in either Table 1.1 or Table 1.3.
On 6/14/2022 12:14 AM, acer wrote:
On Monday, June 6, 2022 at 4:36:00 AM UTC-4, Nasser M. Abbasi wrote:
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
[deleted]
The first column chart ("Antiderivative Grade distribution for each CAS") doesn't match the data in either Table 1.1 or Table 1.3.I do not see any mis-match? The bar chart diagram
called "Antiderivative Grade distribution for each CAS"
shows the grade distribution in colors. As the diagram
says the numbers on the columns are the %passed and
not % of A grade. (it was hard to put % of each grade
on the bars, in right place, so used total % pass there).
Which agrees with Table 1.1: Percentage solved for each CAS result?
screen shot
https://12000.org/tmp/06142022/screen_shot.png
Or do you mean something else?
--Nasser
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
On 6/6/2022 3:35 AM, Nasser M. Abbasi wrote:
FYI,
A new CAS integration test build started. This is summer 2022
edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
Fyi, This is update.
Due to new release of Mathematica 13.1 and Fricas 1.3.8
and giac 1.9.0-11 I had to start all over and build everything
with the new versions.
Currently files 1-12 (1892 integrals) just completed and uploaded.
Will be uploading more files as they finish in the coming weeks.
This is the current % solved result for the first 12 files
(summer 2022 edition). The (+) column shows how much
CAS result improved compared to last year test.
All CAS systems which changed version improved. =========================================
Mathematica 13.1 99.21 % (+0.48 %)
Rubi 4.16.1/MMA 13.01 99 % (+0.69 %)
FriCAS 1.3.8/sage 9.6 95.4 % (+0.84 %)
Maple 2022.1 93.71 % (+0.21 %)
Giac 1.9-11/sage 9.6 86.58 % (+0.43 %)
Maxima 5.46/sage 9.6 82.03 % (+0.05 %)
Mupad Matlab 2021a 82.03 % (0.00 %)
Sympy 1.10.1/Python 3.10.4 73.1 % (+0.64 %)
(it is coincidence that Maxima and Mupad scored same on the first
12 files).
The following is summer 2021 result for the same first 12 files
% solved result for the first 12 files
===================================
Mathematica 12.3 98.73 %
Rubi 4.16.1/MMA 12 98.31 %
FriCAS 1.3.7/sage 9.3 94.56 %
Maple 2021.1 93.5 %
Giac 1.7/sage 9.3 86.15 %
Mupad Matlab 2021a 82.03 %
Maxima 5.44/sage 9.3 81.98 %
Sympy 1.8/Python 3.8.8 72.46 %
There is also now a regression report for each cas,
which shows integrals that failed in summer 2022 edition
but passed in summer 2021.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REGRESSION_REPORTS/index.htm>
This regression report will be updated as more files are processed.
The above result of course is for small sample. Only the first 12
files (1892 integrals).
Will update as more files are processes. Total files are 211.
(85,483 integrals).
Any problems found, please let me know.
For CAS's that use sagemath (Fricas, Maxima, Giac), any failed
integral due to sagemath interface will have an F(-2) next to the
exception name. From the exception name one can see if the
exception was due to interface issue or it was generated
from the called CAS itself due to internal error.
4. A new program to test GIAC directly using its C++ API.
<https://www-fourier.ujf-grenoble.fr/~parisse/giac_us.html>
This resulted in much faster execution and also avoids any sagemath
interface issues found so far. FriCAS and Maxima and Mathics still
use sagemath. Now GIAC has now become one of the fastest CAS's to
complete after this change. (Compiled C++ is fast!)
Hopefully with sagemath 9.6, failed integrals due to
interface issues will be much less than earlier version
as many bugs have been fixed in sagemath interface.
So FriCAS and Maxima should be the only systems that use sagemath now.
Martin.
integrate((e*x+d)^(7/2)/(-c*e^2*x^2+c*d^2)^(3/2),x)
sage ┌────────────────────────────────────────────────────────────────────┐│ SageMath version 9.6, Release Date: 2022-05-15 │
On 6/6/2022 3:35 AM, Nasser M. Abbasi wrote:
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
Fyi, This is update.<snip>
Due to new release of Mathematica 13.1 and Fricas 1.3.8
and giac 1.9.0-11 I had to start all over and build everything
with the new versions.
Currently files 1-12 (1892 integrals) just completed and uploaded.
Will be uploading more files as they finish in the coming weeks.
Any problems found, please let me know.
Any problems found, please let me know.
Nasser M. Abbasi <nma@12000.org> wrote:
Any problems found, please let me know.
Looking at results of Timofeev file results show truncated
after position 667. I am not sure if this is due to
incompatiblity of markup with my browser or shows in
general.
In introduction you write that grading is not implemented only
for Mupad. But result look like is is not implemented also
for Giac and Maxima...
antispam@math.uni.wroc.pl schrieb:
Nasser M. Abbasi <nma@12000.org> wrote:
Any problems found, please let me know.
Looking at results of Timofeev file results show truncated
after position 667. I am not sure if this is due to
incompatiblity of markup with my browser or shows in
general.
What does this FriCAS failure on Timofeev Chapter 5, Example 81 (p.
276 in the book, #417 in the test suite) mean:
integrate((-2*sin(2*x)+(cos(x)*sin(x)^3)^(1/2))
/(-(cos(x)^3*sin(x))^(1/2)+tan(x)^(1/2)), x)
Error detected within library code: not invertible
I also saw one evaluation failing with "catdef: division by zero"
among the Timofeev results.
Nasser's file:
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/0_Independent_test_suites/10_Timofeev_Problems/reportsection2.htm#x17-260002.2>
on my system loads and renders all the way down to Problem 705, which
links to:
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/0_Independent_test_suites/10_Timofeev_Problems/reportsubsection717.htm#705>
which I also have no trouble accessing.
Martin.
fricasFRICAS="/usr/local/lib/fricas/target/x86_64-linux-gnu" spad-lib="/usr/local/lib/fricas/target/x86_64-linux-gnu/lib/libspad.so"
fricasFriCAS Computer Algebra System
Nasser M. Abbasi <nma@12000.org> wrote:
Any problems found, please let me know.
Looking at results of Timofeev file results show truncated
after position 667. I am not sure if this is due to
incompatiblity of markup with my browser or shows in
general.
On 7/3/2022 1:39 PM, antispam@math.uni.wroc.pl wrote:
Nasser M. Abbasi <nma@12000.org> wrote:
Any problems found, please let me know.
Looking at results of Timofeev file results show truncated
after position 667. I am not sure if this is due to
incompatiblity of markup with my browser or shows in
general.
I am not able to find/figure what you mean. I assume you mean this
is in the HTML not the pdf?
Do you have a link I could look at to see what you mean? There
should not be any truncation anywhere. Program did not have
any changes in pdf or HTML generation part. Still uses same texlive
and tex4ht for the conversion.
But if I can see what you are seeing, it will help.
antispam@math.uni.wroc.pl schrieb:
Nasser M. Abbasi <nma@12000.org> wrote:
Any problems found, please let me know.
Looking at results of Timofeev file results show truncated
after position 667. I am not sure if this is due to
incompatiblity of markup with my browser or shows in
general.
What does this FriCAS failure on Timofeev Chapter 5, Example 81 (p.
276 in the book, #417 in the test suite) mean:
integrate((-2*sin(2*x)+(cos(x)*sin(x)^3)^(1/2))
/(-(cos(x)^3*sin(x))^(1/2)+tan(x)^(1/2)), x)
Error detected within library code: not invertible
But if I can see what you are seeing, it will help.
https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/0_Independent_test_suites/10_Timofeev_Problems/reportsection2.htm#x17-260002.2
clicliclic@freenet.de <nobody@nowhere.invalid> wrote:
What does this FriCAS failure on Timofeev Chapter 5, Example 81 (p.
276 in the book, #417 in the test suite) mean:
integrate((-2*sin(2*x)+(cos(x)*sin(x)^3)^(1/2))
/(-(cos(x)^3*sin(x))^(1/2)+tan(x)^(1/2)), x)
Error detected within library code: not invertible
This is rather excessive example of dependent roots:
(cos(x)*sin(x)^3)^(1/2) = +-sin(x)*(cos(x)*sin(x))^(1/2) (cos(x)^3*sin(x))^(1/2) = +-cos(x)*(cos(x)*sin(x))^(1/2)
tan(x)^(1/2) = +-(cos(x)*sin(x))^(1/2)/cos(x)
So there are 4 essentially different combinations of branches
(8 together, but they are equvalent in pairs).
As I wrote, dependent roots may lead to division by zero,
which happens in this example.
antispam@math.uni.wroc.pl schrieb:
clicliclic@freenet.de <nobody@nowhere.invalid> wrote:
What does this FriCAS failure on Timofeev Chapter 5, Example 81 (p.
276 in the book, #417 in the test suite) mean:
integrate((-2*sin(2*x)+(cos(x)*sin(x)^3)^(1/2))
/(-(cos(x)^3*sin(x))^(1/2)+tan(x)^(1/2)), x)
Error detected within library code: not invertible
This is rather excessive example of dependent roots:
(cos(x)*sin(x)^3)^(1/2) = +-sin(x)*(cos(x)*sin(x))^(1/2) (cos(x)^3*sin(x))^(1/2) = +-cos(x)*(cos(x)*sin(x))^(1/2)
tan(x)^(1/2) = +-(cos(x)*sin(x))^(1/2)/cos(x)
So there are 4 essentially different combinations of branches
(8 together, but they are equvalent in pairs).
As I wrote, dependent roots may lead to division by zero,
which happens in this example.
If this error message is specific to the detection of dependent roots
that FriCAS cannot handle, it can serve as an indication for the user
to rewrite his integrand in terms of independent roots.
The problem of dependent roots would thereby be addressed adequately in
my view even though the test cases are currently counted as failed.
Can you increase timeout for IntegrateAlgebraic to 100 seconds?
Here is the example where it matters, when your PC is too slow to
do it in default 10 seconds. At least my PC is. I really need to
update to Alder Lake. Maybe it can solve some of the failed cases in
13.1.
SetSystemOptions[
"IntegrateOptions" -> {"IntegrateAlgebraicTimeConstraint" -> 20}]; Integrate[x/Sqrt[x^4 - 2 x^3 + 3 x^2 + 4 x + 1], x]
Also, what is this? How is it possible we did not know the
antiderivative? https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/indexchapter3.htm#x4-190003
Can you increase timeout for IntegrateAlgebraic to 100 seconds?
Here is the example where it matters, when your PC is too slow to
do it in default 10 seconds. At least my PC is. I really need to update
to Alder Lake. Maybe it can solve some of the failed cases in 13.1.
SetSystemOptions[
"IntegrateOptions" -> {"IntegrateAlgebraicTimeConstraint" -> 20}]; Integrate[x/Sqrt[x^4 - 2 x^3 + 3 x^2 + 4 x + 1], x]
Also, what is this? How is it possible we did not know the antiderivative<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/indexchapter3.htm#x4-190003>
FriCAS solves this in no time at all (expressed in Derive notation)
Do you think this will improve Mathematica's overall score?
On 7/6/2022 12:34 PM, ??????? ???????????? wrote:
Also, what is this? How is it possible we did not know the antiderivative<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/indexchapter3.htm#x4-190003>
According to Rubi's input file #5 "Hearn Problems", this integral #145
integrate(x*cos(x)*cos(k/sin(x))/sin(x)^2,x, algorithm="maxima")
is not integrable. Here is the entry:
{x*Cos[k/Sin[x]]*Cos[x]/Sin[x]^2, x, 0, CannotIntegrate[x*Cos[k*Csc[x]]*Cot[x]*Csc[x], x]}
And Maxima was the only CAS which was able to integrate it giving
the following
-1/2*(x*e^(4*k*cos(2*x)*cos(x)/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x) + 1) + 4*k*sin(2*x)*sin(x)/(cos(2*x)^2 +
sin(2*x)^2 - 2*cos(2*x) + 1)) + x*e^(4*k*cos(x)/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x) + 1)))*e^(-2*k*cos(2*x)*
cos(x)/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x) + 1) - 2*k*sin(2*x)*sin(x)/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x)
+ 1) - 2*k*cos(x)/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x) + 1))*sin(2*(k*cos(x)*sin(2*x) - k*cos(2*x)*sin(x) + k
*sin(x))/(cos(2*x)^2 + sin(2*x)^2 - 2*cos(2*x) + 1))/k
But Maxima result is not verified. So it is flagged for this reason for someone to look at. It could be wrong antiderivative? someone might
want to verify it.
On 6/6/2022 3:35 AM, Nasser M. Abbasi wrote:
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
Fyi, This is update.<snip>
Due to new release of Mathematica 13.1 and Fricas 1.3.8
and giac 1.9.0-11 I had to start all over and build everything
with the new versions.
Any problems found, please let me know.
For CAS's that use sagemath (Fricas, Maxima, Giac), any failed
integral due to sagemath interface will have an F(-2) next to the
exception name. From the exception name one can see if the
exception was due to interface issue or it was generated
from the called CAS itself due to internal error.
Nasser M. Abbasi <nma@12000.org> wrote:
On 6/6/2022 3:35 AM, Nasser M. Abbasi wrote:<snip>
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
It will take 2-3 more months to complete but I am posting this now
in case there are problems or suggestions so I can do them early one.
Fyi, This is update.
Due to new release of Mathematica 13.1 and Fricas 1.3.8
and giac 1.9.0-11 I had to start all over and build everything
with the new versions.
Any problems found, please let me know.
For CAS's that use sagemath (Fricas, Maxima, Giac), any failed
integral due to sagemath interface will have an F(-2) next to the
exception name. From the exception name one can see if the
exception was due to interface issue or it was generated
from the called CAS itself due to internal error.
Hmm, looking at
https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/1_Algebraic_functions/1.1_Binomial_products/1.1.2_Quadratic/20_1.1.2.3-a+b_x%5E2-%5Ep-c+d_x%5E2-%5Eq/reportsubsection296.htm#284
integrate((d*x^2+c)^(1/2)/(-b*x^2-a)^(1/2),x)
on the page there is unevaluated result with no indication of
interface error. However, 1.3.8 gives me:
(1) -> setSimplifyDenomsFlag(true)
(1) false
Type: Boolean
(2) -> integrate((d*x^2+c)^(1/2)/(-b*x^2-a)^(1/2),x)
(2)
+---+
| c
+---+ |- -
+-----+ | c \| d a d
(- d - c)x\|- b d |- - ellipticF(------,---)
\| d x b c
+
+---+
| c
+---+ |- - +----------+ +--------+
+-----+ | c \| d a d | 2 | 2
c x\|- b d |- - ellipticE(------,---) - d\|- b x - a \|d x + c
\| d x b c
/
b d x
Type: Union(Expression(Integer),...)
so FriCAS produces result in terms of elliptic functions (which
IIUC cause interface error). Or maybe the result is from 1.3.7?
Apparently the same holds for several integral in the file.
sage ┌────────────────────────────────────────────────────────────────────┐│ SageMath version 9.6, Release Date: 2022-05-15 │
Hmm, looking at
https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/1_Algebraic_functions/1.1_Binomial_products/1.1.2_Quadratic/20_1.1.2.3-a+b_x%5E2-%5Ep-c+d_x%5E2-%5Eq/reportsubsection296.htm#284
so FriCAS produces result in terms of elliptic functions (which
IIUC cause interface error). Or maybe the result is from 1.3.7?
Apparently the same holds for several integral in the file.
Hopefully when sagemath 9.7 is out, these all will then pass.
Here is link to the ticket
https://trac.sagemath.org/ticket/34058
Here is trying it again
==================================
sage┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.6, Release Date: 2022-05-15 │ │ Using Python 3.10.5. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘
sage: var('d x c a b')
sage: integrate((d*x^2+c)^(1/2)/(-b*x^2-a)^(1/2),x, algorithm="fricas")
TypeError: Symbolic function elliptic_ec takes exactly 1 arguments (2 given) ================================
./sage ┌────────────────────────────────────────────────────────────────────┐│ SageMath version 9.7.beta5, Release Date: 2022-07-10 │
FYI,
(Posted at https://groups.google.com/g/fricas-devel and https://groups.google.com/g/sci.math.symbolic)
Independent CAS integration tests summer 2022 edition is now complete.
(It took about 5 months since I initially started working on it!)
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
The following is summary of changes in this version
compared to last year's edition
========================
1. Number of integrals increased to 85,479 from 71,994.
The integrals are made of the following 210 files:
a. Rubi test suite. Files 1 to 208. Thanks to Alert Rich.
Downloaded from <https://github.com/RuleBasedIntegration>
b. IntegrateAlgebraic test file. File 209. Thanks to Sam Blake.
c. Fricas test file. File 210. Thanks to Waldek Hebisch.
2. CAS version changes:
Maple 2021.1 -> 2022.1
Mathematica 12.3 -> 13.01
Giac 1.7.0 -> 1.9.0-13
Sympy 1.8/python 3.8.8 -> 1.10.1/Python 3.10.4
Maxima 5.44 -> 5.46
FriCAS 1.3.7 -> 1.3.8
Sagemath 9.3 -> 9.6
No version change for Mupad at Matlab 2021a and Rubi at 4.16.1
but Rubi was run again on the current Mathematica 13.1 version.
3. General improvements to Latex and other formatting.
4. Flow chart of the test program at <https://www.12000.org/my_notes/CAS_integration_tests/images/design.svg>
5. Links to download all the 85,483 integrals in plain text in
Mathematica, Rubi, Maple, Mupad, Sympy, and Sagemath (Fricas, Maxima, Giac) formats are at introduction page of the main page.
6. Regression reports comparing results in 2022 edition to 2021 edition
are also now available. These reports show integrals that failed
in current versions compared to last versions per CAS.
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REGRESSION_REPORTS/index.htm>
Regression per CAS
------------------
This table below gives the number of integrals that failed in
this test (could be due to timeout, exception or not solved) but
are solved in summer 2021 for each CAS.
Number of regression per CAS is (less is better)
Fricas: 16
Maxima: 17
Mathematica: 98
Maple: 114
Giac: 363
Sympy: 379
Tables give details about each integral that failed in regression.
7. Sympy, Sagemath (Fricas, Maxima, Giac) were all run on Linux
inside Oracle Virtual Box. Maple, Rubi, Mupad and Mathematica were
run on windows 10. All on same PC with 128 GB RAM with
Intel Core i9-12900K 3.20 GHz.
RESULTS
=======
Overall solved percentage in summer 2022 edition =========================================
1. Mathematica 13.1 97.99 %
2. Rubi 4.16.1 94.21 %
3. Maple 2022.1 84.53 %
4. Fricas 1.3.8 79.33 %
5. Giac 1.9.0-13 58.37 %
6. Maxima 5.46 56.86 %
7. Mupad 2021a 56.1 %
8. Sympy 1.10.1 41.89 %
Grading results
=================
Note that mupad is not graded. Default grade of B is given for
any passed integral.
1. Rubi 91.50 %
2. Mathematica 78.58 %
3. Maple 56.34 %
4. Fricas 53.78 %
5. Maxima 43.57 %
6. Giac 42.36 %
7. Sympy 28.49 %
8. Mupad* N/A
Time and leaf size Performance
==============================
Sorted by time performance in average time used per integrals (seconds).
Note for Maple(*) timing: the option method=_RETURNVERBOSE was used
which made Maple run through all integration methods increasing
average time used. For example in summer 2021 edition which did
not use this option, Maple had 0.79 seconds average time on
a slower PC also than the one used for the current tests.
1. Rubi 0.3 (sec)
2. Maxima 0.49 (sec)
3. Giac 0.75 (sec)
4. Fricas 1.17 (sec)
5. Mathematica 2.38 (sec)
6. Mupad 2.75 (sec)
7. Maple* 3.33 (sec)
8. Sympy 5.24 (sec)
General notes
==============
1) Maxima, Fricas and Giac were called via Sagemath. Some integrals
could have failed due to interface issues. These will have F(-2)
error code in the section "Detailed conclusion table per each
integral for all CAS systems" per each report and also in the actual
integral page with the actual exception name shown.
This allows one to see if the cause of the failure is due to
interface issue or internal error from the CAS itself.
For an example, the integral on
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/4_Trig_functions/4.7_Miscellaneous/139_4.7.5_x%5Em_trig-a+b_log-c_x%5En-%5Ep/reportsubsection69.htm#53>
Has F(-2) on Fricas output, but looking at the exception
integrate(x*sin(a+b*log(c*x^n))^(1/2),x, algorithm="fricas")
"Exception raised: TypeError >> Error detected within library code:
integrate: implementation incomplete (has polynomial part)"
So this is not interface issue with Sagemath. The exception comes
from Fricas itself.
But this integral
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/test_cases/4_Trig_functions/4.7_Miscellaneous/139_4.7.5_x%5Em_trig-a+b_log-c_x%5En-%5Ep/reportsubsection57.htm#41>
Has F(-2) on Giac result, and looking at the exception it says
integrate(x^2*sin(a+log(c*x^n)*(-1/n^2)^(1/2))^3,x, algorithm="giac")
"Exception raised: NotImplementedError >>
Unable to parse Giac output:
((-9*i)*sageVARn^4*sageVARx^3*exp((-3*i) *sageVARa)*
exp((3*sageVARn*abs(sageVARn)*ln(sageVARx)+3*abs(sageVARn)*
ln(sageVARc))/sageVARn^2)+27*i*sageVARn^4*sageVARx^3*exp((-i)"
Which indicates it is an interface issue this time. This is
verified by running this integral directly in giac and it is
solved with no error.
CAS integration test program currently does not distinguish
between an exception generated due to a sagemath interface problem
or an exception generated from the CAS itself. I am not
sure if there a robust way to do this for Maxima, Fricas
and Giac. If a way can be found, will add it.
But there seems to be less of these interface problems in the
current Sagemath version than the last one used.
2) The section "List of integrals sorted by grade for each CAS" in each report shows list of integrals for each grade per CAS. This allows
one to quickly find integrals with specific grade.
3) Also as mentioned before there are a number of integrals for Maxima
which fail when it asks a question in order to complete the
integration as this is not supported by Sagemath or by the
CAS integration test program. If an option can be added to
turn this feature off that will be a good thing and will improve
Maxima score.
4) Any bugs found or problems please let me know and will try my best
to fix them.
--Nasser
"Nasser M. Abbasi" schrieb:
Independent CAS integration tests summer 2022 edition is now complete.
(It took about 5 months since I initially started working on it!)
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
Here's how the percentages of integrals solved relate to last year's:
system 2022 2021
===============================
Mathematica 97.99 % 98.39 %
Rubi 94.21 % 99.52 %
Maple 84.53 % 83.58 %
Fricas 79.33 % 68.70 %
Giac 58.37 % 52.43 %
Maxima 56.86 % 52.72 %
Mupad 56.10 % 52.55 %
Sympy 41.89 % 34.47 %
===============================
The number of integrals has increased from 71,994 to 85,479, mainly
because, I suppose, new suites of 3,154 elementary algebraic integrands
by Sam Blake and of 10,335 elementary transcendental integrands by
Waldek Hebisch have been added.
Can we assume that the extended tests a better measure of the
integrator performance one needs in practice?
Rubi's performance drops by more than 5% - understandably, since a
rule-based approach is not well suited to cope with many of the
integrands designed to exercise Sam's heuristic integration algorithm
for algebraic integrals, or many of Waldek's integrands obtained by differentiation of random transcendental functions.
Strangely, Mathematica loses 0.4% - in spite of having incorporated
the heuristic algorithm for algebraic integrals, and in spite of its
claim to field a Risch implementation that is able to handle any transcendental integrand.
Maple, meanwhile, gains 1% - perhaps because the integrator invocation
on each test integrand also activates Maple's Risch-Trager algorithm
for algebraic integrands this time, but didn't last time.
FriCAS gains more than 10% - it should be performing fairly well on the
new suite of algebraic integrands, and of course perfectly well on that
of random transcendental ones.
Also, two regression failures in FriCAS 1.3.8 appear worth noting,<snip>
And the other is:
INT(SEC(d*x + c)*(a + b*SIN(d*x + c))^(5/2), x)
= - (a - b)^(5/2)*ATANH(SQRT(a + b*SIN(c + d*x))/SQRT(a - b))/d
+ (a + b)^(5/2)*ATANH(SQRT(a + b*SIN(c + d*x))/SQRT(a + b))/d
- 4*a*b*SQRT(a + b*SIN(c + d*x))/d
- 2*b*(a + b*SIN(c + d*x))^(3/2)/(3*d)
where Derive 6.10 returns a correct elementary result.
clicliclic@freenet.de <nobody@nowhere.invalid> wrote:
"Nasser M. Abbasi" schrieb:
Independent CAS integration tests summer 2022 edition is now complete.
(It took about 5 months since I initially started working on it!)
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
Here's how the percentages of integrals solved relate to last year's:
system 2022 2021
===============================
Mathematica 97.99 % 98.39 %
Rubi 94.21 % 99.52 %
Maple 84.53 % 83.58 %
Fricas 79.33 % 68.70 %
Giac 58.37 % 52.43 %
Maxima 56.86 % 52.72 %
Mupad 56.10 % 52.55 %
Sympy 41.89 % 34.47 %
===============================
The number of integrals has increased from 71,994 to 85,479, mainly
because, I suppose, new suites of 3,154 elementary algebraic integrands
by Sam Blake and of 10,335 elementary transcendental integrands by
Waldek Hebisch have been added.
71_994 + 3_154 + 10_335 = 85_483
so 4 interals are gone.
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
[...]
The report is at
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REGRESSION_REPORTS/fricas/report.htm>
There is also now a new _reverse regression report_. This shows
all integrals that were solved in Fricas 1.3.8 but failed in 1.3.7.
5,647 such integrals were found for Fricas. Many seem to be solved now
using the new weierstrass, weierstrassZeta, weierstrassPInverse
special functions introduced in 1.3.8.
The report at
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REVERSE_REGRESSION_REPORT/fricas/report.htm>
[...]
"Reverse regression" should equal progression: A progress report?
FYI,
A new CAS integration test build started. This is summer 2022 edition.
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/index.htm>
Progress report
================
Sympy 1.10.1 under Python 3.10.4 vs. Sympy 1.8 under Python 3.8.8
379
FYI,
A new CAS integration test build started. This is summer 2022 edition.
How is that possible 0 was not compared against correct antiderivative?
Was that always wrong? Fricas-devel topic?
Also did you check not solved by Wolfram 13.1 whether those are fixed by changing the timeout for IntegrateAlgebraic to 100 seconds??
SetSystemOptions[
"IntegrateOptions" -> {"IntegrateAlgebraicTimeConstraint" -> 100}];
Fyi,
With the help of the SQL database I am using now for CAS integration
tests, I was able to generate some more interesting observations.
Added new statistic section called "Performance based on Rubi rules"
<https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/indexchapter1.htm#x2-50001.3>
This section basically looks at how percentage solved by each CAS
correlate to how many rules and how many steps Rubi itself used
to solve the same integral.
I also added histograms showing distribution of leaf size of
anti-derivatives for each CAS.
Hope this is something that is useful to see.
Interesting indeed.
The performance of Mathematica, Maple, and FriCAS in dependence on the
number of distinct rules used by Rubi exhibits a plateau or even a rise
over the range from 4 to 7 rules. May this be caused by some
peculiarity in the construction of the Rubi test suite in particular,
rather than by features of the integration algorithms fielded by the
three competitors? The other four systems show a fairly steady decrease
with the number of rules.
The performance in dependence on the total number of steps used by Rubi
also shows a diffrence between the behavior of Mathematica, Maple, and FriCAS, and that of Giac, Maxima, Mupad, and Sympy: a gradual decrease
for the first three systems, versus a small increase at two steps that changes to a relatively fast decrease up to 8 or 10 steps that is
followed by a plateau for the last four systems. Again, two groups of algorithms appear to react differently to the overall testsuite.
In the histograms of the number of integrals solved versus leaf size of
the antiderivative, Rubi is exceptional in that the first bin (of sizes
below 40 leaves) does not hold significantly more integrals than the
next one (from 40 to 80 leaves) contains, whereas all bins for all
other systems conform to a general decrease with leaf count. Could this
be caused specifically by Rubi's poor performance on Waldek's integrals
based on 10'000 random antiderivatives?
Martin.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 476 |
Nodes: | 16 (0 / 16) |
Uptime: | 159:52:46 |
Calls: | 9,513 |
Calls today: | 1 |
Files: | 13,637 |
Messages: | 6,130,370 |