[GiNaC-list] real_part and imag_part
Vladimir V. Kisil
kisilv at maths.leeds.ac.uk
Wed Aug 9 10:43:29 CEST 2017
>>>>> On Wed, 9 Aug 2017 10:30:09 +0200, "Richard B. Kreckel" <kreckel at in.terlu.de> said:
RK> sqrt(-1) straightly evaluates to I, which works. But sqrt(-3)
RK> isn't a numeric object. Rather, it is a power(-3,1/2).
On my computer I have:
sqrt(numeric(-3)).dbgprinttree();
pow(numeric(-3),numeric(1,2)).dbgprinttree();
both returning
1.7320508075688772936L0i (numeric) @0xbfcc45f0, hash=0x800d7056, flags=0x6
and
power(numeric(-3),numeric(1,2)).dbgprinttree();
returning
power @0xbfc551dc, hash=0x800cf188, flags=0x0, nops=2
-3 (numeric) @0x81748b38, hash=0x1, flags=0x7
1/2 (numeric) @0x81748bb8, hash=0x1, flags=0x7
RK> Seems to me like the logic in power::real_part() and
RK> power::imag_part() can be improved:
You are right, the power did it wrongly
cout << power(numeric(-3),numeric(1,2)).real_part() << endl;
// -> sqrt(-3)
cout << power(numeric(-3),numeric(1,2)).imag_part() << endl;
// -> 0
I will look into it.
--
Vladimir V. Kisil http://www.maths.leeds.ac.uk/~kisilv/
Book: Geometry of Mobius Transformations http://goo.gl/EaG2Vu
Software: Geometry of cycles http://moebinv.sourceforge.net/
More information about the GiNaC-list
mailing list