gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/math/s_logbf.cbare sourcepermlink (0.02 seconds)

Search this content:

    1: /* s_logbf.c -- float version of s_logb.c.
    2:  * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
    3:  */
    4: 
    5: /*
    6:  * ====================================================
    7:  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
    8:  *
    9:  * Developed at SunPro, a Sun Microsystems, Inc. business.
   10:  * Permission to use, copy, modify, and distribute this
   11:  * software is freely granted, provided that this notice 
   12:  * is preserved.
   13:  * ====================================================
   14:  */
   15: 
   16: #include "math.h"
   17: #include "math_private.h"
   18: 
   19: float
   20: logbf(float x)
   21: {
   22:         int32_t ix;
   23:         GET_FLOAT_WORD(ix,x);
   24:         ix &= 0x7fffffff;                      /* high |x| */
   25:         if(ix==0) return (float)-1.0/fabsf(x);
   26:         if(ix>=0x7f800000) return x*x;
   27:         if((ix>>=23)==0)                       /* IEEE 754 logb */
   28:                 return -126.0; 
   29:         else
   30:                 return (float) (ix-127); 
   31: }