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.3 2004/12/29 15:22:57 asmodai 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 powf(float x, float y) /* wrapper powf */
31 return __ieee754_powf(x,y);
34 z=__ieee754_powf(x,y);
35 if(_LIB_VERSION == _IEEE_|| isnanf(y)) return z;
39 return (float)__kernel_standard((double)x,(double)y,142);
46 return (float)__kernel_standard((double)x,(double)y,120);
47 if(finitef(y)&&y<(float)0.0)
48 /* powf(0.0,negative) */
49 return (float)__kernel_standard((double)x,(double)y,123);
53 if(finitef(x)&&finitef(y)) {
55 /* powf neg**non-int */
56 return (float)__kernel_standard((double)x,(double)y,124);
59 return (float)__kernel_standard((double)x,(double)y,121);
62 if(z==(float)0.0&&finitef(x)&&finitef(y))
64 return (float)__kernel_standard((double)x,(double)y,122);