Hi Rajeev,
On 25 Mai, 06:14, Rajeev Singh <[email protected]> wrote:
> sage: R.<a,b> = FreeAlgebra(QQ, 2)
>
> > sage: p = a*(a+2*b)
> > sage: list(p)
> > [(2, a*b), (1, a^2)]
>
> is there a simple way to reverse this last step?
I thought that for many parents R holds that R(list(p))==p, but
apparently I was mistaken.
However, for example, in the case of polynomials, one has
sage: P.<x,y> = QQ[]
sage: p = P.random_element()
sage: p
x*y + 5*y^2 - x + 1
sage: p.dict()
{(1, 0): -1, (0, 0): 1, (1, 1): 1, (0, 2): 5}
sage: P(p.dict()) == p
True
But apparently that does not hold for free algebras. Here is a work-
around using the 'add' function:
sage: R.<a,b> = FreeAlgebra(QQ, 2)
sage: p = a*(a+2*b)
sage: L = list(p)
sage: add([c*R(m) for c,m in L], R(0))
a^2 + 2*a*b
Cheers,
Simon
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org