Here is the code to reproduce it. Using Fricas 1.3.8 on Linux via sagemath

var('x a')
expr=integrate(x/(a^5+x^5),x, algorithm="fricas");
len(str(expr))
     47199
expr.full_simplify()

TypeError: ECL says: Memory limit reached. Please jump to an outer pointer, 
quit program and enlarge the
memory limits before executing the program again.

--Nasser


On Friday, June 23, 2023 at 2:15:18 AM UTC-5 Nasser M. Abbasi wrote:

> I obtained a large expression from CAS system (Fricas) calling it from 
> sagemath.
>
> When I did expr.full_simplify() sagemath 10.0 on Linux gave this error
>
> TypeError: ECL says: Memory limit reached. Please jump to an outer 
> pointer, quit program and enlarge the
> memory limits before executing the program again.
>
> Is this to be expected for very large expression? 
>
> Here is full error
>
> age: expr.full_simplify()
> ---------------------------------------------------------------------------
> RuntimeError                              Traceback (most recent call last)
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:748, in 
> InterfaceElement.__init__(self, parent, value, is_name, name)
>     747 try:
> --> 748     self._name = parent._create(value, name=name)
>     749 except (TypeError, RuntimeError, ValueError) as x:
>
> File ~/TMP/sage-10.0/src/sage/interfaces/maxima_lib.py:618, in 
> MaximaLib._create(self, value, name)
>     617     else:
> --> 618         self.set(name, value)
>     619 except RuntimeError as error:
>
> File ~/TMP/sage-10.0/src/sage/interfaces/maxima_lib.py:526, in 
> MaximaLib.set(self, var, value)
>     525 cmd = '%s : %s$'%(var, value.rstrip(';'))
> --> 526 self.eval(cmd)
>
> File ~/TMP/sage-10.0/src/sage/interfaces/maxima_lib.py:472, in 
> MaximaLib._eval_line(self, line, locals, reformat, **kwds)
>     471         if statement:
> --> 472             maxima_eval("#$%s$" % statement)
>     473 if not reformat:
>
> File ~/TMP/sage-10.0/src/sage/libs/ecl.pyx:830, in 
> sage.libs.ecl.EclObject.__call__()
>     829 lispargs = EclObject(list(args))
> --> 830 return ecl_wrap(ecl_safe_apply(self.obj,(<EclObject>lispargs).obj))
>     831 
>
> File ~/TMP/sage-10.0/src/sage/libs/ecl.pyx:353, in 
> sage.libs.ecl.ecl_safe_apply()
>     352     else:
> --> 353         raise RuntimeError("ECL says: {}".format(message))
>     354 else:
>
> RuntimeError: ECL says: Memory limit reached. Please jump to an outer 
> pointer, quit program and enlarge the
> memory limits before executing the program again.
>
> During handling of the above exception, another exception occurred:
>
> TypeError                                 Traceback (most recent call last)
> Cell In [7], line 1
> ----> 1 expr.full_simplify()
>
> File ~/TMP/sage-10.0/src/sage/symbolic/expression.pyx:10749, in 
> sage.symbolic.expression.Expression.simplify_full()
>   10747 x = self
>   10748 x = x.simplify_factorial()
> > 10749 x = x.simplify_rectform()
>   10750 x = x.simplify_trig()
>   10751 x = x.simplify_rational()
>
> File ~/TMP/sage-10.0/src/sage/symbolic/expression.pyx:10899, in 
> sage.symbolic.expression.Expression.simplify_rectform()
>   10897 
>   10898         """
> > 10899         simplified_expr = self.rectform()
>   10900 
>   10901         if complexity_measure is None:
>
> File ~/TMP/sage-10.0/src/sage/symbolic/expression.pyx:10549, in 
> sage.symbolic.expression.Expression.rectform()
>   10547         0.0
>   10548     """
> > 10549     return self.maxima_methods().rectform()
>   10550 
>   10551 def unhold(self, exclude=None):
>
> File ~/TMP/sage-10.0/src/sage/symbolic/maxima_wrapper.py:31, in 
> MaximaFunctionElementWrapper.__call__(self, *args, **kwds)
>      18 def __call__(self, *args, **kwds):
>      19     """
>      20     Return a Sage expression instead of a Maxima pexpect interface 
> element.
>      21 
>    (...)
>      29         Symbolic Ring
>      30     """
> ---> 31     return super().__call__(*args, **kwds).sage()
>
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:696, in 
> InterfaceFunctionElement.__call__(self, *args, **kwds)
>     695 def __call__(self, *args, **kwds):
> --> 696     return self._obj.parent().function_call(self._name, 
> [self._obj] + list(args), kwds)
>
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:616, in 
> Interface.function_call(self, function, args, kwds)
>     612 self._check_valid_function_name(function)
>     613 s = self._function_call_string(function,
>     614                                [s.name() for s in args],
>     615                                ['%s=%s'%(key,value.name()) for 
> key, value in kwds.items()])
> --> 616 return self.new(s)
>
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:385, in 
> Interface.new(self, code)
>     384 def new(self, code):
> --> 385     return self(code)
>
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:298, in 
> Interface.__call__(self, x, name)
>     295         pass
>     297 if isinstance(x, str):
> --> 298     return cls(self, x, name=name)
>     299 try:
>     300     # Special methods do not and should not have an option to
>     301     # set the name directly, as the identifier assigned by the
>     302     # interface should stay consistent. An identifier with a
>     303     # user-assigned name might change its value, so we return a
>     304     # new element.
>     305     result = self._coerce_from_special_method(x)
>
> File ~/TMP/sage-10.0/src/sage/interfaces/interface.py:750, in 
> InterfaceElement.__init__(self, parent, value, is_name, name)
>     748     self._name = parent._create(value, name=name)
>     749 except (TypeError, RuntimeError, ValueError) as x:
> --> 750     raise TypeError(x)
>
> TypeError: ECL says: Memory limit reached. Please jump to an outer 
> pointer, quit program and enlarge the
> memory limits before executing the program again.
> sage:
>
> Since expression is large, I will put a link to full code used if you 
> think it is needed.
>
> I am running this on Linux Virtual box with 43 GB of RAM. 
>
> --Nasser
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/7f96330e-fe0a-4858-8363-911122c1afb1n%40googlegroups.com.

Reply via email to