Fyi;
A new build of the independent CAS integration test suite is now
running.
Please see
https://www.12000.org/my_notes/CAS_integration_tests/index.htm
Under summer_2021 link
[...]
Of the 705 Timofeev integrals from the independent CAS integration test suites:
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/test_cases/0_Independent_test_suites/Timofeev_Problems/rech1.htm#x2-10001>
the number solved varies as follows over the last three test runs:
Rubi 705 705 705
Mathematica 700 705 705
Maple 646 647 655
Fricas 647 650 652
Giac 564 564 587
Maxima 564 542 564
Mupad --- --- 542
Sympy 396 422 430
While Rubi and Mathematica have achieved saturation, Maple, FriCAS,
Giac, and SymPy continue to improve, and Maxima just recovers from a
decline. As Nasser has noted earlier, FriCAS 1.3.6 fails on the
(elementary) Timofeev integral 5.89 (#425) which earlier versions could already handle:
integrate(cos(x)*cos(2*x)*sin(3*x)/(4*sin(x)^2-5)^(5/2),x) ?= 0
But even if this can be corrected, Maple will remain ahead for now!
Martin.
On 6/4/2021 4:46 PM, clicliclic@freenet.de wrote:
Of the 705 Timofeev integrals from the independent CAS integration
test suites:
<https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/test_cases/0_Independent_test_suites/Timofeev_Problems/rech1.htm#x2-10001>
the number solved varies as follows over the last three test runs:
Rubi 705 705 705
Mathematica 700 705 705
Maple 646 647 655
Fricas 647 650 652
Giac 564 564 587
Maxima 564 542 564
Mupad --- --- 542
Sympy 396 422 430
While Rubi and Mathematica have achieved saturation, Maple, FriCAS,
Giac, and SymPy continue to improve, and Maxima just recovers from a decline. As Nasser has noted earlier, FriCAS 1.3.6 fails on the (elementary) Timofeev integral 5.89 (#425) which earlier versions
could already handle:
integrate(cos(x)*cos(2*x)*sin(3*x)/(4*sin(x)^2-5)^(5/2),x) ?= 0
But even if this can be corrected, Maple will remain ahead for now!
Fyi, Maple 2021 improved, going from solving 647 to 655 due to this
(under Advanced math)
https://www.maplesoft.com/products/maple/new_features/
"Integration has been enhanced with improved algorithms for
indefinite integration, and the ability to easily specify which
integration method should be used and to compare the results from
different methods"
Wow, Maple users are now given documented access to its Risch
integrator by way of the revolutionary syntax int(f(x), x, method =
risch).
Just noticed that the FriCAS evaluation of Timofeev 5.89 (#425) is
counted as solved in the latest test run. So FriCAS would have to
handle four more of the Timofeev integrals in order to pull ahead of
the latest Maple.
Martin.
Wow, Maple users are now given documented access to its Risch...
integrator by way of the revolutionary syntax int(f(x), x, method =
risch).
Martin.
On 6/4/2021 5:56 PM, clicliclic@freenet.de wrote:
Wow, Maple users are now given documented access to its Risch...
integrator by way of the revolutionary syntax int(f(x), x, method =
risch).
FYI;
I just run all 50 failed Maple integrals in the Timofeev_Problems
using risch, but still none of them passed. I wanted to see if any
will now pass.
A related question: Is Maple now able to evaluate purely algebraic
elementary integrals like int(1/(x*(x^2 - 1)^(1/4)), x) or int((3 +
x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x) without requiring users to rewrite the integrand in terms of root objects?
(I am guessing here
that older versions fail on these two.)
Martin.
On 6/8/2021 2:12 PM, clicliclic@freenet.de wrote:
A related question: Is Maple now able to evaluate purely algebraic elementary integrals like int(1/(x*(x^2 - 1)^(1/4)), x) or int((3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x) without requiring users to rewrite the integrand in terms of root objects?
Using Maple 2021.1, the first one gives result using "trager" and "meijerg" methods. The second integral you showed gives result using "trager" only.
Both outputs have RootOf when using "trager", and the output using
"trager" method have hypergeom and GAMMA but no RootOf.
------------------------
lprint(int(1/(x*(x^2 - 1)^(1/4)), x, method=_RETURNVERBOSE))
["trager" = -1/2*RootOf(_Z^4+1)*ln((2*(x^2-1)^(1/2)*RootOf(_Z^4+1)^3+2*(x^2-1)^
(1/4)*RootOf(_Z^4+1)^2-RootOf(_Z^4+1)*x^2-2*(x^2-1)^(3/4)+2*RootOf(_Z^4+1))/x^2
)-1/2*RootOf(_Z^4+1)^3*ln(-(RootOf(_Z^4+1)^3*x^2-2*RootOf(_Z^4+1)^3+2*(x^2-1)^(
1/4)*RootOf(_Z^4+1)^2-2*(x^2-1)^(1/2)*RootOf(_Z^4+1)+2*(x^2-1)^(3/4))/x^2),
"meijerg" = 1/4/Pi*2^(1/2)*GAMMA(3/4)/signum(x^2-1)^(1/4)*(-signum(x^2-1))^(1/4
)*((-3*ln(2)-1/2*Pi+2*ln(x)+I*Pi)*Pi*2^(1/2)/GAMMA(3/4)+1/4*Pi*2^(1/2)/GAMMA(3/
4)*x^2*hypergeom([1, 1, 5/4],[2, 2],x^2)), FAILS = ("gosper", "lookup", "derivativedivides", "default", "norman", "risch", "elliptic")] -------------------------
lprint(int((3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x,method=_RETURNVERBOSE))
["trager" = 1/2*RootOf(_Z^2+1)*ln((RootOf(_Z^2+1)^3*(x^4+6*x^2+1)^(1/2)*x^4- RootOf(_Z^2+1)^3*x^6-RootOf(_Z^2+1)^2*(x^4+6*x^2+1)^(3/4)*x^3+RootOf(_Z^2+1)^3*
(x^4+6*x^2+1)^(1/2)*x^2-5*RootOf(_Z^2+1)^3*x^4-(x^4+6*x^2+1)^(1/4)*x^5-RootOf(
_Z^2+1)*(x^4+6*x^2+1)^(1/2)*x^2+RootOf(_Z^2+1)*x^4+(x^4+6*x^2+1)^(3/4)*x-4*(x^4
+6*x^2+1)^(1/4)*x^3-RootOf(_Z^2+1)*(x^4+6*x^2+1)^(1/2)+5*RootOf(_Z^2+1)*x^2-3*(
x^4+6*x^2+1)^(1/4)*x)/(RootOf(_Z^2+1)*x-1)^2/(RootOf(_Z^2+1)*x+1)^2)+1/2*ln(((x
^4+6*x^2+1)^(3/4)*x+(x^4+6*x^2+1)^(1/2)*x^2+(x^4+6*x^2+1)^(1/4)*x^3+x^4+(x^4+6*
x^2+1)^(1/2)+3*(x^4+6*x^2+1)^(1/4)*x+5*x^2)/(x^2+1)), FAILS = ("gosper", "lookup", "derivativedivides", "default", "norman", "meijerg", "risch", "elliptic")]
--------------------------
(I am guessing here
that older versions fail on these two.)
Actually, only your second integral could not be solved in Maple 2020.
The first one could be solved as is, giving the same output as shown
above using the "meijerg" (using hypergeom)
"Nasser M. Abbasi" schrieb:
On 6/8/2021 2:12 PM, clicliclic@freenet.de wrote:
A related question: Is Maple now able to evaluate purely algebraic
elementary integrals like int(1/(x*(x^2 - 1)^(1/4)), x) or int((3 +
x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x) without requiring users to
rewrite the integrand in terms of root objects?
Using Maple 2021.1, the first one gives result using "trager" and "meijerg" >> methods. The second integral you showed gives result using "trager" only.
Both outputs have RootOf when using "trager", and the output using
"trager" method have hypergeom and GAMMA but no RootOf.
------------------------
lprint(int(1/(x*(x^2 - 1)^(1/4)), x, method=_RETURNVERBOSE))
["trager" = -1/2*RootOf(_Z^4+1)*ln((2*(x^2-1)^(1/2)*RootOf(_Z^4+1)^3+2*(x^2-1)^
(1/4)*RootOf(_Z^4+1)^2-RootOf(_Z^4+1)*x^2-2*(x^2-1)^(3/4)+2*RootOf(_Z^4+1))/x^2
)-1/2*RootOf(_Z^4+1)^3*ln(-(RootOf(_Z^4+1)^3*x^2-2*RootOf(_Z^4+1)^3+2*(x^2-1)^(
1/4)*RootOf(_Z^4+1)^2-2*(x^2-1)^(1/2)*RootOf(_Z^4+1)+2*(x^2-1)^(3/4))/x^2), >>
"meijerg" = 1/4/Pi*2^(1/2)*GAMMA(3/4)/signum(x^2-1)^(1/4)*(-signum(x^2-1))^(1/4
)*((-3*ln(2)-1/2*Pi+2*ln(x)+I*Pi)*Pi*2^(1/2)/GAMMA(3/4)+1/4*Pi*2^(1/2)/GAMMA(3/
4)*x^2*hypergeom([1, 1, 5/4],[2, 2],x^2)), FAILS = ("gosper", "lookup",
"derivativedivides", "default", "norman", "risch", "elliptic")]
-------------------------
lprint(int((3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x,method=_RETURNVERBOSE))
["trager" = 1/2*RootOf(_Z^2+1)*ln((RootOf(_Z^2+1)^3*(x^4+6*x^2+1)^(1/2)*x^4- >> RootOf(_Z^2+1)^3*x^6-RootOf(_Z^2+1)^2*(x^4+6*x^2+1)^(3/4)*x^3+RootOf(_Z^2+1)^3*
(x^4+6*x^2+1)^(1/2)*x^2-5*RootOf(_Z^2+1)^3*x^4-(x^4+6*x^2+1)^(1/4)*x^5-RootOf(
_Z^2+1)*(x^4+6*x^2+1)^(1/2)*x^2+RootOf(_Z^2+1)*x^4+(x^4+6*x^2+1)^(3/4)*x-4*(x^4
+6*x^2+1)^(1/4)*x^3-RootOf(_Z^2+1)*(x^4+6*x^2+1)^(1/2)+5*RootOf(_Z^2+1)*x^2-3*(
x^4+6*x^2+1)^(1/4)*x)/(RootOf(_Z^2+1)*x-1)^2/(RootOf(_Z^2+1)*x+1)^2)+1/2*ln(((x
^4+6*x^2+1)^(3/4)*x+(x^4+6*x^2+1)^(1/2)*x^2+(x^4+6*x^2+1)^(1/4)*x^3+x^4+(x^4+6*
x^2+1)^(1/2)+3*(x^4+6*x^2+1)^(1/4)*x+5*x^2)/(x^2+1)), FAILS = ("gosper",
"lookup", "derivativedivides", "default", "norman", "meijerg", "risch",
"elliptic")]
--------------------------
(I am guessing here
that older versions fail on these two.)
Actually, only your second integral could not be solved in Maple 2020.
The first one could be solved as is, giving the same output as shown
above using the "meijerg" (using hypergeom)
Do I understand this correctly?
When a user does not explicitly specify an integration method (nor does convert the integrand to RootOf), the algebraic (3 + x^2)/((1 + x^2)*
(1 + 6*x^2 + x^4)^(1/4)) could not be integrated by Maple 2020, but can
be integrated by Maple 2021.1.
This algebraic would thus illustrate the way in which Maple has been
improved its performance on the test suites.
Martin.
On 6/8/2021 5:32 PM, clicliclic@freenet.de wrote:
"Nasser M. Abbasi" schrieb:
On 6/8/2021 2:12 PM, clicliclic@freenet.de wrote:
A related question: Is Maple now able to evaluate purely algebraic
elementary integrals like int(1/(x*(x^2 - 1)^(1/4)), x) or
int((3 > >>> + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x)
without requiring users to rewrite the integrand in terms of root
objects?
Using Maple 2021.1, the first one gives result using "trager" and "meijerg"
methods. The second integral you showed gives result using "trager" only. >>
Both outputs have RootOf when using "trager", and the output using
"trager" method have hypergeom and GAMMA but no RootOf.
------------------------
lprint(int(1/(x*(x^2 - 1)^(1/4)), x, method=_RETURNVERBOSE))
["trager" = -1/2*RootOf(_Z^4+1)*ln((2*(x^2-1)^(1/2)*RootOf(_Z^4+1)^3+2*(x^2-1)^
(1/4)*RootOf(_Z^4+1)^2-RootOf(_Z^4+1)*x^2-2*(x^2-1)^(3/4)+2*RootOf(_Z^4+1))/x^2
)-1/2*RootOf(_Z^4+1)^3*ln(-(RootOf(_Z^4+1)^3*x^2-2*RootOf(_Z^4+1)^3+2*(x^2-1)^(
1/4)*RootOf(_Z^4+1)^2-2*(x^2-1)^(1/2)*RootOf(_Z^4+1)+2*(x^2-1)^(3/4))/x^2),
"meijerg" = 1/4/Pi*2^(1/2)*GAMMA(3/4)/signum(x^2-1)^(1/4)*(-signum(x^2-1))^(1/4
)*((-3*ln(2)-1/2*Pi+2*ln(x)+I*Pi)*Pi*2^(1/2)/GAMMA(3/4)+1/4*Pi*2^(1/2)/GAMMA(3/
4)*x^2*hypergeom([1, 1, 5/4],[2, 2],x^2)), FAILS = ("gosper", "lookup",
"derivativedivides", "default", "norman", "risch", "elliptic")]
-------------------------
lprint(int((3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)), x,method=_RETURNVERBOSE))
["trager" = 1/2*RootOf(_Z^2+1)*ln((RootOf(_Z^2+1)^3*(x^4+6*x^2+1)^(1/2)*x^4-
RootOf(_Z^2+1)^3*x^6-RootOf(_Z^2+1)^2*(x^4+6*x^2+1)^(3/4)*x^3+RootOf(_Z^2+1)^3*
(x^4+6*x^2+1)^(1/2)*x^2-5*RootOf(_Z^2+1)^3*x^4-(x^4+6*x^2+1)^(1/4)*x^5-RootOf(
_Z^2+1)*(x^4+6*x^2+1)^(1/2)*x^2+RootOf(_Z^2+1)*x^4+(x^4+6*x^2+1)^(3/4)*x-4*(x^4
+6*x^2+1)^(1/4)*x^3-RootOf(_Z^2+1)*(x^4+6*x^2+1)^(1/2)+5*RootOf(_Z^2+1)*x^2-3*(
x^4+6*x^2+1)^(1/4)*x)/(RootOf(_Z^2+1)*x-1)^2/(RootOf(_Z^2+1)*x+1)^2)+1/2*ln(((x
^4+6*x^2+1)^(3/4)*x+(x^4+6*x^2+1)^(1/2)*x^2+(x^4+6*x^2+1)^(1/4)*x^3+x^4+(x^4+6*
x^2+1)^(1/2)+3*(x^4+6*x^2+1)^(1/4)*x+5*x^2)/(x^2+1)), FAILS = ("gosper", >> "lookup", "derivativedivides", "default", "norman", "meijerg", "risch",
"elliptic")]
--------------------------
(I am guessing here
that older versions fail on these two.)
Actually, only your second integral could not be solved in Maple 2020.
The first one could be solved as is, giving the same output as shown
above using the "meijerg" (using hypergeom)
Do I understand this correctly?
When a user does not explicitly specify an integration method (nor does convert the integrand to RootOf), the algebraic (3 + x^2)/((1 + x^2)*
(1 + 6*x^2 + x^4)^(1/4)) could not be integrated by Maple 2020, but can
be integrated by Maple 2021.1.
This algebraic would thus illustrate the way in which Maple has been improved its performance on the test suites.
Yes, that is correct. Your integral above could not be solved in
Maple 2020 but only in 2021:
----------------------------
interface(version)
Standard Worksheet Interface, Maple 2020.2, Windows 10,
November 11 2020 Build ID 1502365
lprint(int( (3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)),x)) int((x^2+3)/(x^2+1)/(x^4+6*x^2+1)^(1/4),x)
--------------------------
interface(version)
Standard Worksheet Interface, Maple 2021.1, Windows 10, May 19
2021 Build ID 1539851
lprint(int( (3 + x^2)/((1 + x^2)*(1 + 6*x^2 + x^4)^(1/4)),x)) 1/2*RootOf(_Z^2+1)*ln((RootOf(_Z^2+1)^3*(x^4+6*x^2+1)^(1/2)*x^4-RootOf(_Z^2+1)^
3*x^6-RootOf(_Z^2+1)^2*(x^4+6*x^2+1)^(3/4)*x^3+RootOf(_Z^2+1)^3*(x^4+6*x^2+1)^(
1/2)*x^2-5*RootOf(_Z^2+1)^3*x^4-(x^4+6*x^2+1)^(1/4)*x^5-RootOf(_Z^2+1)*(x^4+6*x
^2+1)^(1/2)*x^2+RootOf(_Z^2+1)*x^4+(x^4+6*x^2+1)^(3/4)*x-4*(x^4+6*x^2+1)^(1/4)*
x^3-RootOf(_Z^2+1)*(x^4+6*x^2+1)^(1/2)+5*RootOf(_Z^2+1)*x^2-3*(x^4+6*x^2+1)^(1/
4)*x)/(RootOf(_Z^2+1)*x-1)^2/(RootOf(_Z^2+1)*x+1)^2)+1/2*ln(((x^4+6*x^2+1)^(3/4
)*x+(x^4+6*x^2+1)^(1/2)*x^2+(x^4+6*x^2+1)^(1/4)*x^3+x^4+(x^4+6*x^2+1)^(1/2)+3*(
x^4+6*x^2+1)^(1/4)*x+5*x^2)/(x^2+1))
------------------------------
it is part of that improvement they mentioned at Maplesoft website
for int in 2021 version.
Fyi;
A new build of the independent CAS integration test suite is now
running.
Please see
https://www.12000.org/my_notes/CAS_integration_tests/index.htm
Under summer_2021 link
40 test files have been processed so far (24,710 integrals)
out of total 71,994 integrals.
On 6/4/2021 12:00 AM, Nasser M. Abbasi wrote:
Fyi;
A new build of the independent CAS integration test suite is now
running.
Please see
https://www.12000.org/my_notes/CAS_integration_tests/index.htm
Under summer_2021 link
40 test files have been processed so far (24,710 integrals)
out of total 71,994 integrals.
FYI,
The following is the half way update of CAS integration tests build.
37,876 integrals (81 files) have now been processed out of total
71,994 (208 files).
This uses the same integrals used in last year's build of April 2020
which is Rubi's 4.16.1 test integrals maintained by Albert Rich.
The zip files containing the raw integrals can be downloaded from
Rubi's web site https://rulebasedintegration.org/testProblems.html
I rerun all of Mupad tests again, after finding a way to add a timeout
of 3 minutes using Matlab's parallel toolbox. So now mupad has
the same timeout as all the other CAS system.
The following is the current result as of now, showing percent solved,
and percent of A grade and the average time per integral in seconds
and mean normalized (relative to optimal) of result leaf size.
Fricas 1.3.7, Giac/Xcas 1.7 and Maxima 5.44 were all called
via sagemath 9.3 on Linux VBox running on top of windows 10.
Sympy was run using Ubuntu running under windows 10 Linux subsystem
and the rest were run directly on windows 10.
system % solved %A time(sec) leaf size ================== ========== ======== ========= ===========
Rubi 4.16.1 99.69 98.71 0.23 1
Mathematica 12.3 98.89 75.09 0.8 1.5
Maple 2021.1 83.27 54.99 0.36 8
Fricas 1.3.7 73.56 54.69 1.66 2.29
Giac/Xcas 1.7 61.54 46.48 0.97 1.94
Maxima 5.44 57.54 48.06 1.17 1.45
Mupad/Matlab 2021a 58.43 N/A 2.72 3.08
Sympy 1.8/Python 3.8.8 45.65 33.21 10.15 2.8
Mupad is not currently graded. B grade is given automatically
as a place holder for any integral that complete in time.
I will make a final update when the build completes in about another
month or may be more.
If you spot any problems in the results or have questions please feel
free to let me know.
FriCAS 1.3.7 manages to solve just one more (653 versus 652) of
Timofeev's integration problems compared to version 1.3.6, with both
versions called via sagemath 9.3. But which one is the newly solved
integral? And how is Timofeev's problem 5.89 (#425) handled now?
Martin.
On 7/1/2021 7:53 AM, clicliclic@freenet.de wrote:
FriCAS 1.3.7 manages to solve just one more (653 versus 652) of
Timofeev's integration problems compared to version 1.3.6, with both versions called via sagemath 9.3. But which one is the newly solved integral? And how is Timofeev's problem 5.89 (#425) handled now?
For the first question, the program now does not compare or
produce a regression report for each CAS to compare its current
result to the last build. That is something that can be added in
the future, but the problem is that once Albert Rich in the future
adds or removes integrals from the input raw files used, it will
break the regression/comparison since the integrals now for each build
will be different, that is why I did not want to do it.
But it is fairly easy to see this difference manually per each file, as
the build program produces a list of all failed integrals for test file.
Each test file, under "detailed summary tables of results"
has a list of integrals per grade.
Looking at the Failed list, and by opening two browser windows,
one for Fricas 1.3.6 and window for 1.3.7 and putting them side
by side one can quickly see the difference.
In this case, I see that it was #413 Here is screen shot
https://www.12000.org/tmp/07012021/diff_fricas.png
integrate((sin(x)^5/cos(x))^(1/2),x, algorithm="fricas")
Output too large to paste here. But here is the link. it got grade B
https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/test_cases/0_Independent_test_suites/Timofeev_Problems/rese413.htm#x417-4410003.413
In Fricas 1.3.6, it timedout.
For your second question about #425, in 1.3.7 I see it still gives zero
as in 1.3.6:
https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/test_cases/0_Independent_test_suites/Timofeev_Problems/rese425.htm#x429-4530003.425
integrate(cos(x)*cos(2*x)*sin(3*x)/(-5+4*sin(x)^2)^(5/2),x, algorithm="fricas")
0
The optimal should be
-1/4/(-5+4*sin(x)^2)^(3/2)-5/8/(-5+4*sin(x)^2)^(1/2)+1/8*(-5+4*sin(x)^2)^(1/2)
Fyi;
A new build of the independent CAS integration test suite is now
running.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 294 |
Nodes: | 16 (2 / 14) |
Uptime: | 245:13:33 |
Calls: | 6,626 |
Calls today: | 2 |
Files: | 12,175 |
Messages: | 5,320,562 |