• Fyi, new independent CAS integration test suite build is online

    From Nasser M. Abbasi@21:1/5 to All on Fri Jun 4 00:00:28 2021
    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.

    It will take about another 2 months to complete the full test suite.

    Will update the web page as more tests are completed. There are a
    total of 208 test files.

    I am posting this now, in case someone finds any problems
    so I can fix them early on.

    This build includes the following 6 changes and improvements ============================================================
    1. New versions of Maple, Mathematica, Maxima, Sympy, Giac/XCAS
    and sagemath.

    2. Added new CAS: mupad included in current Matlab 2021a symbolic toolbox.

    3. Failed integrals for those CAS run via sagemath now show the
    exception error message. This makes it possible to determine if
    the failed integral was due to sagemath interface error or due
    to the CAS itself generating the exception internally.

    4. A new table that shows percentage of failed integrals due to
    exception vs. timeout vs. normal failure for each test file
    and each CAS.

    5. Two new Bar charts that compares antiderivatives mean size and
    mean time used for all CAS systems for each test file.

    6. For Maxima, any integral where it asks an interactive question to
    continue, will fail. Each such failure throws an exception. So
    Maxima result should be higher than shown in these tests but
    it was not possible to bypass this or somehow tell Maxima not
    to use the interactive feature.

    To minimize the effect of false failure due to Maxima asking interactive questions on some integrals which sagemath interface does not support,
    this version of the build program adds an assume(var>0) on all the variables other than the integration variable. This resulted in many more integral
    now passing for Maxima compared to last year build. But it was not possible to eliminate all interactive questions this way.

    Version of CAS changes and additional notes ===========================================
    This build uses the same Rubi 4.16.1 test files used in the last
    build on April of last year.

    The versions of CAS’s used in this build vs. Last year's are

    (Current)Summer 2021 April 2020
    ==================== ==================
    Rubi 4.16.1 Rubi 4.16.1
    Mathematica 12.3 Mathematica 12.1
    Maple 2021.1 Maple 2020
    Maxima 5.44/sagemath 9.3 Maxima 5.43/sagemath 8.9
    Fricas 1.3.6/sagemath 9.3 Fricas 1.3.6/sagemath 9.0
    Giac/Xcas 1.7/sagemath 9.3 Giac/Xcas 1.5/sagemath 8.9
    Sympy 1.8/Python 3.7.9 Sympy 1.5/Python 3.7.3
    Mupad/Matlab 2021a N/A

    Three CAS systems are run using sagemath. These are Fricas,
    Maxima and Giac.

    There are still few integrals that fail due to interface issues
    between sagemath and these CAS systems, but now with the
    new sagemath 9.3, there are less of these.

    The integrals that fail due to an exception are flagged with
    error code F(-2) and the error message will now make it more clear
    if the exception was due to an interface problem, or due to
    the CAS itself generating it. For an example

    integrate(x^(5/2)*(b*x+2)^(1/2),x, algorithm="giac")

    The exception is

    "Exception raised: NotImplementedError >> Unable to parse Giac output:
    Warning, choosing root of ....."

    Shows this integrals is flagged failed F(-2) due to interface error, since sagemath does not parse warning messages returned along with the antiderivative. Question on this posted at

    <https://ask.sagemath.org/question/57312/result-that-comes-with-warning-from-giac-integrator/>

    Another example of interface failure in sagemath with giac is

    var('C B A e d x')
    integrate((C*x^2+B*x+A)*(-e^2*x^2+d^2)^(1/2)/(e*x+d),x, algorithm="giac") NotImplementedError: Unable to parse Giac output:

    Even though the above integral can be solved using giac directly. This is due to using the letter `e`. Question on this posted at

    <https://ask.sagemath.org/question/57442/why-giac-integrate-result-fail-to-be-parsed-when-using-letter-e/>

    It might be a good idea for future Rubi test suite not to use letter `e`
    as it is read as exp(1) by giac and that seems why sagemath had problems
    with using it.

    There are three type of Failed code: F, F(-1) and F(-2).

    The first is normal failure, i.e. when integral returns unevaluated.
    F(-1) means failed due to a timeout. F(-2) means failed due to an
    exception.

    For mupad, and since Mathworks in Matlab 2021a have removed the mupad
    language interface, it was not possible to have the 3 minutes timeout
    added to the call to integrate as Matlab itself does not have a
    timelimit() function build in.

    Hence for mupad, no timelimit is used. For those integrals that do
    hang, they are assigned F(-2) manually. In addition, there is no
    grading done for mupad now. Hence if the integral does not fail,
    it is automatically given a B grade as a place holder for now.

    Hopefully in the future I will add a grading function for mupad
    by porting one of the current grading functions to Matlab's symbolic
    toolbox.

    Current stats as of now are (40 files, 24710 integrals) ======================================================

    System solved Failed
    ======= ======= =======
    Rubi % 99.86 % 0.14
    Mathematica % 99.47 % 0.53
    Maple % 86.85 % 13.15
    Fricas % 75.24 % 24.76
    Giac % 66.29 % 33.71
    Mupad % 60.92 % 39.08
    Maxima % 60.40 % 39.60
    Sympy % 54.29 % 45.71


    Percentage of A grade:

    System
    =======
    Rubi 99.23 %
    Mathematica 75.33 %
    Maple 59.89 %
    Fricas 56.82 %
    Giac 50.53 %
    Maxima 52.46 %
    Sympy 38.02 %
    Mupad N/A as Not Graded

    The above numbers will of course change as more test files are processed and the web pages updated.

    Some observations
    ================
    Maple remains one of the fastest CAS to complete the integrals, but with
    the largest leaf size (since no simplify or any other post-processing) is
    done of the result. I am sure if simplify is used afterword, the leaf
    size will be much less.

    But this would have to be done for all CAS system. So the test are
    always run without using simplify on the antiderivative for any CAS.

    Sympy 1.8 took the longest time to complete, as was the case in last
    year's build. It does not look like that fast C++ symEngine talked about
    before is yet integrated in it.

    https://github.com/symengine/symengine

    There are still some sagemath interface issues with Fricas/giac and Maxima which makes the result of these CAS system a little lower than the actual result if these we called directly. May be about 1-2% for Fricas and Giac,
    and more for Maxima due to the interactive questions issues which
    can't really be fixed using sagemath interface.

    But in this version of the build the full exception message is now displayed, so it is possible to determine the cause of the exception and see which
    case it is.

    Questions found about these sgemath inerface issues are reported to
    asksagemath and some have tickets on them. May be in next version of
    sagemath 9.4 there will less such issues.

    If a new version of FriCAS comes out before the tests are completed, will re-run Fricas to update.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Fri Jun 4 23:46:46 2021
    "Nasser M. Abbasi" schrieb:

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Fri Jun 4 17:19:53 2021
    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!

    Martin.



    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"

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Sat Jun 5 00:56:41 2021
    "Nasser M. Abbasi" schrieb:

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Fri Jun 4 18:35:58 2021
    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).

    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.


    That is correct. There is no verification done for Fricas.

    Only Rubi and Mathematica have verification implemented for
    them now, so their results are checked each time, and if it does
    not verify it will flag the result as "not verified" (there are few
    of these found). But only for Rubi and Mathematica.

    For all other CAS systems, if they finish in the time limit, or
    do not generate exception, and the result is not the same as the
    input or do not has not integrate in them (and other checks),
    (i.e. it "solved it"), it is automatically counted as "solved".

    The grading functions do not check if the anti-derivative is
    correct or not. It only checks for conditions given in the report on
    what gives grade A, B, C. And actually result 0 gives A grade,
    since leaf size gives it this grade and it passes all other conditions
    for the grading. (no complex numbers, no special functions, etc...)

    The grading function is listed here

    https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/grade_sagemath.py

    In the future, hopefully a verification will be added to all other CASes.

    Integrals that passes but fail verification are also listed separately for
    each file to make it easy to find and investigate.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Tue Jun 8 01:35:01 2021
    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).
    ...
    Martin.


    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.

    It is possible to have Maple try all methods it has one by one automatically also, like this

    intergand:=exp(x)*arcsin(tanh(x));
    int(intergand,x, method=_RETURNVERBOSE);

    [FAILS = ("gosper", "lookup", "derivativedivides", "default",
    "norman", "trager", "meijerg", "risch", "elliptic")]

    The above says all of these methods failed on this integral including risch.


    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Tue Jun 8 21:12:12 2021
    "Nasser M. Abbasi" schrieb:

    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.

    This is suggestive of Maple's updated integrator trying its Risch
    method anyway when called in your test run.

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Tue Jun 8 14:44:35 2021
    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.)

    Martin.


    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Wed Jun 9 00:32:32 2021
    "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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Tue Jun 8 18:46:31 2021
    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.

    Martin.


    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.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Thu Jun 10 18:30:40 2021
    "Nasser M. Abbasi" schrieb:

    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.


    Thanks.

    A user of Maple 2020 (or earlier) needed to convert the radicals in
    his integrand to RootOf() first - a secret unearthed by Sam Blake last
    year, who also helped cracking the Zodiac killer's 340-symbols cypher:

    <https://en.wikipedia.org/wiki/Zodiac_Killer>

    Martin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to Nasser M. Abbasi on Wed Jun 30 02:05:37 2021
    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.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Thu Jul 1 14:53:32 2021
    "Nasser M. Abbasi" schrieb:

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to clicliclic@freenet.de on Thu Jul 1 11:26:01 2021
    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?

    Martin.


    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)

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody@nowhere.invalid@21:1/5 to Nasser M. Abbasi on Fri Jul 2 13:51:49 2021
    "Nasser M. Abbasi" schrieb:

    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)


    Thanks.

    More improvements are needed for the FriCAS integrator to beat Maple
    again in the future.

    Martin.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to Nasser M. Abbasi on Wed Jul 28 12:16:02 2021
    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.


    FYI;

    Summer 2021 CAS integration tests is now complete.

    https://www.12000.org/my_notes/CAS_integration_tests/index.htm https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2021/index.htm

    Below is a summary that compares current build result with last years.

    Versions used:
    ===============
    April 2020 summer 2021
    ====================== ============================
    Rubi 4.16.1 4.16.1
    Mathematica 12.1 on windows 10 12.3.1 on windows 10
    Maple 2020 on windows 10 2021.1 on windows 10
    Fricas 1.3.6 (via sagemath 9.0) 1.3.7 (via sagemath 9.3)
    Mupad N/A Matlab 2021a/windows 10
    Giac/XCas 1.5 (via sagemath 8.9) 1.7 (via sagemath 9.3)
    Maxima 5.43 (via sagemath 8.9) 5.44 (via sagemath 9.3)
    Sympy 1.5/Python 3.7.3 1.8/Python 3.8.8


    Percentage solved:
    ===================
    April 2020 summer 2021 change
    =========== ============= ========
    Rubi 99.52 % 99.52 % 0.0 %
    Mathematica 98.35 % 98.39 % +0.04 %
    Maple 83.46 % 83.58 % +0.14 %
    Fricas 68.07 % 68.7 % +0.63 %
    Mupad N/A 52.55 % N/A
    Giac/XCas 52.51 % 52.43 % -0.08 %
    Maxima 43.03 % 52.72 % +9.69 %
    Sympy 32.41 % 34.47 % +2.06 %


    A grade Percentage:
    ===================
    April 2020 summer 2021 change
    =========== ============= ========
    Rubi 98.89 % 98.89 % 0.0 %
    Mathematica 74.67 % 74.75 % +0.08 %
    Maple 52.8 % 52.77 % -0.03 %
    Fricas 48.52 % 48.82 % +0.3 %
    Giac/XCas 39 % 38.1 % -0.9 %
    Maxima 33.24 % 41.43 % +8.19 %
    Sympy 25.08 % 26.94 % +1.86 %
    Mupad N/A N/A N/A

    Mean time to solve one integral (sec)
    ======================================
    April 2020 summer 2021
    =========== =============
    Rubi 0.28 0.28
    Mathematica 1.77 1.84
    Maple 0.46 0.79
    Fricas 2.81 1.56
    Giac/XCas 1.53 1.05
    Maxima 1.34 0.92
    Sympy 9.65 8.89
    Mupad N/A 2.73


    Normalized mean leaf size of result
    ======================================
    April 2020 summer 2021
    =========== =============
    Rubi 1 1
    Mathematica 2.8 2.8
    Maple 743.6 746.4
    Fricas 6.76 2.78
    Giac/XCas 2.55 2
    Maxima 2.46 1.76
    Sympy 2.53 2.77
    Mupad N/A 3.35

    Some observations
    ==================
    1. There is some regression in GIAC result in terms of percentage
    solved. It was the only CAS whose percentage solved reduced from
    last build.

    This could be due to sagemath interface issue or due to Giac itself.
    Hard to know now. One needs to go over the failed integrals and
    find out why.

    During running the tests, I could see many integrals
    would crash the giac process and sagemmath will restart giac
    automatically each time before going to the next integral to
    process.

    2. Most improved result came from Maxima. Part of this because in
    summer 2021 build, assumptions were added that all symbols in
    integrand (other than integration variable) are now assumed
    positive, which made Maxima not ask as many questions as before
    about if something is positive, negative or zero, which would have
    caused the integration to fail before since interactive integration
    does not work via sagemath interface.

    There are still integrals that fail due to this interactive format,
    but these are not possible to eliminate completely.

    3. In terms of speed, Fricas improved the most among all CAS systems.
    1.3.7 is more than twice as fast now as 1.3.7 (on same PC).
    Also Maxima and Giac speed improved. This could be due to improvement
    in the sagemath interface in 9.3.

    Also Fricas leaf size has improved the most, going from
    6.76 down to 2.78.

    Any problems please let me know.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)