1/* e_j1f.c -- float version of e_j1.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 <sys/cdefs.h>
17__FBSDID("$FreeBSD: head/lib/msun/src/e_j1f.c 279491 2015-03-01 20:26:03Z kargl $");
18
19#include "math.h"
20#include "math_private.h"
21
22static float ponef(float), qonef(float);
23
24static const float
25huge = 1e30,
--- 188 unchanged lines hidden (view full) ---
214static const float ps2[5] = {
215 2.1436485291e+01, /* 0x41ab7dec */
216 1.2529022980e+02, /* 0x42fa9499 */
217 2.3227647400e+02, /* 0x436846c7 */
218 1.1767937469e+02, /* 0x42eb5bd7 */
219 8.3646392822e+00, /* 0x4105d590 */
220};
221
222 static float ponef(float x)
223{
224 const float *p,*q;
225 float z,r,s;
226 int32_t ix;
227 GET_FLOAT_WORD(ix,x);
228 ix &= 0x7fffffff;
229 if(ix>=0x41000000) {p = pr8; q= ps8;}
230 else if(ix>=0x409173eb){p = pr5; q= ps5;}
--- 79 unchanged lines hidden (view full) ---
310 2.9533363342e+01, /* 0x41ec4454 */
311 2.5298155212e+02, /* 0x437cfb47 */
312 7.5750280762e+02, /* 0x443d602e */
313 7.3939318848e+02, /* 0x4438d92a */
314 1.5594900513e+02, /* 0x431bf2f2 */
315 -4.9594988823e+00, /* 0xc09eb437 */
316};
317
318 static float qonef(float x)
319{
320 const float *p,*q;
321 float s,r,z;
322 int32_t ix;
323 GET_FLOAT_WORD(ix,x);
324 ix &= 0x7fffffff;
325 if(ix>=0x41000000) {p = qr8; q= qs8;}
326 else if(ix>=0x409173eb){p = qr5; q= qs5;}
327 else if(ix>=0x4036d917){p = qr3; q= qs3;}
328 else {p = qr2; q= qs2;} /* ix>=0x40000000 */
329 z = one/(x*x);
330 r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
331 s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
332 return ((float).375 + r/s)/x;
333}
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 <sys/cdefs.h>
17__FBSDID("$FreeBSD: head/lib/msun/src/e_j1f.c 279491 2015-03-01 20:26:03Z kargl $");
18
19#include "math.h"
20#include "math_private.h"
21
22static float ponef(float), qonef(float);
23
24static const float
25huge = 1e30,
--- 188 unchanged lines hidden (view full) ---
214static const float ps2[5] = {
215 2.1436485291e+01, /* 0x41ab7dec */
216 1.2529022980e+02, /* 0x42fa9499 */
217 2.3227647400e+02, /* 0x436846c7 */
218 1.1767937469e+02, /* 0x42eb5bd7 */
219 8.3646392822e+00, /* 0x4105d590 */
220};
221
222 static float ponef(float x)
223{
224 const float *p,*q;
225 float z,r,s;
226 int32_t ix;
227 GET_FLOAT_WORD(ix,x);
228 ix &= 0x7fffffff;
229 if(ix>=0x41000000) {p = pr8; q= ps8;}
230 else if(ix>=0x409173eb){p = pr5; q= ps5;}
--- 79 unchanged lines hidden (view full) ---
310 2.9533363342e+01, /* 0x41ec4454 */
311 2.5298155212e+02, /* 0x437cfb47 */
312 7.5750280762e+02, /* 0x443d602e */
313 7.3939318848e+02, /* 0x4438d92a */
314 1.5594900513e+02, /* 0x431bf2f2 */
315 -4.9594988823e+00, /* 0xc09eb437 */
316};
317
318 static float qonef(float x)
319{
320 const float *p,*q;
321 float s,r,z;
322 int32_t ix;
323 GET_FLOAT_WORD(ix,x);
324 ix &= 0x7fffffff;
325 if(ix>=0x41000000) {p = qr8; q= qs8;}
326 else if(ix>=0x409173eb){p = qr5; q= qs5;}
327 else if(ix>=0x4036d917){p = qr3; q= qs3;}
328 else {p = qr2; q= qs2;} /* ix>=0x40000000 */
329 z = one/(x*x);
330 r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
331 s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
332 return ((float).375 + r/s)/x;
333}