[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r24742 - in /fsf/trunk/libc: ./ malloc/ sysdeps/ieee754/dbl-64/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r24742 - in /fsf/trunk/libc: ./ malloc/ sysdeps/ieee754/dbl-64/
- From: eglibc@xxxxxxxxxx
- Date: Wed, 11 Dec 2013 08:02:11 -0000
Author: eglibc
Date: Wed Dec 11 00:02:09 2013
New Revision: 24742
Log:
Import glibc-mainline for 2013-12-11
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/malloc/Makefile
fsf/trunk/libc/malloc/arena.c
fsf/trunk/libc/malloc/hooks.c
fsf/trunk/libc/malloc/malloc.c
fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_sin.c
fsf/trunk/libc/sysdeps/ieee754/dbl-64/usncs.h
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed Dec 11 00:02:09 2013
@@ -1,3 +1,54 @@
+2013-12-11 Siddhesh Poyarekar <siddhesh@xxxxxxxxxx>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (t22): Consolidate const
+ definition...
+ (slow1, slow2, sloww1, sloww2, bsloww1, bsloww2, cslow2,
+ csloww1, csloww2): ... from here.
+
+ * sysdeps/ieee754/dbl-64/usncs.h: Define constants as double
+ instead of structures.
+ * sysdeps/ieee754/dbl-64/s_sin.c (POLYNOMIAL2): Adjust.
+ (POLYNOMIAL): Likewise.
+ (TAYLOR_SLOW): Likewise.
+ (__sin): Likewise.
+ (__cos): Likewise.
+ (slow1): Likewise.
+ (slow2): Likewise.
+ (sloww): Likewise.
+ (sloww1); Likewise.
+ (sloww2): Likewise.
+ (bsloww1): Likewise.
+ (bsloww2): Likewise.
+ (cslow2): Likewise.
+ (csloww): Likewise.
+ (csloww1): Likewise.
+ (csloww2): Likewise.
+
+2013-12-10 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
+
+ * malloc/malloc.c (MALLOC_COPY, MALLOC_ZERO): Delete.
+ (__malloc_assert, __libc_realloc, __libc_calloc,
+ _int_realloc): Expand MALLOC_COPY and MALLOC_ZERO to
+ memcpy and memset.
+ * malloc/hooks.c (realloc_check): Likewise.
+
+2013-12-10 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
+
+ * malloc/Makefile (CPPFLAGS-malloc.c): Remove -DPER_THREAD flag.
+ * malloc/arena.c: Remove PER_THREAD conditional.
+ [!PER_THREAD]: Remove code.
+ (ptmalloc_unlock_all2): Likewise.
+ (ptmalloc_init): Likewise.
+ (_int_new_arena): Likewise.
+ (arena_get2): Likewise.
+ * malloc/hooks.c (__malloc_get_state): Likewise.
+ (__malloc_set_state): Likewise.
+ * malloc/malloc.c: Likewise.
+ (struct malloc_state): Likewise.
+ (struct malloc_par): Likewise.
+ (__libc_realloc): Likewise.
+ (__libc_mallopt): Likewise.
+
2013-12-09 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
* Versions.def (libm): Add GLIBC_2.3 and GLIBC_2.19.
Modified: fsf/trunk/libc/malloc/Makefile
==============================================================================
--- fsf/trunk/libc/malloc/Makefile (original)
+++ fsf/trunk/libc/malloc/Makefile Wed Dec 11 00:02:09 2013
@@ -119,7 +119,6 @@
tst-mcheck-ENV = MALLOC_CHECK_=3
tst-malloc-usable-ENV = MALLOC_CHECK_=3
-CPPFLAGS-malloc.c += -DPER_THREAD
# Uncomment this for test releases. For public releases it is too expensive.
#CPPFLAGS-malloc.o += -DMALLOC_DEBUG=1
Modified: fsf/trunk/libc/malloc/arena.c
==============================================================================
--- fsf/trunk/libc/malloc/arena.c (original)
+++ fsf/trunk/libc/malloc/arena.c Wed Dec 11 00:02:09 2013
@@ -75,10 +75,8 @@
static tsd_key_t arena_key;
static mutex_t list_lock = MUTEX_INITIALIZER;
-#ifdef PER_THREAD
static size_t narenas = 1;
static mstate free_list;
-#endif
#if THREAD_STATS
static int stat_n_heaps;
@@ -114,21 +112,12 @@
ptr = (mstate)tsd_getspecific(arena_key, vptr); \
} while(0)
-#ifdef PER_THREAD
# define arena_lock(ptr, size) do { \
if(ptr) \
(void)mutex_lock(&ptr->mutex); \
else \
ptr = arena_get2(ptr, (size), NULL); \
} while(0)
-#else
-# define arena_lock(ptr, size) do { \
- if(ptr && !mutex_trylock(&ptr->mutex)) { \
- THREAD_STAT(++(ptr->stat_lock_direct)); \
- } else \
- ptr = arena_get2(ptr, (size), NULL); \
-} while(0)
-#endif
/* find the heap and corresponding arena for a given ptr */
@@ -292,17 +281,13 @@
tsd_setspecific(arena_key, save_arena);
__malloc_hook = save_malloc_hook;
__free_hook = save_free_hook;
-#ifdef PER_THREAD
free_list = NULL;
-#endif
for(ar_ptr = &main_arena;;) {
mutex_init(&ar_ptr->mutex);
-#ifdef PER_THREAD
if (ar_ptr != save_arena) {
ar_ptr->next_free = free_list;
free_list = ar_ptr;
}
-#endif
ar_ptr = ar_ptr->next;
if(ar_ptr == &main_arena) break;
}
@@ -423,13 +408,10 @@
{
if (memcmp (envline, "MMAP_MAX_", 9) == 0)
__libc_mallopt(M_MMAP_MAX, atoi(&envline[10]));
-#ifdef PER_THREAD
else if (memcmp (envline, "ARENA_MAX", 9) == 0)
__libc_mallopt(M_ARENA_MAX, atoi(&envline[10]));
-#endif
}
break;
-#ifdef PER_THREAD
case 10:
if (! __builtin_expect (__libc_enable_secure, 0))
{
@@ -437,7 +419,6 @@
__libc_mallopt(M_ARENA_TEST, atoi(&envline[11]));
}
break;
-#endif
case 15:
if (! __builtin_expect (__libc_enable_secure, 0))
{
@@ -745,18 +726,14 @@
mutex_init(&a->mutex);
(void)mutex_lock(&a->mutex);
-#ifdef PER_THREAD
(void)mutex_lock(&list_lock);
-#endif
/* Add the new arena to the global list. */
a->next = main_arena.next;
atomic_write_barrier ();
main_arena.next = a;
-#ifdef PER_THREAD
(void)mutex_unlock(&list_lock);
-#endif
THREAD_STAT(++(a->stat_lock_loop));
@@ -764,7 +741,6 @@
}
-#ifdef PER_THREAD
static mstate
get_free_list (void)
{
@@ -827,7 +803,6 @@
return result;
}
-#endif
static mstate
internal_function
@@ -835,7 +810,6 @@
{
mstate a;
-#ifdef PER_THREAD
static size_t narenas_limit;
a = get_free_list ();
@@ -878,54 +852,6 @@
else
a = reused_arena (avoid_arena);
}
-#else
- if(!a_tsd)
- a = a_tsd = &main_arena;
- else {
- a = a_tsd->next;
- if(!a) {
- /* This can only happen while initializing the new arena. */
- (void)mutex_lock(&main_arena.mutex);
- THREAD_STAT(++(main_arena.stat_lock_wait));
- return &main_arena;
- }
- }
-
- /* Check the global, circularly linked list for available arenas. */
- bool retried = false;
- repeat:
- do {
- if(!mutex_trylock(&a->mutex)) {
- if (retried)
- (void)mutex_unlock(&list_lock);
- THREAD_STAT(++(a->stat_lock_loop));
- LIBC_PROBE (memory_arena_reuse, 2, a, a_tsd);
- tsd_setspecific(arena_key, (void *)a);
- return a;
- }
- a = a->next;
- } while(a != a_tsd);
-
- /* If not even the list_lock can be obtained, try again. This can
- happen during `atfork', or for example on systems where thread
- creation makes it temporarily impossible to obtain _any_
- locks. */
- if(!retried && mutex_trylock(&list_lock)) {
- /* We will block to not run in a busy loop. */
- LIBC_PROBE (memory_arena_reuse_wait, 3, &list_lock, NULL, a_tsd);
- (void)mutex_lock(&list_lock);
-
- /* Since we blocked there might be an arena available now. */
- retried = true;
- a = a_tsd;
- goto repeat;
- }
-
- /* Nothing immediately available, so generate a new arena. */
- a = _int_new_arena(size);
- (void)mutex_unlock(&list_lock);
-#endif
-
return a;
}
@@ -951,7 +877,6 @@
return ar_ptr;
}
-#ifdef PER_THREAD
static void __attribute__ ((section ("__libc_thread_freeres_fn")))
arena_thread_freeres (void)
{
@@ -968,7 +893,6 @@
}
}
text_set_element (__libc_thread_subfreeres, arena_thread_freeres);
-#endif
/*
* Local variables:
Modified: fsf/trunk/libc/malloc/hooks.c
==============================================================================
--- fsf/trunk/libc/malloc/hooks.c (original)
+++ fsf/trunk/libc/malloc/hooks.c Wed Dec 11 00:02:09 2013
@@ -330,7 +330,7 @@
if (top_check() >= 0)
newmem = _int_malloc(&main_arena, bytes+1);
if (newmem) {
- MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
+ memcpy(newmem, oldmem, oldsize - 2*SIZE_SZ);
munmap_chunk(oldp);
}
}
@@ -476,11 +476,9 @@
ms->max_mmapped_mem = mp_.max_mmapped_mem;
ms->using_malloc_checking = using_malloc_checking;
ms->max_fast = get_max_fast();
-#ifdef PER_THREAD
ms->arena_test = mp_.arena_test;
ms->arena_max = mp_.arena_max;
ms->narenas = narenas;
-#endif
(void)mutex_unlock(&main_arena.mutex);
return (void*)ms;
}
@@ -577,11 +575,9 @@
}
}
if (ms->version >= 4) {
-#ifdef PER_THREAD
mp_.arena_test = ms->arena_test;
mp_.arena_max = ms->arena_max;
narenas = ms->narenas;
-#endif
}
check_malloc_state(&main_arena);
Modified: fsf/trunk/libc/malloc/malloc.c
==============================================================================
--- fsf/trunk/libc/malloc/malloc.c (original)
+++ fsf/trunk/libc/malloc/malloc.c Wed Dec 11 00:02:09 2013
@@ -1071,19 +1071,6 @@
static void* malloc_atfork(size_t sz, const void *caller);
static void free_atfork(void* mem, const void *caller);
#endif
-
-
-/* ------------- Optional versions of memcopy ---------------- */
-
-
-/*
- Note: memcpy is ONLY invoked with non-overlapping regions,
- so the (usually slower) memmove is not needed.
-*/
-
-#define MALLOC_COPY(dest, src, nbytes) memcpy(dest, src, nbytes)
-#define MALLOC_ZERO(dest, nbytes) memset(dest, 0, nbytes)
-
/* ------------------ MMAP support ------------------ */
@@ -1707,10 +1694,8 @@
/* Linked list */
struct malloc_state *next;
-#ifdef PER_THREAD
/* Linked list for free arenas. */
struct malloc_state *next_free;
-#endif
/* Memory allocated from the system in this arena. */
INTERNAL_SIZE_T system_mem;
@@ -1722,10 +1707,8 @@
unsigned long trim_threshold;
INTERNAL_SIZE_T top_pad;
INTERNAL_SIZE_T mmap_threshold;
-#ifdef PER_THREAD
INTERNAL_SIZE_T arena_test;
INTERNAL_SIZE_T arena_max;
-#endif
/* Memory map support */
int n_mmaps;
@@ -1767,18 +1750,14 @@
.n_mmaps_max = DEFAULT_MMAP_MAX,
.mmap_threshold = DEFAULT_MMAP_THRESHOLD,
.trim_threshold = DEFAULT_TRIM_THRESHOLD,
-#ifdef PER_THREAD
# define NARENAS_FROM_NCORES(n) ((n) * (sizeof(long) == 4 ? 2 : 8))
.arena_test = NARENAS_FROM_NCORES (1)
-#endif
};
-#ifdef PER_THREAD
/* Non public mallopt parameters. */
#define M_ARENA_TEST -7
#define M_ARENA_MAX -8
-#endif
/* Maximum size of memory handled in fastbins. */
@@ -2964,7 +2943,7 @@
/* Must alloc, copy, free. */
newmem = __libc_malloc(bytes);
if (newmem == 0) return 0; /* propagate failure */
- MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
+ memcpy(newmem, oldmem, oldsize - 2*SIZE_SZ);
munmap_chunk(oldp);
return newmem;
}
@@ -2981,11 +2960,6 @@
(void)mutex_lock(&ar_ptr->mutex);
#endif
-#if !defined PER_THREAD
- LIBC_PROBE (memory_arena_reuse_realloc, 1, ar_ptr);
- /* As in malloc(), remember this arena for the next allocation. */
- tsd_setspecific(arena_key, (void *)ar_ptr);
-#endif
newp = _int_realloc(ar_ptr, oldp, oldsize, nb);
@@ -3000,7 +2974,7 @@
newp = __libc_malloc(bytes);
if (newp != NULL)
{
- MALLOC_COPY (newp, oldmem, oldsize - SIZE_SZ);
+ memcpy (newp, oldmem, oldsize - SIZE_SZ);
_int_free(ar_ptr, oldp, 0);
}
}
@@ -3188,7 +3162,7 @@
if (chunk_is_mmapped (p))
{
if (__builtin_expect (perturb_byte, 0))
- return MALLOC_ZERO (mem, sz);
+ return memset (mem, 0, sz);
return mem;
}
@@ -3210,7 +3184,7 @@
assert(nclears >= 3);
if (nclears > 9)
- return MALLOC_ZERO(d, clearsize);
+ return memset(d, 0, clearsize);
else {
*(d+0) = 0;
@@ -4214,7 +4188,7 @@
assert(ncopies >= 3);
if (ncopies > 9)
- MALLOC_COPY(d, s, copysize);
+ memcpy(d, s, copysize);
else {
*(d+0) = *(s+0);
@@ -4688,7 +4662,6 @@
perturb_byte = value;
break;
-#ifdef PER_THREAD
case M_ARENA_TEST:
if (value > 0)
{
@@ -4704,7 +4677,6 @@
mp_.arena_max = value;
}
break;
-#endif
}
(void)mutex_unlock(&av->mutex);
return res;
Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_sin.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_sin.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_sin.c Wed Dec 11 00:02:09 2013
@@ -56,10 +56,9 @@
#include <fenv.h>
/* Helper macros to compute sin of the input values. */
-#define POLYNOMIAL2(xx) ((((s5.x * (xx) + s4.x) * (xx) + s3.x) * (xx) + s2.x) \
- * (xx))
-
-#define POLYNOMIAL(xx) (POLYNOMIAL2 (xx) + s1.x)
+#define POLYNOMIAL2(xx) ((((s5 * (xx) + s4) * (xx) + s3) * (xx) + s2) * (xx))
+
+#define POLYNOMIAL(xx) (POLYNOMIAL2 (xx) + s1)
/* The computed polynomial is a variation of the Taylor series expansion for
sin(a):
@@ -88,11 +87,11 @@
static const double th2_36 = 206158430208.0; /* 1.5*2**37 */ \
double xx = (x0) * (x0); \
double x1 = ((x0) + th2_36) - th2_36; \
- double y = aa.x * x1 * x1 * x1; \
+ double y = aa * x1 * x1 * x1; \
double r = (x0) + y; \
double x2 = ((x0) - x1) + (dx); \
- double t = (((POLYNOMIAL2 (xx) + bb.x) * xx + 3.0 * aa.x * x1 * x2) \
- * (x0) + aa.x * x2 * x2 * x2 + (dx)); \
+ double t = (((POLYNOMIAL2 (xx) + bb) * xx + 3.0 * aa * x1 * x2) \
+ * (x0) + aa * x2 * x2 * x2 + (dx)); \
t = (((x0) - r) + y) + t; \
double res = r + t; \
(cor) = (r - res) + t; \
@@ -124,6 +123,8 @@
cs2 = 4.99999999999999999999950396842453E-01,
cs4 = -4.16666666666664434524222570944589E-02,
cs6 = 1.38888874007937613028114285595617E-03;
+
+static const double t22 = 0x1.8p22;
void __dubsin (double x, double dx, double w[]);
void __docos (double x, double dx, double w[]);
@@ -211,8 +212,8 @@
/*---------------------------- 0.25<|x|< 0.855469---------------------- */
else if (k < 0x3feb6000)
{
- u.x = (m > 0) ? big.x + x : big.x - x;
- y = (m > 0) ? x - (u.x - big.x) : x + (u.x - big.x);
+ u.x = (m > 0) ? big + x : big - x;
+ y = (m > 0) ? x - (u.x - big) : x + (u.x - big);
xx = y * y;
s = y + y * xx * (sn3 + xx * sn5);
c = xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -232,16 +233,16 @@
else if (k < 0x400368fd)
{
- y = (m > 0) ? hp0.x - x : hp0.x + x;
+ y = (m > 0) ? hp0 - x : hp0 + x;
if (y >= 0)
{
- u.x = big.x + y;
- y = (y - (u.x - big.x)) + hp1.x;
+ u.x = big + y;
+ y = (y - (u.x - big)) + hp1;
}
else
{
- u.x = big.x - y;
- y = (-hp1.x) - (y + (u.x - big.x));
+ u.x = big - y;
+ y = (-hp1) - (y + (u.x - big));
}
xx = y * y;
s = y + y * xx * (sn3 + xx * sn5);
@@ -256,12 +257,12 @@
/*-------------------------- 2.426265<|x|< 105414350 ----------------------*/
else if (k < 0x419921FB)
{
- t = (x * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (x * hpinv + toint);
+ xn = t - toint;
v.x = t;
- y = (x - xn * mp1.x) - xn * mp2.x;
+ y = (x - xn * mp1) - xn * mp2;
n = v.i[LOW_HALF] & 3;
- da = xn * mp3.x;
+ da = xn * mp3;
a = y - da;
da = (y - a) - da;
eps = ABS (x) * 1.2e-30;
@@ -297,8 +298,8 @@
t = -a;
db = -da;
}
- u.x = big.x + t;
- y = t - (u.x - big.x);
+ u.x = big + t;
+ y = t - (u.x - big);
xx = y * y;
s = y + (db + y * xx * (sn3 + xx * sn5));
c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -319,8 +320,8 @@
a = -a;
da = -da;
}
- u.x = big.x + a;
- y = a - (u.x - big.x) + da;
+ u.x = big + a;
+ y = a - (u.x - big) + da;
xx = y * y;
SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
s = y + y * xx * (sn3 + xx * sn5);
@@ -338,17 +339,17 @@
/*---------------------105414350 <|x|< 281474976710656 --------------------*/
else if (k < 0x42F00000)
{
- t = (x * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (x * hpinv + toint);
+ xn = t - toint;
v.x = t;
xn1 = (xn + 8.0e22) - 8.0e22;
xn2 = xn - xn1;
- y = ((((x - xn1 * mp1.x) - xn1 * mp2.x) - xn2 * mp1.x) - xn2 * mp2.x);
+ y = ((((x - xn1 * mp1) - xn1 * mp2) - xn2 * mp1) - xn2 * mp2);
n = v.i[LOW_HALF] & 3;
- da = xn1 * pp3.x;
+ da = xn1 * pp3;
t = y - da;
da = (y - t) - da;
- da = (da - xn2 * pp3.x) - xn * pp4.x;
+ da = (da - xn2 * pp3) - xn * pp4;
a = t + da;
da = (t - a) + da;
eps = 1.0e-24;
@@ -384,8 +385,8 @@
t = -a;
db = -da;
}
- u.x = big.x + t;
- y = t - (u.x - big.x);
+ u.x = big + t;
+ y = t - (u.x - big);
xx = y * y;
s = y + (db + y * xx * (sn3 + xx * sn5));
c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -406,8 +407,8 @@
a = -a;
da = -da;
}
- u.x = big.x + a;
- y = a - (u.x - big.x) + da;
+ u.x = big + a;
+ y = a - (u.x - big) + da;
xx = y * y;
SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
s = y + y * xx * (sn3 + xx * sn5);
@@ -467,8 +468,8 @@
else if (k < 0x3feb6000)
{ /* 2^-27 < |x| < 0.855469 */
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
xx = y * y;
s = y + y * xx * (sn3 + xx * sn5);
c = xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -481,9 +482,9 @@
else if (k < 0x400368fd)
{ /* 0.855469 <|x|<2.426265 */ ;
- y = hp0.x - ABS (x);
- a = y + hp1.x;
- da = (y - a) + hp1.x;
+ y = hp0 - ABS (x);
+ a = y + hp1;
+ da = (y - a) + hp1;
xx = a * a;
if (xx < 0.01588)
{
@@ -505,8 +506,8 @@
t = -a;
db = -da;
}
- u.x = big.x + t;
- y = t - (u.x - big.x);
+ u.x = big + t;
+ y = t - (u.x - big);
xx = y * y;
s = y + (db + y * xx * (sn3 + xx * sn5));
c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -524,12 +525,12 @@
else if (k < 0x419921FB)
{ /* 2.426265<|x|< 105414350 */
- t = (x * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (x * hpinv + toint);
+ xn = t - toint;
v.x = t;
- y = (x - xn * mp1.x) - xn * mp2.x;
+ y = (x - xn * mp1) - xn * mp2;
n = v.i[LOW_HALF] & 3;
- da = xn * mp3.x;
+ da = xn * mp3;
a = y - da;
da = (y - a) - da;
eps = ABS (x) * 1.2e-30;
@@ -564,8 +565,8 @@
t = -a;
db = -da;
}
- u.x = big.x + t;
- y = t - (u.x - big.x);
+ u.x = big + t;
+ y = t - (u.x - big);
xx = y * y;
s = y + (db + y * xx * (sn3 + xx * sn5));
c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -586,8 +587,8 @@
a = -a;
da = -da;
}
- u.x = big.x + a;
- y = a - (u.x - big.x) + da;
+ u.x = big + a;
+ y = a - (u.x - big) + da;
xx = y * y;
SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
s = y + y * xx * (sn3 + xx * sn5);
@@ -604,17 +605,17 @@
else if (k < 0x42F00000)
{
- t = (x * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (x * hpinv + toint);
+ xn = t - toint;
v.x = t;
xn1 = (xn + 8.0e22) - 8.0e22;
xn2 = xn - xn1;
- y = ((((x - xn1 * mp1.x) - xn1 * mp2.x) - xn2 * mp1.x) - xn2 * mp2.x);
+ y = ((((x - xn1 * mp1) - xn1 * mp2) - xn2 * mp1) - xn2 * mp2);
n = v.i[LOW_HALF] & 3;
- da = xn1 * pp3.x;
+ da = xn1 * pp3;
t = y - da;
da = (y - t) - da;
- da = (da - xn2 * pp3.x) - xn * pp4.x;
+ da = (da - xn2 * pp3) - xn * pp4;
a = t + da;
da = (t - a) + da;
eps = 1.0e-24;
@@ -649,8 +650,8 @@
t = -a;
db = -da;
}
- u.x = big.x + t;
- y = t - (u.x - big.x);
+ u.x = big + t;
+ y = t - (u.x - big);
xx = y * y;
s = y + (db + y * xx * (sn3 + xx * sn5));
c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -671,8 +672,8 @@
a = -a;
da = -da;
}
- u.x = big.x + a;
- y = a - (u.x - big.x) + da;
+ u.x = big + a;
+ y = a - (u.x - big) + da;
xx = y * y;
SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
s = y + y * xx * (sn3 + xx * sn5);
@@ -735,10 +736,9 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
c = xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -774,20 +774,20 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res, del;
- static const double t22 = 6291456.0;
+
y = ABS (x);
- y = hp0.x - y;
+ y = hp0 - y;
if (y >= 0)
{
- u.x = big.x + y;
- y = y - (u.x - big.x);
- del = hp1.x;
- }
- else
- {
- u.x = big.x - y;
- y = -(y + (u.x - big.x));
- del = -hp1.x;
+ u.x = big + y;
+ y = y - (u.x - big);
+ del = hp1;
+ }
+ else
+ {
+ u.x = big - y;
+ y = -(y + (u.x - big));
+ del = -hp1;
}
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -806,9 +806,9 @@
return (x > 0) ? res : -res;
else
{
- y = ABS (x) - hp0.x;
- y1 = y - hp1.x;
- y2 = (y - y1) - hp1.x;
+ y = ABS (x) - hp0;
+ y1 = y - hp1;
+ y2 = (y - y1) - hp1;
__docos (y1, y2, w);
if (w[0] == w[0] + 1.000000005 * w[1])
return (x > 0) ? w[0] : -w[0];
@@ -855,15 +855,15 @@
return (x > 0) ? w[0] : -w[0];
else
{
- t = (orig * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (orig * hpinv + toint);
+ xn = t - toint;
v.x = t;
- y = (orig - xn * mp1.x) - xn * mp2.x;
+ y = (orig - xn * mp1) - xn * mp2;
n = v.i[LOW_HALF] & 3;
- da = xn * pp3.x;
+ da = xn * pp3;
t = y - da;
da = (y - t) - da;
- y = xn * pp4.x;
+ y = xn * pp4;
a = t - y;
da = ((t - a) - y) + da;
if (n & 2)
@@ -898,11 +898,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -954,11 +953,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -1043,11 +1041,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -1094,11 +1091,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -1144,11 +1140,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
c = xx * (cs2 + xx * (cs4 + xx * cs6));
@@ -1218,15 +1213,15 @@
return (x > 0) ? w[0] : -w[0];
else
{
- t = (orig * hpinv.x + toint.x);
- xn = t - toint.x;
+ t = (orig * hpinv + toint);
+ xn = t - toint;
v.x = t;
- y = (orig - xn * mp1.x) - xn * mp2.x;
+ y = (orig - xn * mp1) - xn * mp2;
n = v.i[LOW_HALF] & 3;
- da = xn * pp3.x;
+ da = xn * pp3;
t = y - da;
da = (y - t) - da;
- y = xn * pp4.x;
+ y = xn * pp4;
a = t - y;
da = ((t - a) - y) + da;
if (n == 1)
@@ -1262,11 +1257,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
@@ -1317,11 +1311,10 @@
{
mynumber u;
double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
- static const double t22 = 6291456.0;
y = ABS (x);
- u.x = big.x + y;
- y = y - (u.x - big.x);
+ u.x = big + y;
+ y = y - (u.x - big);
dx = (x > 0) ? dx : -dx;
xx = y * y;
s = y * xx * (sn3 + xx * sn5);
Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/usncs.h
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/usncs.h (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/usncs.h Wed Dec 11 00:02:09 2013
@@ -27,51 +27,22 @@
#ifndef USNCS_H
#define USNCS_H
-#ifdef BIG_ENDI
-static const mynumber
-
-/**/ s1 = {{0xBFC55555, 0x55555555 }}, /* -0.16666666666666666 */
-/**/ s2 = {{0x3F811111, 0x11110ECE }}, /* 0.0083333333333323288 */
-/**/ s3 = {{0xBF2A01A0, 0x19DB08B8 }}, /* -0.00019841269834414642 */
-/**/ s4 = {{0x3EC71DE2, 0x7B9A7ED9 }}, /* 2.755729806860771e-06 */
-/**/ s5 = {{0xBE5ADDFF, 0xC2FCDF59 }}, /* -2.5022014848318398e-08 */
-/**/ aa = {{0xBFC55580, 0x00000000 }}, /* -0.1666717529296875 */
-/**/ bb = {{0x3ED55555, 0x55556E24 }}, /* 5.0862630208387126e-06 */
-/**/ big = {{0x42c80000, 0x00000000 }}, /* 52776558133248 */
-/**/ hp0 = {{0x3FF921FB, 0x54442D18 }}, /* 1.5707963267948966 */
-/**/ hp1 = {{0x3C91A626, 0x33145C07 }}, /* 6.123233995736766e-17 */
-/**/ mp1 = {{0x3FF921FB, 0x58000000 }}, /* 1.5707963407039642 */
-/**/ mp2 = {{0xBE4DDE97, 0x3C000000 }}, /* -1.3909067564377153e-08 */
-/**/ mp3 = {{0xBC8CB3B3, 0x99D747F2 }}, /* -4.9789962505147994e-17 */
-/**/ pp3 = {{0xBC8CB3B3, 0x98000000 }}, /* -4.9789962314799099e-17 */
-/**/ pp4 = {{0xbacd747f, 0x23e32ed7 }}, /* -1.9034889620193266e-25 */
-/**/ hpinv = {{0x3FE45F30, 0x6DC9C883 }}, /* 0.63661977236758138 */
-/**/ toint = {{0x43380000, 0x00000000 }}; /* 6755399441055744 */
-
-#else
-#ifdef LITTLE_ENDI
-static const mynumber
-
-/**/ s1 = {{0x55555555, 0xBFC55555 }},/* -0.16666666666666666 */
-/**/ s2 = {{0x11110ECE, 0x3F811111 }},/* 0.0083333333333323288 */
-/**/ s3 = {{0x19DB08B8, 0xBF2A01A0 }},/* -0.00019841269834414642 */
-/**/ s4 = {{0x7B9A7ED9, 0x3EC71DE2 }},/* 2.755729806860771e-06 */
-/**/ s5 = {{0xC2FCDF59, 0xBE5ADDFF }},/* -2.5022014848318398e-08 */
-/**/ aa = {{0x00000000, 0xBFC55580 }},/* -0.1666717529296875 */
-/**/ bb = {{0x55556E24, 0x3ED55555 }},/* 5.0862630208387126e-06 */
-/**/ big = {{0x00000000, 0x42c80000 }},/* 52776558133248 */
-/**/ hp0 = {{0x54442D18, 0x3FF921FB }},/* 1.5707963267948966 */
-/**/ hp1 = {{0x33145C07, 0x3C91A626 }},/* 6.123233995736766e-17 */
-/**/ mp1 = {{0x58000000, 0x3FF921FB }},/* 1.5707963407039642 */
-/**/ mp2 = {{0x3C000000, 0xBE4DDE97 }},/* -1.3909067564377153e-08 */
-/**/ mp3 = {{0x99D747F2, 0xBC8CB3B3 }},/* -4.9789962505147994e-17 */
-/**/ pp3 = {{0x98000000, 0xBC8CB3B3 }},/* -4.9789962314799099e-17 */
-/**/ pp4 = {{0x23e32ed7, 0xbacd747f }},/* -1.9034889620193266e-25 */
-/**/ hpinv = {{0x6DC9C883, 0x3FE45F30 }},/* 0.63661977236758138 */
-/**/ toint = {{0x00000000, 0x43380000 }};/* 6755399441055744 */
-
+static const double s1 = -0x1.5555555555555p-3; /* -0.16666666666666666 */
+static const double s2 = 0x1.1111111110ECEp-7; /* 0.0083333333333323288 */
+static const double s3 = -0x1.A01A019DB08B8p-13; /* -0.00019841269834414642 */
+static const double s4 = 0x1.71DE27B9A7ED9p-19; /* 2.755729806860771e-06 */
+static const double s5 = -0x1.ADDFFC2FCDF59p-26; /* -2.5022014848318398e-08 */
+static const double aa = -0x1.5558000000000p-3; /* -0.1666717529296875 */
+static const double bb = 0x1.5555555556E24p-18; /* 5.0862630208387126e-06 */
+static const double big = 0x1.8000000000000p45; /* 52776558133248 */
+static const double hp0 = 0x1.921FB54442D18p0; /* 1.5707963267948966 */
+static const double hp1 = 0x1.1A62633145C07p-54; /* 6.123233995736766e-17 */
+static const double mp1 = 0x1.921FB58000000p0; /* 1.5707963407039642 */
+static const double mp2 = -0x1.DDE973C000000p-27; /* -1.3909067564377153e-08 */
+static const double mp3 = -0x1.CB3B399D747F2p-55; /* -4.9789962505147994e-17 */
+static const double pp3 = -0x1.CB3B398000000p-55; /* -4.9789962314799099e-17 */
+static const double pp4 = -0x1.d747f23e32ed7p-83; /* -1.9034889620193266e-25 */
+static const double hpinv = 0x1.45F306DC9C883p-1; /* 0.63661977236758138 */
+static const double toint = 0x1.8000000000000p52; /* 6755399441055744 */
#endif
-#endif
-
-#endif
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits