w_asinf.c revision 1.6
1272343Sngie/* w_asinf.c -- float version of w_asin.c. 2272343Sngie * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3272343Sngie */ 4272343Sngie 5272343Sngie/* 6272343Sngie * ==================================================== 7272343Sngie * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 8272343Sngie * 9272343Sngie * Developed at SunPro, a Sun Microsystems, Inc. business. 10272343Sngie * Permission to use, copy, modify, and distribute this 11272343Sngie * software is freely granted, provided that this notice 12272343Sngie * is preserved. 13272343Sngie * ==================================================== 14272343Sngie */ 15272343Sngie 16272343Sngie#include <sys/cdefs.h> 17272343Sngie#if defined(LIBM_SCCS) && !defined(lint) 18272343Sngie__RCSID("$NetBSD: w_asinf.c,v 1.6 2002/05/26 22:01:59 wiz Exp $"); 19272343Sngie#endif 20272343Sngie 21272343Sngie/* 22272343Sngie * wrapper asinf(x) 23272343Sngie */ 24272343Sngie 25272343Sngie 26272343Sngie#include "math.h" 27272343Sngie#include "math_private.h" 28272343Sngie 29272343Sngie 30272343Sngiefloat 31272343Sngieasinf(float x) /* wrapper asinf */ 32272343Sngie{ 33272343Sngie#ifdef _IEEE_LIBM 34272343Sngie return __ieee754_asinf(x); 35272343Sngie#else 36272343Sngie float z; 37272343Sngie z = __ieee754_asinf(x); 38272343Sngie if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; 39272343Sngie if(fabsf(x)>(float)1.0) { 40272343Sngie /* asinf(|x|>1) */ 41272343Sngie return (float)__kernel_standard((double)x,(double)x,102); 42272343Sngie } else 43272343Sngie return z; 44272343Sngie#endif 45272343Sngie} 46