Will try to post the notes below again, I see they got reformatted and hard
to read. May be this will work better this time.
Notes on Fricas 1.3.11 integration testing
July 3, 2024.
===========================================
>which fricas
/usr/local/bin/fricas
>fricas --version
FriCAS 1.3.11
based on sbcl 2.4.5
>which sage
/home/me/TMP/sage-10.3/sage
>sage --version
SageMath version 10.3, Release Date: 2024-03-19
>uname -a
Linux me-virtualbox 6.6.32-1-MANJARO #1 SMP PREEMPT_DYNAMIC Mon May 27
03:41:25 UTC 2024 x86_64 GNU/Linux
lsb_release -a
LSB Version: n/a
Distributor ID: ManjaroLinux
Description: Manjaro Linux
Release: 24.0.2
Codename: Wynsdey
grep MemTotal /proc/meminfo
MemTotal: 50189304 kB
Note 1: File 355 has 18 failed integrals due to
"There are no library operations named exp_integral_e "
Data 1.3.11 information about Fricase
-------------------------------------
>sqlite3 cas_integration_tests.db
#total number of integrals
sqlite> select count(*) from main;
106812
#number all failed by Fricas 1.3.11
sqlite> select count(*) from main where fricas_pass=0 or fricas_pass=-1 or
fricas_pass=-2;
24367
#number normal failed by Fricas 1.3.11
sqlite> select count(*) from main where fricas_pass=0;
17516
#number timedout failed by Fricas 1.3.11
sqlite> select count(*) from main where fricas_pass=-1;
4498
#number exceptions failed by Fricas 1.3.11
sqlite> select count(*) from main where fricas_pass=-2;
2353
#number passed by Fricas 1.3.11
sqlite> select count(*) from main where fricas_pass=1;
82445
Regression:
This is list of problem numbers which generated Exception
in 1.3.11 not in 1.3.10 (these are -2 code).
============================================================
105424
105425
105431
105432
105508
105509
105725
105726
105803
105804
105976
105977
106138
106139
Here are the above integral commands to try
sqlite> select command_in_fricas from main where rowid=105424;
integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105425;
integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105431;
integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(1+x)^(1/2)/(x^4+1),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105432;
integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(1+x)^(1/2)/(x^4+1),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105508;
integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105509;
integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105725;
integrate((1+x)^(1/2)*(x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105726;
integrate((1+x)^(1/2)*(x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105803;
integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105804;
integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105976;
integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=105977;
integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=106138;
integrate((x^2-1)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite> select command_in_fricas from main where rowid=106139;
integrate((x^2-1)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
sqlite>
Now let me try few of the above and see what is going on
--------------------------------------------------------------------
This one works OK in Fricas 1.3.11 but gives exception in sagemath 10.3
integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
>sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 10.3, Release Date: 2024-03-19 │
│ Using Python 3.11.1. Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
sage: var('x a b c d')
(x, a, b, c, d)
sage: integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[2], line 1
----> 1
integrate((x**Integer(4)-Integer(1))*(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2))/(x**Integer(4)+Integer(1)),x,
algorithm="fricas")
File ~/TMP/sage-10.3/src/sage/misc/functional.py:788, in integral(x, *args,
**kwds)
655 """
656 Return an indefinite or definite integral of an object ``x``.
657
(...)
785
786 """
787 if hasattr(x, 'integral'):
--> 788 return x.integral(*args, **kwds)
789 else:
790 from sage.symbolic.ring import SR
File ~/TMP/sage-10.3/src/sage/symbolic/expression.pyx:13268, in
sage.symbolic.expression.Expression.integral()
13266 R = SR
13267 return R(integral(f, v, a, b, **kwds))
> 13268 return integral(self, *args, **kwds)
13269
13270 integrate = integral
File ~/TMP/sage-10.3/src/sage/symbolic/integration/integral.py:1062, in
integrate(expression, v, a, b, algorithm, hold)
1060 if not integrator:
1061 raise ValueError("Unknown algorithm: %s" % algorithm)
-> 1062 return integrator(expression, v, a, b)
1063 if a is None:
1064 return indefinite_integral(expression, v, hold=hold)
File ~/TMP/sage-10.3/src/sage/symbolic/integration/external.py:207, in
fricas_integrator(expression, v, a, b, noPole)
204 else:
205 result = e_fricas.integrate(seg)
--> 207 result = result.sage()
209 if result == "failed":
210 result = expression.integrate(v, a, b, hold=True)
File ~/TMP/sage-10.3/src/sage/interfaces/interface.py:1123, in
InterfaceElement.sage(self, *args, **kwds)
1104 def sage(self, *args, **kwds):
1105 """
1106 Attempt to return a Sage version of this object.
1107
(...)
1121 [0 0]
1122 """
-> 1123 return self._sage_(*args, **kwds)
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:2067, in
FriCASElement._sage_(self)
2062 return FriCASElement._sage_expression(P.get_InputForm(self._name))
2064 if head == "Expression" or head == "Pi":
2065 # we treat Expression Integer and Expression Complex
2066 # Integer just the same
-> 2067 return FriCASElement._sage_expression(P.get_InputForm(self._name))
2069 raise NotImplementedError("the translation of the FriCAS object %s to
sage is not yet implemented" % (unparsed_InputForm()))
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:817, in
FriCAS.get_InputForm(self, var)
807 def get_InputForm(self, var):
808 """
809 Return the ``InputForm`` as a string.
810
(...)
815
816 """
--> 817 return self.get_string('sageprint((%s)::InputForm)' % str(var))
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:755, in
FriCAS.get_string(self, var)
710 """
711 Return the value of a FriCAS string as a string, without checking
712 that it is a string.
(...)
750
751 """
752 # strip removes leading and trailing whitespace, after that
753 # we can assume that the first and the last character are
754 # double quotes
--> 755 return self.get(str(var)).replace("\n", "").strip()[1:-1]
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:707, in FriCAS.get(self,
var)
704 else:
705 return "\n".join(line[FRICAS_MULTI_LINE_START:] for line in lines)
--> 707 self._check_errors(var, output)
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:566, in
FriCAS._check_errors(self, line, output)
564 for old, new in replacements:
565 output = output.replace(old, new)
--> 566 raise RuntimeError("An error occurred when FriCAS evaluated
'%s':\n%s" % (line, output))
568 # or even an error
569 if FRICAS_ERROR_IN_LIBRARY_CODE in output:
RuntimeError: An error occurred when FriCAS evaluated
'sageprint((sage2)::InputForm)':
Compiling function sageprint with type InputForm -> String
Heap exhausted during allocation: 4128768 bytes available, 8305312
requested.
Immobile Object Counts
Gen layout fdefn symbol code Boxed Cons Raw Code SmMix Mixed LgRaw LgCode
LgMix Waste% Alloc Trig Dirty GCs Mem-age
0 0 0 0 0 0 1065 40 0 0 1974 694 0 1573 4.8 166688416 56166286 - 1 0.0000
1 0 0 0 0 0 26 56 0 0 25 6061 0 0 0.9 200203744 32212254 6118 0 0.6334
2 0 0 0 0 0 22 61 0 0 26 29327 0 0 0.2 962463824 382674606 29389 1 0.3641
3 0 4468 0 4682 53 1475 140 1 14 53 54172 0 12 0.2 1829379008 2000000 54313
0 0.7255
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 2000000 0 0 0.0000
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 2000000 0 0 0.0000
6 780 25772 24483 26727 277 163 69 5 38 18 0 0 21 3.2 18752384 2000000 11 0
0.0000
Tot 780 30240 24483 31409 330 2751 366 6 52 2096 90254 0 1606 0.5
3177487376 [98.6% of 3221225472 max]
GC control variables:
*GC-INHIBIT* = false
*GC-PENDING* = false
*STOP-FOR-GC-PENDING* = false
Collection trigger variables:
dynamic_space_size = 3221225472
bytes_allocated = 3177487376
auto_gc_trigger = 3195814265
bytes_consed_between_gcs = 161061273
>> System error:
Heap exhausted (no more space for allocation).
4128768 bytes available, 8305312 requested.
PROCEED WITH CAUTION.
------------------------------------------------------
This one also works OK in Fricas 1.3.11 but gives exception in sagemath 10.3
same as above
integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
>sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 10.3, Release Date: 2024-03-19 │
│ Using Python 3.11.1. Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
sage: var('x a b c d')
(x, a, b, c, d)
sage:
integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
algorithm="fricas")
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[2], line 1
----> 1
integrate((x**Integer(2)-Integer(1))/(x**Integer(2)+Integer(1))/(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2))/(Integer(1)+(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2)),x,
algorithm="fricas")
File ~/TMP/sage-10.3/src/sage/misc/functional.py:788, in integral(x, *args,
**kwds)
655 """
656 Return an indefinite or definite integral of an object ``x``.
657
(...)
785
786 """
787 if hasattr(x, 'integral'):
--> 788 return x.integral(*args, **kwds)
789 else:
790 from sage.symbolic.ring import SR
File ~/TMP/sage-10.3/src/sage/symbolic/expression.pyx:13268, in
sage.symbolic.expression.Expression.integral()
13266 R = SR
13267 return R(integral(f, v, a, b, **kwds))
> 13268 return integral(self, *args, **kwds)
13269
13270 integrate = integral
File ~/TMP/sage-10.3/src/sage/symbolic/integration/integral.py:1062, in
integrate(expression, v, a, b, algorithm, hold)
1060 if not integrator:
1061 raise ValueError("Unknown algorithm: %s" % algorithm)
-> 1062 return integrator(expression, v, a, b)
1063 if a is None:
1064 return indefinite_integral(expression, v, hold=hold)
File ~/TMP/sage-10.3/src/sage/symbolic/integration/external.py:207, in
fricas_integrator(expression, v, a, b, noPole)
204 else:
205 result = e_fricas.integrate(seg)
--> 207 result = result.sage()
209 if result == "failed":
210 result = expression.integrate(v, a, b, hold=True)
File ~/TMP/sage-10.3/src/sage/interfaces/interface.py:1123, in
InterfaceElement.sage(self, *args, **kwds)
1104 def sage(self, *args, **kwds):
1105 """
1106 Attempt to return a Sage version of this object.
1107
(...)
1121 [0 0]
1122 """
-> 1123 return self._sage_(*args, **kwds)
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:2067, in
FriCASElement._sage_(self)
2062 return FriCASElement._sage_expression(P.get_InputForm(self._name))
2064 if head == "Expression" or head == "Pi":
2065 # we treat Expression Integer and Expression Complex
2066 # Integer just the same
-> 2067 return FriCASElement._sage_expression(P.get_InputForm(self._name))
2069 raise NotImplementedError("the translation of the FriCAS object %s to
sage is not yet implemented" % (unparsed_InputForm()))
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:817, in
FriCAS.get_InputForm(self, var)
807 def get_InputForm(self, var):
808 """
809 Return the ``InputForm`` as a string.
810
(...)
815
816 """
--> 817 return self.get_string('sageprint((%s)::InputForm)' % str(var))
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:755, in
FriCAS.get_string(self, var)
710 """
711 Return the value of a FriCAS string as a string, without checking
712 that it is a string.
(...)
750
751 """
752 # strip removes leading and trailing whitespace, after that
753 # we can assume that the first and the last character are
754 # double quotes
--> 755 return self.get(str(var)).replace("\n", "").strip()[1:-1]
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:707, in FriCAS.get(self,
var)
704 else:
705 return "\n".join(line[FRICAS_MULTI_LINE_START:] for line in lines)
--> 707 self._check_errors(var, output)
File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:566, in
FriCAS._check_errors(self, line, output)
564 for old, new in replacements:
565 output = output.replace(old, new)
--> 566 raise RuntimeError("An error occurred when FriCAS evaluated
'%s':\n%s" % (line, output))
568 # or even an error
569 if FRICAS_ERROR_IN_LIBRARY_CODE in output:
RuntimeError: An error occurred when FriCAS evaluated
'sageprint((sage2)::InputForm)':
Compiling function sageprint with type InputForm -> String
Heap exhausted during allocation: 129597440 bytes available, 132910384
requested.
Immobile Object Counts
Gen layout fdefn symbol code Boxed Cons Raw Code SmMix Mixed LgRaw LgCode
LgMix Waste% Alloc Trig Dirty GCs Mem-age
0 0 0 0 0 0 4 19 0 0 3 3693 0 8114 0.2 387137408 153529214 - 1 0.0000
1 0 0 0 0 0 8 37 0 0 9 1629 0 0 1.0 54596416 32212254 1667 0 0.0000
2 0 0 0 0 0 7 1 0 0 3 9637 0 0 0.1 315796080 348008334 9639 1 0.0000
3 0 4468 0 4682 53 1706 110 1 14 12 44293 0 12 0.1 1512494112 695462510
44404 1 0.4385
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 2000000 0 0 0.0000
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 2000000 0 0 0.0000
6 780 25772 24483 26727 277 163 69 5 38 18 0 0 21 3.2 18752384 2000000 11 0
0.0000
Tot 780 30240 24483 31409 330 1888 236 6 52 45 59252 0 8147 0.2 2288776400
[71.1% of 3221225472 max]
GC control variables:
*GC-INHIBIT* = false
*GC-PENDING* = true
*STOP-FOR-GC-PENDING* = false
Collection trigger variables:
dynamic_space_size = 3221225472
bytes_allocated = 2288776400
auto_gc_trigger = 2184017225
bytes_consed_between_gcs = 161061273
>> System error:
Heap exhausted (no more space for allocation).
129597440 bytes available, 132910384 requested.
PROCEED WITH CAUTION.
I have not tried all the rest. They all look like same problem.
To compare, this is database of 1.3.10 testing
================================================
#total number of integrals
sqlite> select count(*) from main;
106812
#total failed number of integrals
sqlite> select count(*) from main where fricas_pass=0 or fricas_pass=-1 or
fricas_pass=-2;
24339
#total normal failed
sqlite> select count(*) from main where fricas_pass=0;
17523
#number failed due to timeout
sqlite> select count(*) from main where fricas_pass=-1;
4478
#number failed due to exception
sqlite> select count(*) from main where fricas_pass=-2;
2338
#number passed
sqlite> select count(*) from main where fricas_pass=1;
82473
On Wednesday, July 3, 2024 at 5:57:45 AM UTC-5 Nasser M. Abbasi wrote:
> FYI,
> Just finished running the independent CAS integration tests using 1.3.11.
> This has 106812 integrals in total.
>
> I've put plain text file of the initial notes here
> <https://12000.org/my_notes/CAS_integration_tests/reports/summer_2024/DATA_BASE/fricas_1_3_11.txt>
>
> in case this below gets reformatted.
>
> Here are the content of the above also. Basically Fricas 1.3.11 passed
> 82,445 and 1.3.10 had passed 82,473. But looking more, I found 18 new
> exceptions which did not happen before.
>
> These all seem to be same, but I only had time to try two of them. Running
> the integrals in Fricas 1.3.11 they work. But in sagemath it gives
>
> Heap exhausted during allocation: 4128768 bytes available, 8305312
> requested.
>
> Not sure why now this happens, as I am using same sage 10.3 on same PC I
> used in testing Fricas 1.3.10. And why they work inside 1.3.11 but not in
> sagemath now.
>
> It could be Fricas 1.3.11 runs with more RAM now than 1.3.10.
>
> I will also post this to sagemath group and see what they say.
>
> ---------------------------------------
> NOTES----------------------------------------
>
> Notes on Fricas 1.3.11 integration testing
> <https://12000.org/my_notes/CAS_integration_tests/reports/summer_2024/index.htm>
> =========================================== >which fricas
> /usr/local/bin/fricas >fricas --version FriCAS 1.3.11 based on sbcl 2.4.5
> >which sage /home/me/TMP/sage-10.3/sage >sage --version SageMath version
> 10.3, Release Date: 2024-03-19 >uname -a Linux me-virtualbox
> 6.6.32-1-MANJARO #1 SMP PREEMPT_DYNAMIC Mon May 27 03:41:25 UTC 2024 x86_64
> GNU/Linux lsb_release -a LSB Version: n/a Distributor ID: ManjaroLinux
> Description: Manjaro Linux Release: 24.0.2 Codename: Wynsdey grep MemTotal
> /proc/meminfo MemTotal: 50189304 kB Note 1: File 355 has 18 failed
> integrals due to "There are no library operations named exp_integral_e "
> Data 1.3.11 information about Fricase -------------------------------------
> >sqlite3 cas_integration_tests.db #total number of integrals sqlite> select
> count(*) from main; 106812 #number all failed by Fricas 1.3.11 sqlite>
> select count(*) from main where fricas_pass=0 or fricas_pass=-1 or
> fricas_pass=-2; 24367 #number normal failed by Fricas 1.3.11 sqlite> select
> count(*) from main where fricas_pass=0; 17516 #number timedout failed by
> Fricas 1.3.11 sqlite> select count(*) from main where fricas_pass=-1; 4498
> #number exceptions failed by Fricas 1.3.11 sqlite> select count(*) from
> main where fricas_pass=-2; 2353 #number passed by Fricas 1.3.11 sqlite>
> select count(*) from main where fricas_pass=1; 82445 Regression: This is
> list of problem numbers which generated Exception in 1.3.11 not in 1.3.10
> (these are -2 code).
> ============================================================ 105424 105425
> 105431 105432 105508 105509 105725 105726 105803 105804 105976 105977
> 106138 106139 Here are the above integral commands to try sqlite> select
> command_in_fricas from main where rowid=105424;
> integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
> sqlite> select command_in_fricas from main where rowid=105425;
> integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
> sqlite> select command_in_fricas from main where rowid=105431;
> integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(1+x)^(1/2)/(x^4+1),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105432;
> integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(1+x)^(1/2)/(x^4+1),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105508;
> integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105509;
> integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105725;
> integrate((1+x)^(1/2)*(x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105726;
> integrate((1+x)^(1/2)*(x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105803;
> integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105804;
> integrate((x^2-1)/(1+x)^(1/2)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105976;
> integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=105977;
> integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=106138; integrate((x^2-1)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
> algorithm="fricas") sqlite> select command_in_fricas from main where
> rowid=106139; integrate((x^2-1)/(x^2+1)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
> algorithm="fricas") sqlite> Now let me try few of the above and see what is
> going on
> -------------------------------------------------------------------- This
> one works OK in Fricas 1.3.11 but gives exception in sagemath 10.3
> integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x, algorithm="fricas")
> >sage │ SageMath version 10.3, Release Date: 2024-03-19 │ │ Using
> Python 3.11.1. Type "help()" for help. │ sage: var('x a b c d') (x, a, b,
> c, d) sage: integrate((x^4-1)*(1+(1+x)^(1/2))^(1/2)/(x^4+1),x,
> algorithm="fricas")
> ---------------------------------------------------------------------------
> RuntimeError Traceback (most recent call last) Cell In[2], line 1 ----> 1
> integrate((x**Integer(4)-Integer(1))*(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2))/(x**Integer(4)+Integer(1)),x,
>
> algorithm="fricas") File ~/TMP/sage-10.3/src/sage/misc/functional.py:788,
> in integral(x, *args, **kwds) 655 """ 656 Return an indefinite or definite
> integral of an object ``x``. 657 (...) 785 786 """ 787 if hasattr(x,
> 'integral'): --> 788 return x.integral(*args, **kwds) 789 else: 790 from
> sage.symbolic.ring import SR File
> ~/TMP/sage-10.3/src/sage/symbolic/expression.pyx:13268, in
> sage.symbolic.expression.Expression.integral() 13266 R = SR 13267 return
> R(integral(f, v, a, b, **kwds)) > 13268 return integral(self, *args,
> **kwds) 13269 13270 integrate = integral File
> ~/TMP/sage-10.3/src/sage/symbolic/integration/integral.py:1062, in
> integrate(expression, v, a, b, algorithm, hold) 1060 if not integrator:
> 1061 raise ValueError("Unknown algorithm: %s" % algorithm) -> 1062 return
> integrator(expression, v, a, b) 1063 if a is None: 1064 return
> indefinite_integral(expression, v, hold=hold) File
> ~/TMP/sage-10.3/src/sage/symbolic/integration/external.py:207, in
> fricas_integrator(expression, v, a, b, noPole) 204 else: 205 result =
> e_fricas.integrate(seg) --> 207 result = result.sage() 209 if result ==
> "failed": 210 result = expression.integrate(v, a, b, hold=True) File
> ~/TMP/sage-10.3/src/sage/interfaces/interface.py:1123, in
> InterfaceElement.sage(self, *args, **kwds) 1104 def sage(self, *args,
> **kwds): 1105 """ 1106 Attempt to return a Sage version of this object.
> 1107 (...) 1121 [0 0] 1122 """ -> 1123 return self._sage_(*args, **kwds)
> File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:2067, in
> FriCASElement._sage_(self) 2062 return
> FriCASElement._sage_expression(P.get_InputForm(self._name)) 2064 if head ==
> "Expression" or head == "Pi": 2065 # we treat Expression Integer and
> Expression Complex 2066 # Integer just the same -> 2067 return
> FriCASElement._sage_expression(P.get_InputForm(self._name)) 2069 raise
> NotImplementedError("the translation of the FriCAS object %s to sage is not
> yet implemented" % (unparsed_InputForm())) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:817, in
> FriCAS.get_InputForm(self, var) 807 def get_InputForm(self, var): 808 """
> 809 Return the ``InputForm`` as a string. 810 (...) 815 816 """ --> 817
> return self.get_string('sageprint((%s)::InputForm)' % str(var)) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:755, in
> FriCAS.get_string(self, var) 710 """ 711 Return the value of a FriCAS
> string as a string, without checking 712 that it is a string. (...) 750 751
> """ 752 # strip removes leading and trailing whitespace, after that 753 #
> we can assume that the first and the last character are 754 # double quotes
> --> 755 return self.get(str(var)).replace("\n", "").strip()[1:-1] File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:707, in FriCAS.get(self, var)
> 704 else: 705 return "\n".join(line[FRICAS_MULTI_LINE_START:] for line in
> lines) --> 707 self._check_errors(var, output) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:566, in
> FriCAS._check_errors(self, line, output) 564 for old, new in replacements:
> 565 output = output.replace(old, new) --> 566 raise RuntimeError("An error
> occurred when FriCAS evaluated '%s':\n%s" % (line, output)) 568 # or even
> an error 569 if FRICAS_ERROR_IN_LIBRARY_CODE in output: RuntimeError: An
> error occurred when FriCAS evaluated 'sageprint((sage2)::InputForm)':
> Compiling function sageprint with type InputForm -> String Heap exhausted
> during allocation: 4128768 bytes available, 8305312 requested. Immobile
> Object Counts Gen layout fdefn symbol code Boxed Cons Raw Code SmMix Mixed
> LgRaw LgCode LgMix Waste% Alloc Trig Dirty GCs Mem-age 0 0 0 0 0 0 1065 40
> 0 0 1974 694 0 1573 4.8 166688416 56166286 - 1 0.0000 1 0 0 0 0 0 26 56 0 0
> 25 6061 0 0 0.9 200203744 32212254 6118 0 0.6334 2 0 0 0 0 0 22 61 0 0 26
> 29327 0 0 0.2 962463824 382674606 29389 1 0.3641 3 0 4468 0 4682 53 1475
> 140 1 14 53 54172 0 12 0.2 1829379008 2000000 54313 0 0.7255 4 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0.0 0 2000000 0 0 0.0000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0
> 2000000 0 0 0.0000 6 780 25772 24483 26727 277 163 69 5 38 18 0 0 21 3.2
> 18752384 2000000 11 0 0.0000 Tot 780 30240 24483 31409 330 2751 366 6 52
> 2096 90254 0 1606 0.5 3177487376 [98.6% of 3221225472 max] GC control
> variables: *GC-INHIBIT* = false *GC-PENDING* = false *STOP-FOR-GC-PENDING*
> = false Collection trigger variables: dynamic_space_size = 3221225472
> bytes_allocated = 3177487376 auto_gc_trigger = 3195814265
> bytes_consed_between_gcs = 161061273 >> System error: Heap exhausted (no
> more space for allocation). 4128768 bytes available, 8305312 requested.
> PROCEED WITH CAUTION.
> ------------------------------------------------------ This one also works
> OK in Fricas 1.3.11 but gives exception in sagemath 10.3 same as above
> integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas") >sage SageMath version 10.3, Release Date: 2024-03-19
> │ Using Python 3.11.1. Type "help()" for help. │ sage: var('x a b c d')
> (x, a, b, c, d) sage:
> integrate((x^2-1)/(x^2+1)/(1+(1+x)^(1/2))^(1/2)/(1+(1+(1+x)^(1/2))^(1/2))^(1/2),x,
>
> algorithm="fricas")
> ---------------------------------------------------------------------------
> RuntimeError Traceback (most recent call last) Cell In[2], line 1 ----> 1
> integrate((x**Integer(2)-Integer(1))/(x**Integer(2)+Integer(1))/(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2))/(Integer(1)+(Integer(1)+(Integer(1)+x)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2)),x,
>
> algorithm="fricas") File ~/TMP/sage-10.3/src/sage/misc/functional.py:788,
> in integral(x, *args, **kwds) 655 """ 656 Return an indefinite or definite
> integral of an object ``x``. 657 (...) 785 786 """ 787 if hasattr(x,
> 'integral'): --> 788 return x.integral(*args, **kwds) 789 else: 790 from
> sage.symbolic.ring import SR File
> ~/TMP/sage-10.3/src/sage/symbolic/expression.pyx:13268, in
> sage.symbolic.expression.Expression.integral() 13266 R = SR 13267 return
> R(integral(f, v, a, b, **kwds)) > 13268 return integral(self, *args,
> **kwds) 13269 13270 integrate = integral File
> ~/TMP/sage-10.3/src/sage/symbolic/integration/integral.py:1062, in
> integrate(expression, v, a, b, algorithm, hold) 1060 if not integrator:
> 1061 raise ValueError("Unknown algorithm: %s" % algorithm) -> 1062 return
> integrator(expression, v, a, b) 1063 if a is None: 1064 return
> indefinite_integral(expression, v, hold=hold) File
> ~/TMP/sage-10.3/src/sage/symbolic/integration/external.py:207, in
> fricas_integrator(expression, v, a, b, noPole) 204 else: 205 result =
> e_fricas.integrate(seg) --> 207 result = result.sage() 209 if result ==
> "failed": 210 result = expression.integrate(v, a, b, hold=True) File
> ~/TMP/sage-10.3/src/sage/interfaces/interface.py:1123, in
> InterfaceElement.sage(self, *args, **kwds) 1104 def sage(self, *args,
> **kwds): 1105 """ 1106 Attempt to return a Sage version of this object.
> 1107 (...) 1121 [0 0] 1122 """ -> 1123 return self._sage_(*args, **kwds)
> File ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:2067, in
> FriCASElement._sage_(self) 2062 return
> FriCASElement._sage_expression(P.get_InputForm(self._name)) 2064 if head ==
> "Expression" or head == "Pi": 2065 # we treat Expression Integer and
> Expression Complex 2066 # Integer just the same -> 2067 return
> FriCASElement._sage_expression(P.get_InputForm(self._name)) 2069 raise
> NotImplementedError("the translation of the FriCAS object %s to sage is not
> yet implemented" % (unparsed_InputForm())) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:817, in
> FriCAS.get_InputForm(self, var) 807 def get_InputForm(self, var): 808 """
> 809 Return the ``InputForm`` as a string. 810 (...) 815 816 """ --> 817
> return self.get_string('sageprint((%s)::InputForm)' % str(var)) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:755, in
> FriCAS.get_string(self, var) 710 """ 711 Return the value of a FriCAS
> string as a string, without checking 712 that it is a string. (...) 750 751
> """ 752 # strip removes leading and trailing whitespace, after that 753 #
> we can assume that the first and the last character are 754 # double quotes
> --> 755 return self.get(str(var)).replace("\n", "").strip()[1:-1] File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:707, in FriCAS.get(self, var)
> 704 else: 705 return "\n".join(line[FRICAS_MULTI_LINE_START:] for line in
> lines) --> 707 self._check_errors(var, output) File
> ~/TMP/sage-10.3/src/sage/interfaces/fricas.py:566, in
> FriCAS._check_errors(self, line, output) 564 for old, new in replacements:
> 565 output = output.replace(old, new) --> 566 raise RuntimeError("An error
> occurred when FriCAS evaluated '%s':\n%s" % (line, output)) 568 # or even
> an error 569 if FRICAS_ERROR_IN_LIBRARY_CODE in output: RuntimeError: An
> error occurred when FriCAS evaluated 'sageprint((sage2)::InputForm)':
> Compiling function sageprint with type InputForm -> String Heap exhausted
> during allocation: 129597440 bytes available, 132910384 requested. Immobile
> Object Counts Gen layout fdefn symbol code Boxed Cons Raw Code SmMix Mixed
> LgRaw LgCode LgMix Waste% Alloc Trig Dirty GCs Mem-age 0 0 0 0 0 0 4 19 0 0
> 3 3693 0 8114 0.2 387137408 153529214 - 1 0.0000 1 0 0 0 0 0 8 37 0 0 9
> 1629 0 0 1.0 54596416 32212254 1667 0 0.0000 2 0 0 0 0 0 7 1 0 0 3 9637 0 0
> 0.1 315796080 348008334 9639 1 0.0000 3 0 4468 0 4682 53 1706 110 1 14 12
> 44293 0 12 0.1 1512494112 695462510 44404 1 0.4385 4 0 0 0 0 0 0 0 0 0 0 0
> 0 0 0.0 0 2000000 0 0 0.0000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 2000000 0 0
> 0.0000 6 780 25772 24483 26727 277 163 69 5 38 18 0 0 21 3.2 18752384
> 2000000 11 0 0.0000 Tot 780 30240 24483 31409 330 1888 236 6 52 45 59252 0
> 8147 0.2 2288776400 [71.1% of 3221225472 max] GC control variables:
> *GC-INHIBIT* = false *GC-PENDING* = true *STOP-FOR-GC-PENDING* = false
> Collection trigger variables: dynamic_space_size = 3221225472
> bytes_allocated = 2288776400 auto_gc_trigger = 2184017225
> bytes_consed_between_gcs = 161061273 >> System error: Heap exhausted (no
> more space for allocation). 129597440 bytes available, 132910384 requested.
> PROCEED WITH CAUTION. I have not tried all the rest. They all look like
> same problem. To compare, this is database of 1.3.10 testing
> ================================================ #total number of integrals
> sqlite> select count(*) from main; 106812 #total failed number of integrals
> sqlite> select count(*) from main where fricas_pass=0 or fricas_pass=-1 or
> fricas_pass=-2; 24339 #total normal failed sqlite> select count(*) from
> main where fricas_pass=0; 17523 #number failed due to timeout sqlite>
> select count(*) from main where fricas_pass=-1; 4478 #number failed due to
> exception sqlite> select count(*) from main where fricas_pass=-2; 2338
> #number passed sqlite> select count(*) from main where fricas_pass=1; 82473
>
>
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/ba49aec5-f057-4aff-aa1e-79926bce67f8n%40googlegroups.com.