1 /* w_powf.c -- float version of w_pow.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
4 * $FreeBSD: src/lib/msun/src/w_powf.c,v 1.5 1999/08/28 00:07:07 peter Exp $
5 * $DragonFly: src/lib/msun/src/Attic/w_powf.c,v 1.2 2003/06/17 04:26:53 dillon Exp $
9 * ====================================================
10 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
12 * Developed at SunPro, a Sun Microsystems, Inc. business.
13 * Permission to use, copy, modify, and distribute this
14 * software is freely granted, provided that this notice
16 * ====================================================
20 * wrapper powf(x,y) return x**y
24 #include "math_private.h"
28 float powf(float x, float y) /* wrapper powf */
30 float powf(x,y) /* wrapper powf */
35 return __ieee754_powf(x,y);
38 z=__ieee754_powf(x,y);
39 if(_LIB_VERSION == _IEEE_|| isnanf(y)) return z;
43 return (float)__kernel_standard((double)x,(double)y,142);
50 return (float)__kernel_standard((double)x,(double)y,120);
51 if(finitef(y)&&y<(float)0.0)
52 /* powf(0.0,negative) */
53 return (float)__kernel_standard((double)x,(double)y,123);
57 if(finitef(x)&&finitef(y)) {
59 /* powf neg**non-int */
60 return (float)__kernel_standard((double)x,(double)y,124);
63 return (float)__kernel_standard((double)x,(double)y,121);
66 if(z==(float)0.0&&finitef(x)&&finitef(y))
68 return (float)__kernel_standard((double)x,(double)y,122);