1 | initial version |
The symbolic product exists somewhere already (probably in Maxima?), so with some trickery you can get something that looks like it:
sage: function("f")
f
sage: var("n")
n
sage: function("f")
f
sage: P=exp(sum(log(f(x)),x,1,n-1)); P
product(f(x), x, 1, n - 1)
At this point, P.operator
is just a formal object: sage itself doesn't know anything about it:
sage: product=P.operator()
sage: product(x,x,1,n).simplify_full()
product(x, x, 1, n)
whereas
sage: exp(sum(log(x),x,1,n))
factorial(n)