Dear Vladimir,
Thanks so much for checking this,
and thanks for the quick update on the git!
Best regards!
Feng
Dear Feng,
Thanks for spotting this typo. Indeed currently the following
lines
symbol x("x");
ex a = pow(x+1/x,2);
cout << a << endl;
exmap mp1, mp2;
ex p = a.to_polynomial(mp1);
cout << " = " << p << "\n with " << mp1 << endl;
p = a.expand().to_polynomial(mp2);
cout << " = " << p << "\n with " << mp2 << endl;
produce the output with not a polynomial in the first instance:
(x^(-1)+x)^2
= (x^(-1)+x)^2
with {}
= 2+symbol3^2+x^2
with {symbol3==x^(-1)}
If to_rational() is replaced by to_polynomial() as you suggested, then
we do have (although slightly different) polynomial outputs in both cases:
(x+x^(-1))^2
= (x+symbol3)^2
with {symbol3==x^(-1)}
= 2+x^2+symbol4^2
with {symbol4==x^(-1)}
I am attaching a one-line patch to fix this and copy the message to
the developer list.
Best wishes,
Vladimir
--
Vladimir V. Kisil http://www.maths.leeds.ac.uk/~kisilv/
Book: Geometry of Mobius Maps https://doi.org/10.1142/p835
Soft: Geometry of cycles http://moebinv.sourceforge.net/
Jupyter notebooks: https://github.com/vvkisil?tab=repositories
>>>>> On Tue, 11 Jan 2022 07:10:40 +0000, Feng Feng <f.feng@outlook.com> said:
FF> Dear Vladimir V. Kisil,
FF> Thanks very much for suggestion to use expand() method on e3
FF> first.
FF> And I have given a look at the source code at
FF> power::to_polynomial
FF> https://www.ginac.de/reference/normal_8cpp_source.html#l02688
FF> ...
FF> and I wonfer if there is a typo on line 2691, the
FF> basis.to_rational can be replaced with basis.to_polynomial?
FF> Best regards! Feng