-
-
Notifications
You must be signed in to change notification settings - Fork 641
Closed
Description
The symbolic product is currently broken in Sage :
- It cannot be created in Sage :
sage: var("j,p", domain="integer")
sage: X,Y=function("X,Y")
sage: prod(X(j),j,1,p)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-85e69544cbe9> in <module>()
----> 1 prod(X(j),j,Integer(1),p)
/usr/local/sage-8/src/sage/misc/misc_c.pyx in sage.misc.misc_c.prod (/usr/local/sage-8/src/build/cythonized/sage/misc/misc_c.c:1596)()
69
70
---> 71 def prod(x, z=None, Py_ssize_t recursion_cutoff=5):
72 """
73 Return the product of the elements in the list x.
TypeError: prod() takes at most 3 positional arguments (4 given)
sage: product(X(j),j,1,p)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-4d04d74c7489> in <module>()
----> 1 product(X(j),j,Integer(1),p)
NameError: name 'product' is not defined
- Creatnig it it by casting a Maxima expression via the library interface gives nonsense :
sage: X(j).maxima_methods().prod(j,1,p)
X(j)^p
sage: X(j).maxima_methods().product(j,1,p)
X(j)^p
(Note : similar nonsense also happens with sums :
sage: X(j).maxima_methods().sum(j,1,p)
p*X(j)
)
- But something (what ?) can be created via the Maxima
pexpect
interface :
sage: maxima("prod(X(j),j,1,p)").sage().log().log_expand()
sum(log(X(j)), j, 1, p)
The part of the problem bound to the Maxima library interface is the object of #22920. The present ticket aims at creating a Sage function/method correctly creating a symbolic product object.
CC: @rwst
Component: symbolics
Keywords: symbolics
Issue created by migration from https://trac.sagemath.org/ticket/22914