[GiNaC-devel] evalf() on cube roots

Jan Rheinländer jrheinlaender at gmx.de
Sun Aug 2 20:59:13 CEST 2015


Hi,
>> I noticed that
>>
>> evalf( (-1)^(1/3) )
>>
>> gives
>>
>> 0.5+0.86602540378443864673*I
>>
>> Is there any way to tell GiNaC to return the real root by default?
> There isn't. GiNaC, like almost all other systems, returns the solution
> on the principal branch, compatible with exp(log(-1)/3).
I suppose there is some excellent mathematical reason for this...but for
me it means that I can't use GiNaC to verify Cardano's formula for a
cubic function:

> x = (-1 - sqrt(2))^(1/3) + (-1 + sqrt(2))^(1/3);
(-1-sqrt(2))^(1/3)+(-1+sqrt(2))^(1/3)

> evalf(x^3 + 3 * x + 2);
3.3544445609126528848+8.9073474964875349776*I

Surely there must be a way to verify such a formula in GiNaC???

Jan



More information about the GiNaC-devel mailing list