Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
  2. /* w_j1f.c -- float version of w_j1.c.
  3.  * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
  4.  */
  5.  
  6. /*
  7.  * ====================================================
  8.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  9.  *
  10.  * Developed at SunPro, a Sun Microsystems, Inc. business.
  11.  * Permission to use, copy, modify, and distribute this
  12.  * software is freely granted, provided that this notice
  13.  * is preserved.
  14.  * ====================================================
  15.  */
  16.  
  17. #if defined(LIBM_SCCS) && !defined(lint)
  18. static char rcsid[] = "$Id: w_j1f.c,v 1.1 1994/08/10 20:34:39 jtc Exp $";
  19. #endif
  20.  
  21. /*
  22.  * wrapper of j1f,y1f
  23.  */
  24.  
  25. #include "math.h"
  26. #include "math_private.h"
  27.  
  28. #ifdef __STDC__
  29.         float j1f(float x)              /* wrapper j1f */
  30. #else
  31.         float j1f(x)                    /* wrapper j1f */
  32.         float x;
  33. #endif
  34. {
  35. #ifdef _IEEE_LIBM
  36.         return __ieee754_j1f(x);
  37. #else
  38.         float z;
  39.         z = __ieee754_j1f(x);
  40.         if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z;
  41.         if(fabsf(x)>(float)X_TLOSS) {
  42.                 /* j1(|x|>X_TLOSS) */
  43.                 return (float)__kernel_standard((double)x,(double)x,136);
  44.         } else
  45.             return z;
  46. #endif
  47. }
  48.  
  49. #ifdef __STDC__
  50.         float y1f(float x)              /* wrapper y1f */
  51. #else
  52.         float y1f(x)                    /* wrapper y1f */
  53.         float x;
  54. #endif
  55. {
  56. #ifdef _IEEE_LIBM
  57.         return __ieee754_y1f(x);
  58. #else
  59.         float z;
  60.         z = __ieee754_y1f(x);
  61.         if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z;
  62.         if(x <= (float)0.0){
  63.                 if(x==(float)0.0)
  64.                     /* d= -one/(x-x); */
  65.                     return (float)__kernel_standard((double)x,(double)x,110);
  66.                 else
  67.                     /* d = zero/(x-x); */
  68.                     return (float)__kernel_standard((double)x,(double)x,111);
  69.         }
  70.         if(x>(float)X_TLOSS) {
  71.                 /* y1(x>X_TLOSS) */
  72.                 return (float)__kernel_standard((double)x,(double)x,137);
  73.         } else
  74.             return z;
  75. #endif
  76. }
  77.