Thread overview
powl bug
Apr 21, 2003
Steve Hall
Apr 22, 2003
Larry Brasfield
Apr 22, 2003
Steve Hall
April 21, 2003
The following code produce wrong result:

#include <math.h>
#include <stdio.h>

int main()
{
 long double a = powl(-0.0397739, 310.954);
 long double b = -5.12198e11;

 printf("(%Lg)^(%Lg) = %Lg", a, b, powl(a, b));
 return 0;
}

The used compiler is Digital Mars Compiler v8.29n.


April 22, 2003
In article <b81iu3$2smm$1@digitaldaemon.com>, Steve Hall (sthall@lorrexinc.com) says...
> The following code produce wrong result:
> 
> #include <math.h>
> #include <stdio.h>
> 
> int main()
> {
>  long double a = powl(-0.0397739, 310.954);
>  long double b = -5.12198e11;
> 
>  printf("(%Lg)^(%Lg) = %Lg", a, b, powl(a, b));
>  return 0;
> }

What do believe is the "right" result?
According to the math I learned, there is
no meaningful way to raise negative numbers
to fractional powers.

-- 
-Larry Brasfield
(address munged, s/sn/h/ to reply)
April 22, 2003
I agree with you, but according to C99, the math and lcc-win32 v3.8 the
result of the following code should be: (nan)^(3.5) = nan.

#include <math.h>
#include <stdio.h>

int main()
{
 long double a = powl(-1, 0.5);
 long double b = 3.5;

 printf("(%Lg)^(%Lg) = %Lg", a, b, powl(a, b));
 return 0;
}

The result from dmc v8.29n is: (nan)^(3.5) = 3.36128e-4932.
The software that I develop depend on precision C99 floating-point
arithmetic.

"Larry Brasfield" <larry_brasfield@snotmail.com> wrote in message news:MPG.190ea07eab0c3d7e9896a4@news.digitalmars.com...
> In article <b81iu3$2smm$1@digitaldaemon.com>,
> Steve Hall (sthall@lorrexinc.com) says...
> > The following code produce wrong result:
> >
> > #include <math.h>
> > #include <stdio.h>
> >
> > int main()
> > {
> >  long double a = powl(-0.0397739, 310.954);
> >  long double b = -5.12198e11;
> >
> >  printf("(%Lg)^(%Lg) = %Lg", a, b, powl(a, b));
> >  return 0;
> > }
>
> What do believe is the "right" result?
> According to the math I learned, there is
> no meaningful way to raise negative numbers
> to fractional powers.
>
> --
> -Larry Brasfield
> (address munged, s/sn/h/ to reply)