1 2/* @(#)e_atan2.c 1.3 95/01/18 */ 3/* FreeBSD: head/lib/msun/src/e_atan2.c 176451 2008-02-22 02:30:36Z das */ 4/* 5 * ==================================================== 6 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 7 * 8 * Developed at SunSoft, a Sun Microsystems, Inc. business. 9 * Permission to use, copy, modify, and distribute this 10 * software is freely granted, provided that this notice 11 * is preserved. 12 * ==================================================== 13 * 14 */ 15 16#include <sys/cdefs.h>
| 1 2/* @(#)e_atan2.c 1.3 95/01/18 */ 3/* FreeBSD: head/lib/msun/src/e_atan2.c 176451 2008-02-22 02:30:36Z das */ 4/* 5 * ==================================================== 6 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 7 * 8 * Developed at SunSoft, a Sun Microsystems, Inc. business. 9 * Permission to use, copy, modify, and distribute this 10 * software is freely granted, provided that this notice 11 * is preserved. 12 * ==================================================== 13 * 14 */ 15 16#include <sys/cdefs.h>
|
17__FBSDID("$FreeBSD: head/lib/msun/src/e_atan2l.c 181074 2008-07-31 22:41:26Z das $");
| 17__FBSDID("$FreeBSD: head/lib/msun/src/e_atan2l.c 181152 2008-08-02 03:56:22Z das $");
|
18 19/* 20 * See comments in e_atan2.c. 21 * Converted to long double by David Schultz <das@FreeBSD.ORG>. 22 */ 23 24#include <float.h> 25 26#include "invtrig.h" 27#include "math.h" 28#include "math_private.h" 29 30static volatile long double 31tiny = 1.0e-300; 32static const long double
| 18 19/* 20 * See comments in e_atan2.c. 21 * Converted to long double by David Schultz <das@FreeBSD.ORG>. 22 */ 23 24#include <float.h> 25 26#include "invtrig.h" 27#include "math.h" 28#include "math_private.h" 29 30static volatile long double 31tiny = 1.0e-300; 32static const long double
|
33zero = 0.0, 34pi = 3.14159265358979323846264338327950280e+00L;
| 33zero = 0.0;
|
35
| 34
|
| 35#ifdef __i386__ 36/* XXX Work around the fact that gcc truncates long double constants on i386 */ 37static volatile double 38pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1 */ 39pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */ 40#define pi ((long double)pi1 + pi2) 41#else 42static const long double 43pi = 3.14159265358979323846264338327950280e+00L; 44#endif 45
|
36long double 37atan2l(long double y, long double x) 38{ 39 union IEEEl2bits ux, uy; 40 long double z; 41 int32_t k,m; 42 int16_t exptx, expsignx, expty, expsigny; 43
--- 64 unchanged lines hidden --- | 46long double 47atan2l(long double y, long double x) 48{ 49 union IEEEl2bits ux, uy; 50 long double z; 51 int32_t k,m; 52 int16_t exptx, expsignx, expty, expsigny; 53
--- 64 unchanged lines hidden --- |