From a984eb367c032dbe2577f01238c3d1268526be70 Mon Sep 17 00:00:00 2001 From: Kacper Date: Thu, 25 Dec 2025 19:24:38 +0100 Subject: Clang-tidy fixes --- lib/libc/aio/aio.c | 21 +- lib/libc/aio/aio_cancel.c | 19 +- lib/libc/aio/aio_error.c | 8 +- lib/libc/aio/aio_fsync.c | 12 +- lib/libc/aio/aio_read.c | 10 +- lib/libc/aio/aio_return.c | 10 +- lib/libc/aio/aio_suspend.c | 26 +- lib/libc/aio/aio_write.c | 10 +- lib/libc/aio/lio_listio.c | 21 +- lib/libc/assert/assert.c | 6 +- lib/libc/ctype/isalnum.c | 4 +- lib/libc/devctl/posix_devctl.c | 1 + lib/libc/errno/errno.c | 1 - lib/libc/grp/getgrgid_r.c | 3 +- lib/libc/internal/arch/x86_64/longjmp.c | 3 +- lib/libc/internal/deinit/tls.c | 2 + lib/libc/internal/include/__signal.h | 12 +- lib/libc/internal/include/__thread.h | 1 - lib/libc/internal/include/atomic.h | 1 - lib/libc/internal/include/io_uring.h | 4 +- lib/libc/internal/include/malloc.h | 73 +- lib/libc/internal/init/init.c | 1 + lib/libc/internal/init/io.c | 4 +- lib/libc/internal/init/tls.c | 3 +- lib/libc/internal/init/vdso.c | 2 + lib/libc/inttypes/strtoimax.c | 3 +- lib/libc/poll/ppoll.c | 4 +- lib/libc/pwd/getgrgid_r.c | 9 +- lib/libc/sched/sched_rr_get_interval.c | 1 + lib/libc/select/pselect.c | 5 +- lib/libc/select/select.c | 7 +- lib/libc/sem/semctl.c | 4 +- lib/libc/signal/psignal.c | 3 +- lib/libc/signal/pthread_sigmask.c | 1 - lib/libc/signal/sig2str.c | 9 +- lib/libc/signal/sigabbrev.h | 16 +- lib/libc/signal/sigaction.c | 3 +- lib/libc/signal/sigtimedwait.c | 3 +- lib/libc/socket/accept.c | 3 +- lib/libc/socket/accept4.c | 3 +- lib/libc/socket/getpeername.c | 3 +- lib/libc/socket/getsockname.c | 3 +- lib/libc/socket/getsockopt.c | 6 +- lib/libc/socket/recvfrom.c | 6 +- lib/libc/socket/sendto.c | 7 +- lib/libc/socket/setsockopt.c | 6 +- lib/libc/stat/fstatat.c | 16 +- lib/libc/stat/utimensat.c | 3 +- lib/libc/stdio/clearerr.c | 1 - lib/libc/stdio/clearerr_unlocked.c | 1 + lib/libc/stdio/dtoa.c | 1542 ++++++++++------------------- lib/libc/stdio/fclose.c | 5 +- lib/libc/stdio/fdopen.c | 7 +- lib/libc/stdio/feof.c | 1 - lib/libc/stdio/feof_unlocked.c | 2 +- lib/libc/stdio/fflush.c | 3 - lib/libc/stdio/fflush_unlocked.c | 2 + lib/libc/stdio/fgets_unlocked.c | 1 + lib/libc/stdio/fileno_unlocked.c | 2 +- lib/libc/stdio/flockfile.c | 2 +- lib/libc/stdio/fopen.c | 7 +- lib/libc/stdio/fread_unlocked.c | 1 - lib/libc/stdio/fseek.c | 1 - lib/libc/stdio/ftrylockfile.c | 5 +- lib/libc/stdio/funlockfile.c | 2 +- lib/libc/stdio/fwrite_unlocked.c | 1 - lib/libc/stdio/pclose.c | 4 +- lib/libc/stdio/popen.c | 14 +- lib/libc/stdio/setvbuf.c | 6 +- lib/libc/stdio/vsnprintf.c | 3 +- lib/libc/stdlib/aligned_alloc.c | 3 +- lib/libc/stdlib/bsearch.c | 3 +- lib/libc/stdlib/calloc.c | 1 + lib/libc/stdlib/heapsort.c | 77 +- lib/libc/stdlib/heapsort_r.c | 77 +- lib/libc/stdlib/malloc.c | 1 + lib/libc/stdlib/posix_memalign.c | 3 +- lib/libc/stdlib/qsort.c | 3 +- lib/libc/stdlib/qsort_r.c | 39 +- lib/libc/string/memcpy.c | 98 +- lib/libc/string/memmem.c | 3 +- lib/libc/string/strcoll.c | 1 - lib/libc/string/strerror.c | 2 +- lib/libc/string/strtok_r.c | 3 +- lib/libc/strings/strcasecmp.c | 1 - lib/libc/strings/strncasecmp.c | 1 - lib/libc/sys/eventfd/eventfd_read.c | 1 - lib/libc/sys/eventfd/eventfd_write.c | 1 - lib/libc/sys/inotify/inotify_add_watch.c | 1 + lib/libc/sys/io_uring/io_uring_enter.c | 9 +- lib/libc/sys/io_uring/io_uring_register.c | 3 +- lib/libc/sys/io_uring/io_uring_setup.c | 34 +- lib/libc/sys/mount.c | 4 +- lib/libc/sys/mqueue/mq_getattr.c | 1 - lib/libc/sys/mqueue/mq_notify.c | 1 + lib/libc/sys/mqueue/mq_receive.c | 4 +- lib/libc/sys/mqueue/mq_setattr.c | 3 +- lib/libc/sys/mqueue/mq_timedreceive.c | 8 +- lib/libc/sys/mqueue/mq_timedsend.c | 8 +- lib/libc/termios/tcsendbreak.c | 2 +- lib/libc/thread/thrd_create.c | 8 +- lib/libc/thread/thrd_detach.c | 3 +- lib/libc/thread/thrd_join.c | 1 + lib/libc/time/asctime.c | 15 +- lib/libc/time/clock.c | 3 +- lib/libc/time/clock_gettime.c | 2 +- lib/libc/time/gmtime_r.c | 4 +- lib/libc/time/strftime.c | 1 - lib/libc/time/time.c | 2 +- lib/libc/time/tzset.c | 3 +- lib/libc/time/utimes.c | 3 +- lib/libc/unistd/execvp.c | 13 +- lib/libc/unistd/getopt.c | 3 +- lib/libc/unistd/readlinkat.c | 3 +- lib/libc/unistd/write.c | 1 + lib/libm/__cos.c | 10 +- lib/libm/__cosdf.c | 6 +- lib/libm/__cosl.c | 40 +- lib/libm/__invtrigl.c | 42 +- lib/libm/__rem_pio2.c | 10 +- lib/libm/__rem_pio2_large.c | 163 ++- lib/libm/__rem_pio2f.c | 5 +- lib/libm/__rem_pio2l.c | 66 +- lib/libm/__sin.c | 10 +- lib/libm/__sindf.c | 6 +- lib/libm/__sinl.c | 64 +- lib/libm/__tan.c | 7 +- lib/libm/__tanl.c | 148 ++- lib/libm/acos.c | 22 +- lib/libm/acosf.c | 3 +- lib/libm/asin.c | 5 +- lib/libm/asinf.c | 3 +- lib/libm/asinl.c | 3 +- lib/libm/atan.c | 4 +- lib/libm/atanf.c | 3 +- lib/libm/atanl.c | 67 +- lib/libm/atomic.h | 19 +- lib/libm/cbrt.c | 2 +- lib/libm/cbrtf.c | 2 +- lib/libm/csinhl.c | 3 +- lib/libm/csinl.c | 3 +- lib/libm/ctan.c | 3 +- lib/libm/ctanhl.c | 3 +- lib/libm/ctanl.c | 3 +- lib/libm/erf.c | 40 +- lib/libm/erff.c | 37 +- lib/libm/erfl.c | 66 +- lib/libm/exp.c | 3 +- lib/libm/exp10.c | 9 +- lib/libm/exp10f.c | 5 +- lib/libm/exp10l.c | 10 +- lib/libm/exp2.c | 3 +- lib/libm/exp2l.c | 277 ++---- lib/libm/expl.c | 3 +- lib/libm/expm1.c | 6 +- lib/libm/expm1l.c | 3 +- lib/libm/fma.c | 9 +- lib/libm/fmaf.c | 3 +- lib/libm/fmal.c | 3 +- lib/libm/j0.c | 45 +- lib/libm/j0f.c | 9 +- lib/libm/j1.c | 25 +- lib/libm/j1f.c | 7 +- lib/libm/lgamma_r.c | 66 +- lib/libm/lgammaf_r.c | 38 +- lib/libm/lgammal.c | 115 +-- lib/libm/libm.h | 18 +- lib/libm/log.c | 9 +- lib/libm/log10.c | 20 +- lib/libm/log10f.c | 3 +- lib/libm/log10l.c | 10 +- lib/libm/log1pl.c | 10 +- lib/libm/log2.c | 3 +- lib/libm/log2l.c | 10 +- lib/libm/logl.c | 10 +- lib/libm/pow.c | 19 +- lib/libm/powf.c | 9 +- lib/libm/powl.c | 48 +- lib/libm/remquo.c | 3 +- lib/libm/remquof.c | 3 +- lib/libm/remquol.c | 6 +- lib/libm/sin.c | 3 +- lib/libm/sincos.c | 3 +- lib/libm/sincosf.c | 3 +- lib/libm/sinf.c | 3 +- lib/libm/sinhl.c | 3 +- lib/libm/sqrt_data.c | 25 +- lib/libm/sqrtl.c | 6 +- lib/libm/tan.c | 3 +- lib/libm/tanf.c | 3 +- lib/libm/tgamma.c | 21 +- lib/libm/tgammal.c | 42 +- 192 files changed, 1600 insertions(+), 2659 deletions(-) (limited to 'lib') diff --git a/lib/libc/aio/aio.c b/lib/libc/aio/aio.c index 0ca2ec64..204f2296 100644 --- a/lib/libc/aio/aio.c +++ b/lib/libc/aio/aio.c @@ -1,10 +1,14 @@ -#include <__aio.h> -#include -#include -#include -#include -#include -#include +#include "aio.h" // for aiocb +#include "linux/io_uring.h" // for io_uring_sqe, io_uring_cqe, io_uring_sqe... +#include "stddef.h" // for NULL + +#include <__aio.h> // for aio_request, aio_context, lio_group, AIO... +#include // for sigevent +#include // for __io_uring, io_uring, io_uring_cq, io_ur... +#include // for kill, SIGEV_SIGNAL, SIGEV_THREAD +#include // for uint64_t +#include // for memset +#include // for getpid, write struct aio_context __aio_context = { 0 }; @@ -103,8 +107,7 @@ void __aio_poll(void) unsigned tail = *__io_uring.cq.tail; while (head != tail) { - struct io_uring_cqe *cqe = - &__io_uring.cq.cqes[head & *__io_uring.cq.ring_mask]; + struct io_uring_cqe *cqe = &__io_uring.cq.cqes[head & *__io_uring.cq.ring_mask]; struct aio_request *req = (struct aio_request *)cqe->user_data; diff --git a/lib/libc/aio/aio_cancel.c b/lib/libc/aio/aio_cancel.c index b4d373bf..5bb340db 100644 --- a/lib/libc/aio/aio_cancel.c +++ b/lib/libc/aio/aio_cancel.c @@ -1,11 +1,14 @@ -#include <__aio.h> -#include -#include -#include -#include -#include -#include -#include +#include "aio.h" // for AIO_ALLDONE, AIO_CANCELED, aio_cancel +#include "linux/io_uring.h" // for io_uring_sqe, IORING_ENTER_GETEVENTS + +#include <__aio.h> // for __aio_lookup, __aio_remove, AIO_REQUEST_... +#include // for EINVAL, errno +#include // for __io_uring, io_uring, io_uring_sq, IO_UR... +#include // for NULL +#include // for uint64_t +#include // for free +#include // for memset +#include // for __unused int aio_cancel(int __unused fildes, struct aiocb *aiocbp) { diff --git a/lib/libc/aio/aio_error.c b/lib/libc/aio/aio_error.c index 27c7f134..9f7d05ca 100644 --- a/lib/libc/aio/aio_error.c +++ b/lib/libc/aio/aio_error.c @@ -1,6 +1,8 @@ -#include <__aio.h> -#include -#include +#include "aio.h" // for aio_error, aiocb (ptr only) + +#include <__aio.h> // for aio_request, __aio_lookup, AIO_REQUEST_STATUS_PE... +#include // for EINVAL, errno, EINPROGRESS +#include // for NULL int aio_error(const struct aiocb *aiocbp) { diff --git a/lib/libc/aio/aio_fsync.c b/lib/libc/aio/aio_fsync.c index 00d56b42..2b06ba8f 100644 --- a/lib/libc/aio/aio_fsync.c +++ b/lib/libc/aio/aio_fsync.c @@ -1,8 +1,10 @@ -#include <__aio.h> -#include -#include -#include -#include +#include "linux/io_uring.h" // for io_uring_op, IORING_FSYNC_DATASYNC +#include "stddef.h" // for NULL + +#include <__aio.h> // for __aio_lookup, __aio_request +#include // for aio_fsync +#include // for EINVAL, errno +#include // for O_DSYNC int aio_fsync(int op, struct aiocb *aiocbp) { diff --git a/lib/libc/aio/aio_read.c b/lib/libc/aio/aio_read.c index 286b2d02..150f8b0e 100644 --- a/lib/libc/aio/aio_read.c +++ b/lib/libc/aio/aio_read.c @@ -1,7 +1,9 @@ -#include <__aio.h> -#include -#include -#include +#include "linux/io_uring.h" // for io_uring_op +#include "stddef.h" // for NULL + +#include <__aio.h> // for __aio_request, aio_request +#include // for aio_read +#include // for malloc int aio_read(struct aiocb *aiocbp) { diff --git a/lib/libc/aio/aio_return.c b/lib/libc/aio/aio_return.c index 45b0d795..a19d355a 100644 --- a/lib/libc/aio/aio_return.c +++ b/lib/libc/aio/aio_return.c @@ -1,7 +1,9 @@ -#include <__aio.h> -#include -#include -#include +#include "aio.h" // for ssize_t, aio_return, aiocb (ptr only) + +#include <__aio.h> // for __aio_remove, aio_request, AIO_REQUEST_STATUS_PE... +#include // for EINVAL, errno +#include // for NULL +#include // for free ssize_t aio_return(struct aiocb *aiocbp) { diff --git a/lib/libc/aio/aio_suspend.c b/lib/libc/aio/aio_suspend.c index 939b9d6b..89afe9fd 100644 --- a/lib/libc/aio/aio_suspend.c +++ b/lib/libc/aio/aio_suspend.c @@ -1,14 +1,16 @@ -#include <__aio.h> -#include -#include -#include -#include -#include +#include "linux/io_uring.h" // for IORING_ENTER_GETEVENTS +#include "stddef.h" // for NULL + +#include <__aio.h> // for __aio_lookup, __aio_poll, AIO_REQUEST_ST... +#include // for timespec, aio_suspend +#include // for errno, EAGAIN, EINVAL +#include // for __io_uring, io_uring, io_uring_enter +#include // for pollfd, poll, POLLIN +#include // for uint64_t #include -#include +#include // for read -int aio_suspend(const struct aiocb *const list[], int nent, - const struct timespec *timeout) +int aio_suspend(const struct aiocb *const list[], int nent, const struct timespec *timeout) { struct pollfd pfd; struct aio_request *req; @@ -32,8 +34,7 @@ int aio_suspend(const struct aiocb *const list[], int nent, pfd.events = POLLIN; if (timeout) { - timeout_ms = timeout->tv_sec * 1000 + - timeout->tv_nsec / 1000000; + timeout_ms = timeout->tv_sec * 1000 + timeout->tv_nsec / 1000000; } else { timeout_ms = -1; } @@ -51,7 +52,6 @@ int aio_suspend(const struct aiocb *const list[], int nent, uint64_t val; read(__io_uring.eventfd, &val, sizeof(val)); - io_uring_enter(__io_uring.fd, 0, 0, IORING_ENTER_GETEVENTS, - NULL, 0); + io_uring_enter(__io_uring.fd, 0, 0, IORING_ENTER_GETEVENTS, NULL, 0); } } diff --git a/lib/libc/aio/aio_write.c b/lib/libc/aio/aio_write.c index 4254fdcd..9315296e 100644 --- a/lib/libc/aio/aio_write.c +++ b/lib/libc/aio/aio_write.c @@ -1,7 +1,9 @@ -#include <__aio.h> -#include -#include -#include +#include "linux/io_uring.h" // for io_uring_op +#include "stddef.h" // for NULL + +#include <__aio.h> // for __aio_request, aio_request +#include // for aio_write +#include // for malloc int aio_write(struct aiocb *aiocbp) { diff --git a/lib/libc/aio/lio_listio.c b/lib/libc/aio/lio_listio.c index 0a345c16..3011268e 100644 --- a/lib/libc/aio/lio_listio.c +++ b/lib/libc/aio/lio_listio.c @@ -1,15 +1,14 @@ -#include <__aio.h> -#include -#include -#include -#include -#include -#include -#include -#include +#include <__aio.h> // for lio_group, __aio_lookup, aio_request +#include // for LIO_NOWAIT, aio_read, aio_write, LIO_NOP +#include // for errno, EINVAL, EIO +#include // for NULL +#include // for uint64_t +#include // for malloc +#include // for memset +#include // for eventfd, EFD_CLOEXEC +#include // for read -int lio_listio(int mode, struct aiocb *restrict const list[restrict], int nent, - struct sigevent *restrict sig) +int lio_listio(int mode, struct aiocb *restrict const list[restrict], int nent, struct sigevent *restrict sig) { struct lio_group *grp = NULL; diff --git a/lib/libc/assert/assert.c b/lib/libc/assert/assert.c index 367f5421..f0af5354 100644 --- a/lib/libc/assert/assert.c +++ b/lib/libc/assert/assert.c @@ -2,11 +2,9 @@ #include // for fprintf, stderr #include // for abort -_Noreturn void __assert(const char *_Nonnull __file, int __line, - const char *_Nonnull __func, +_Noreturn void __assert(const char *_Nonnull __file, int __line, const char *_Nonnull __func, const char *_Nonnull __expr) { - fprintf(stderr, "%s:%d: %s: assertion \"%s\" failed\n", __file, __line, - __func, __expr); + fprintf(stderr, "%s:%d: %s: assertion \"%s\" failed\n", __file, __line, __func, __expr); abort(); } diff --git a/lib/libc/ctype/isalnum.c b/lib/libc/ctype/isalnum.c index 9548071d..fb10e351 100644 --- a/lib/libc/ctype/isalnum.c +++ b/lib/libc/ctype/isalnum.c @@ -1,5 +1,5 @@ -#include -#include +#include // for isalpha, isdigit, isalnum, isalnum_l, locale_t +#include // for __unused, __weak int isalnum(int c) { diff --git a/lib/libc/devctl/posix_devctl.c b/lib/libc/devctl/posix_devctl.c index 01af3111..c60b984e 100644 --- a/lib/libc/devctl/posix_devctl.c +++ b/lib/libc/devctl/posix_devctl.c @@ -1,5 +1,6 @@ #include #include +#include #include #include diff --git a/lib/libc/errno/errno.c b/lib/libc/errno/errno.c index 08d5dd83..29a65057 100644 --- a/lib/libc/errno/errno.c +++ b/lib/libc/errno/errno.c @@ -1,5 +1,4 @@ #include <__thread.h> -#include #include diff --git a/lib/libc/grp/getgrgid_r.c b/lib/libc/grp/getgrgid_r.c index 13884fd5..67d3bd10 100644 --- a/lib/libc/grp/getgrgid_r.c +++ b/lib/libc/grp/getgrgid_r.c @@ -8,8 +8,7 @@ #include // for strtok, memcpy, strlen #include // for gid_t, size_t -int getgrgid_r(gid_t gid, struct group *grp, char *buf, size_t buflen, - struct group **result) +int getgrgid_r(gid_t gid, struct group *grp, char *buf, size_t buflen, struct group **result) { FILE *f = fopen("/etc/group", "r"); if (!f) { diff --git a/lib/libc/internal/arch/x86_64/longjmp.c b/lib/libc/internal/arch/x86_64/longjmp.c index dbd18632..672b2177 100644 --- a/lib/libc/internal/arch/x86_64/longjmp.c +++ b/lib/libc/internal/arch/x86_64/longjmp.c @@ -2,8 +2,7 @@ #include // for longjmp -__attribute__((noreturn, naked, returns_twice)) void longjmp(jmp_buf env, - int val) +__attribute__((noreturn, naked, returns_twice)) void longjmp(jmp_buf env, int val) { __asm__ __volatile__("mov 0(%rdi), %rbx\n" "mov 8(%rdi), %rbp\n" diff --git a/lib/libc/internal/deinit/tls.c b/lib/libc/internal/deinit/tls.c index 0eb78aeb..9e0af1b4 100644 --- a/lib/libc/internal/deinit/tls.c +++ b/lib/libc/internal/deinit/tls.c @@ -1,3 +1,5 @@ +#include "stddef.h" +#include "sys/cdefs.h" #include #include diff --git a/lib/libc/internal/include/__signal.h b/lib/libc/internal/include/__signal.h index 6b762dee..f5d32e3c 100644 --- a/lib/libc/internal/include/__signal.h +++ b/lib/libc/internal/include/__signal.h @@ -1,12 +1,10 @@ #ifndef __LIBC_SIGNAL_H #define __LIBC_SIGNAL_H -static const char *__sys_signame[] = { - "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", "SIGABRT", - "SIGBUS", "SIGFPE", "SIGKILL", "SIGUSR1", "SIGSEGV", "SIGUSR2", - "SIGPIPE", "SIGALRM", "SIGTERM", "SIGCHLD", "SIGCONT", "SIGSTOP", - "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGXCPU", "SIGXFSZ", - "SIGVTALRM", "SIGPROF", "SIGWINCH", "SIGIO", "SIGSYS" -}; +static const char *__sys_signame[] = { "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", "SIGABRT", + "SIGBUS", "SIGFPE", "SIGKILL", "SIGUSR1", "SIGSEGV", "SIGUSR2", + "SIGPIPE", "SIGALRM", "SIGTERM", "SIGCHLD", "SIGCONT", "SIGSTOP", + "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGXCPU", "SIGXFSZ", + "SIGVTALRM", "SIGPROF", "SIGWINCH", "SIGIO", "SIGSYS" }; #endif diff --git a/lib/libc/internal/include/__thread.h b/lib/libc/internal/include/__thread.h index 3c68f8dd..1bdd42c2 100644 --- a/lib/libc/internal/include/__thread.h +++ b/lib/libc/internal/include/__thread.h @@ -1,7 +1,6 @@ #ifndef __LIBC_THREAD_H #define __LIBC_THREAD_H -#include #include #include diff --git a/lib/libc/internal/include/atomic.h b/lib/libc/internal/include/atomic.h index d40c1eae..c935535c 100644 --- a/lib/libc/internal/include/atomic.h +++ b/lib/libc/internal/include/atomic.h @@ -4,7 +4,6 @@ #include #include #include -#include #define LIBC_LOCK(__lock) __libc_lock(&((__lock))) #define LIBC_UNLOCK(__lock) __libc_unlock(&((__lock))) diff --git a/lib/libc/internal/include/io_uring.h b/lib/libc/internal/include/io_uring.h index 4dac4583..cd53941d 100644 --- a/lib/libc/internal/include/io_uring.h +++ b/lib/libc/internal/include/io_uring.h @@ -3,6 +3,7 @@ #include #include +#include #define IO_URING_ENTRIES 256 @@ -47,7 +48,6 @@ int io_uring_setup(unsigned int, struct io_uring_params *); int io_uring_register(unsigned int, unsigned int, void *, unsigned int); -int io_uring_enter(unsigned int, unsigned int, unsigned int, unsigned int, - sigset_t *, size_t); +int io_uring_enter(unsigned int, unsigned int, unsigned int, unsigned int, sigset_t *, size_t); #endif diff --git a/lib/libc/internal/include/malloc.h b/lib/libc/internal/include/malloc.h index b7cb0093..98361ebd 100644 --- a/lib/libc/internal/include/malloc.h +++ b/lib/libc/internal/include/malloc.h @@ -45,54 +45,35 @@ extern struct page *__malloc_pvec; #define LARGE_PAGE_SIZE (1 << LARGE_PAGE_SIZE_SHIFT) #define LARGE_PAGE_MASK (~((uintptr_t)LARGE_PAGE_SIZE - 1)) -#define SMALL_CLASS(n) \ - { (((n)) * 16), (SMALL_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } -#define MEDIUM_CLASS(n) \ - { (((n)) * 16), \ - (MEDIUM_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } -#define LARGE_CLASS(n) \ - { (((n)) * 16), (LARGE_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } +#define SMALL_CLASS(n) { (((n)) * 16), (SMALL_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } +#define MEDIUM_CLASS(n) { (((n)) * 16), (MEDIUM_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } +#define LARGE_CLASS(n) { (((n)) * 16), (LARGE_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } static const struct class global_size_class[] = { - SMALL_CLASS(1), SMALL_CLASS(1), SMALL_CLASS(2), - SMALL_CLASS(3), SMALL_CLASS(4), SMALL_CLASS(5), - SMALL_CLASS(6), SMALL_CLASS(7), SMALL_CLASS(8), - SMALL_CLASS(9), SMALL_CLASS(10), SMALL_CLASS(11), - SMALL_CLASS(12), SMALL_CLASS(13), SMALL_CLASS(14), - SMALL_CLASS(15), SMALL_CLASS(16), SMALL_CLASS(17), - SMALL_CLASS(18), SMALL_CLASS(19), SMALL_CLASS(20), - SMALL_CLASS(21), SMALL_CLASS(22), SMALL_CLASS(23), - SMALL_CLASS(24), SMALL_CLASS(25), SMALL_CLASS(26), - SMALL_CLASS(27), SMALL_CLASS(28), SMALL_CLASS(29), - SMALL_CLASS(30), SMALL_CLASS(31), SMALL_CLASS(32), - SMALL_CLASS(33), SMALL_CLASS(34), SMALL_CLASS(35), - SMALL_CLASS(36), SMALL_CLASS(37), SMALL_CLASS(38), - SMALL_CLASS(39), SMALL_CLASS(40), SMALL_CLASS(41), - SMALL_CLASS(42), SMALL_CLASS(43), SMALL_CLASS(44), - SMALL_CLASS(45), SMALL_CLASS(46), SMALL_CLASS(47), - SMALL_CLASS(48), SMALL_CLASS(49), SMALL_CLASS(50), - SMALL_CLASS(51), SMALL_CLASS(52), SMALL_CLASS(53), - SMALL_CLASS(54), SMALL_CLASS(55), SMALL_CLASS(56), - SMALL_CLASS(57), SMALL_CLASS(58), SMALL_CLASS(59), - SMALL_CLASS(60), SMALL_CLASS(61), SMALL_CLASS(62), - SMALL_CLASS(63), SMALL_CLASS(64), SMALL_CLASS(80), - SMALL_CLASS(96), SMALL_CLASS(112), SMALL_CLASS(128), - SMALL_CLASS(160), SMALL_CLASS(192), SMALL_CLASS(224), - SMALL_CLASS(256), MEDIUM_CLASS(320), MEDIUM_CLASS(384), - MEDIUM_CLASS(448), MEDIUM_CLASS(512), MEDIUM_CLASS(640), - MEDIUM_CLASS(768), MEDIUM_CLASS(896), MEDIUM_CLASS(1024), - MEDIUM_CLASS(1280), MEDIUM_CLASS(1536), MEDIUM_CLASS(1792), - MEDIUM_CLASS(2048), MEDIUM_CLASS(2560), MEDIUM_CLASS(3072), - MEDIUM_CLASS(3584), MEDIUM_CLASS(4096), MEDIUM_CLASS(5120), - MEDIUM_CLASS(6144), MEDIUM_CLASS(7168), MEDIUM_CLASS(8192), - MEDIUM_CLASS(10240), MEDIUM_CLASS(12288), MEDIUM_CLASS(14336), - MEDIUM_CLASS(16384), LARGE_CLASS(20480), LARGE_CLASS(24576), - LARGE_CLASS(28672), LARGE_CLASS(32768), LARGE_CLASS(40960), - LARGE_CLASS(49152), LARGE_CLASS(57344), LARGE_CLASS(65536), - LARGE_CLASS(81920), LARGE_CLASS(98304), LARGE_CLASS(114688), - LARGE_CLASS(131072), LARGE_CLASS(163840), LARGE_CLASS(196608), - LARGE_CLASS(229376), LARGE_CLASS(262144), LARGE_CLASS(327680), - LARGE_CLASS(393216), LARGE_CLASS(458752), LARGE_CLASS(524288) + SMALL_CLASS(1), SMALL_CLASS(1), SMALL_CLASS(2), SMALL_CLASS(3), SMALL_CLASS(4), + SMALL_CLASS(5), SMALL_CLASS(6), SMALL_CLASS(7), SMALL_CLASS(8), SMALL_CLASS(9), + SMALL_CLASS(10), SMALL_CLASS(11), SMALL_CLASS(12), SMALL_CLASS(13), SMALL_CLASS(14), + SMALL_CLASS(15), SMALL_CLASS(16), SMALL_CLASS(17), SMALL_CLASS(18), SMALL_CLASS(19), + SMALL_CLASS(20), SMALL_CLASS(21), SMALL_CLASS(22), SMALL_CLASS(23), SMALL_CLASS(24), + SMALL_CLASS(25), SMALL_CLASS(26), SMALL_CLASS(27), SMALL_CLASS(28), SMALL_CLASS(29), + SMALL_CLASS(30), SMALL_CLASS(31), SMALL_CLASS(32), SMALL_CLASS(33), SMALL_CLASS(34), + SMALL_CLASS(35), SMALL_CLASS(36), SMALL_CLASS(37), SMALL_CLASS(38), SMALL_CLASS(39), + SMALL_CLASS(40), SMALL_CLASS(41), SMALL_CLASS(42), SMALL_CLASS(43), SMALL_CLASS(44), + SMALL_CLASS(45), SMALL_CLASS(46), SMALL_CLASS(47), SMALL_CLASS(48), SMALL_CLASS(49), + SMALL_CLASS(50), SMALL_CLASS(51), SMALL_CLASS(52), SMALL_CLASS(53), SMALL_CLASS(54), + SMALL_CLASS(55), SMALL_CLASS(56), SMALL_CLASS(57), SMALL_CLASS(58), SMALL_CLASS(59), + SMALL_CLASS(60), SMALL_CLASS(61), SMALL_CLASS(62), SMALL_CLASS(63), SMALL_CLASS(64), + SMALL_CLASS(80), SMALL_CLASS(96), SMALL_CLASS(112), SMALL_CLASS(128), SMALL_CLASS(160), + SMALL_CLASS(192), SMALL_CLASS(224), SMALL_CLASS(256), MEDIUM_CLASS(320), MEDIUM_CLASS(384), + MEDIUM_CLASS(448), MEDIUM_CLASS(512), MEDIUM_CLASS(640), MEDIUM_CLASS(768), MEDIUM_CLASS(896), + MEDIUM_CLASS(1024), MEDIUM_CLASS(1280), MEDIUM_CLASS(1536), MEDIUM_CLASS(1792), MEDIUM_CLASS(2048), + MEDIUM_CLASS(2560), MEDIUM_CLASS(3072), MEDIUM_CLASS(3584), MEDIUM_CLASS(4096), MEDIUM_CLASS(5120), + MEDIUM_CLASS(6144), MEDIUM_CLASS(7168), MEDIUM_CLASS(8192), MEDIUM_CLASS(10240), MEDIUM_CLASS(12288), + MEDIUM_CLASS(14336), MEDIUM_CLASS(16384), LARGE_CLASS(20480), LARGE_CLASS(24576), LARGE_CLASS(28672), + LARGE_CLASS(32768), LARGE_CLASS(40960), LARGE_CLASS(49152), LARGE_CLASS(57344), LARGE_CLASS(65536), + LARGE_CLASS(81920), LARGE_CLASS(98304), LARGE_CLASS(114688), LARGE_CLASS(131072), LARGE_CLASS(163840), + LARGE_CLASS(196608), LARGE_CLASS(229376), LARGE_CLASS(262144), LARGE_CLASS(327680), LARGE_CLASS(393216), + LARGE_CLASS(458752), LARGE_CLASS(524288) }; #endif diff --git a/lib/libc/internal/init/init.c b/lib/libc/internal/init/init.c index 62678dce..85d4d8f0 100644 --- a/lib/libc/internal/init/init.c +++ b/lib/libc/internal/init/init.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include diff --git a/lib/libc/internal/init/io.c b/lib/libc/internal/init/io.c index 4790af89..2bf58a9a 100644 --- a/lib/libc/internal/init/io.c +++ b/lib/libc/internal/init/io.c @@ -1,7 +1,9 @@ -#include +#include "__stdio.h" +#include "stddef.h" #include #include #include +#include #include struct __FILE *const stdout = (struct __FILE *)&__libc.stdout; diff --git a/lib/libc/internal/init/tls.c b/lib/libc/internal/init/tls.c index 302edd9d..e23efc0d 100644 --- a/lib/libc/internal/init/tls.c +++ b/lib/libc/internal/init/tls.c @@ -1,7 +1,8 @@ +#include "stddef.h" #include <__thread.h> -#include #include #include +#include #include #include #include diff --git a/lib/libc/internal/init/vdso.c b/lib/libc/internal/init/vdso.c index 73bfb46b..660bb74a 100644 --- a/lib/libc/internal/init/vdso.c +++ b/lib/libc/internal/init/vdso.c @@ -1,7 +1,9 @@ +#include "stddef.h" #include #include #include #include +#include int (*__vdso_clock_gettime)(int, struct timespec *) = 0; int (*__vdso_getcpu)(unsigned *, unsigned *, void *) = 0; diff --git a/lib/libc/inttypes/strtoimax.c b/lib/libc/inttypes/strtoimax.c index a8f0820b..ac1847b1 100644 --- a/lib/libc/inttypes/strtoimax.c +++ b/lib/libc/inttypes/strtoimax.c @@ -75,8 +75,7 @@ intmax_t strtoimax(const char *nptr, char **endptr, int base) if (c == '+') c = *s++; } - if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X') && - isxdigit((unsigned char)s[1])) { + if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X') && isxdigit((unsigned char)s[1])) { c = s[1]; s += 2; base = 16; diff --git a/lib/libc/poll/ppoll.c b/lib/libc/poll/ppoll.c index 902ae5c5..dd62efd2 100644 --- a/lib/libc/poll/ppoll.c +++ b/lib/libc/poll/ppoll.c @@ -7,9 +7,7 @@ struct timespec; -int ppoll(struct pollfd fds[], nfds_t nfds, - const struct timespec *restrict timeout, - const sigset_t *restrict sigmask) +int ppoll(struct pollfd fds[], nfds_t nfds, const struct timespec *restrict timeout, const sigset_t *restrict sigmask) { return syscall(ppoll, fds, nfds, timeout, sigmask, 8); } diff --git a/lib/libc/pwd/getgrgid_r.c b/lib/libc/pwd/getgrgid_r.c index 2f9c1952..0aec3e08 100644 --- a/lib/libc/pwd/getgrgid_r.c +++ b/lib/libc/pwd/getgrgid_r.c @@ -20,8 +20,7 @@ static char *copy_str(const char *src, char **buf, size_t *buflen) return dst; } -int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, - struct passwd **result) +int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result) { FILE *stream = fopen("/etc/passwd", "r"); if (stream == NULL) { @@ -40,8 +39,7 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, char *dir = strtok(NULL, ":"); char *shell = strtok(NULL, "\n"); - if (name == NULL || passwd == NULL || uid_str == NULL || - gid_str == NULL) + if (name == NULL || passwd == NULL || uid_str == NULL || gid_str == NULL) continue; uid_t file_uid = (uid_t)strtoul(uid_str, NULL, 10); @@ -58,8 +56,7 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, char *buf, size_t buflen, pwd->pw_uid = file_uid; pwd->pw_gid = (gid_t)strtoul(gid_str, NULL, 10); - if (pwd->pw_name == NULL || pwd->pw_dir == NULL || - pwd->pw_shell == NULL) { + if (pwd->pw_name == NULL || pwd->pw_dir == NULL || pwd->pw_shell == NULL) { fclose(stream); return ERANGE; } diff --git a/lib/libc/sched/sched_rr_get_interval.c b/lib/libc/sched/sched_rr_get_interval.c index a99f2a3d..b63e0a06 100644 --- a/lib/libc/sched/sched_rr_get_interval.c +++ b/lib/libc/sched/sched_rr_get_interval.c @@ -1,5 +1,6 @@ #include #include +#include int sched_rr_get_interval(pid_t pid, struct timespec *tp) { diff --git a/lib/libc/select/pselect.c b/lib/libc/select/pselect.c index 7ac84ad5..b9d3858f 100644 --- a/lib/libc/select/pselect.c +++ b/lib/libc/select/pselect.c @@ -7,9 +7,8 @@ struct timespec; -int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, - fd_set *restrict errorfds, const struct timespec *restrict timeout, - const sigset_t *restrict sigmask) +int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict errorfds, + const struct timespec *restrict timeout, const sigset_t *restrict sigmask) { return syscall(pselect6, nfds, readfds, writefds, errorfds, timeout, ((syscall_arg_t[]){ (uintptr_t)sigmask, 8 })); diff --git a/lib/libc/select/select.c b/lib/libc/select/select.c index 9a0480c9..9a506640 100644 --- a/lib/libc/select/select.c +++ b/lib/libc/select/select.c @@ -4,9 +4,8 @@ #include // for select #include // for __syscall_6, syscall, syscall_arg_t -int select(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, - fd_set *restrict errorfds, struct timeval *restrict timeout) +int select(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict errorfds, + struct timeval *restrict timeout) { - return syscall(pselect6, nfds, readfds, writefds, errorfds, timeout, - ((syscall_arg_t[]){ 0, 8 })); + return syscall(pselect6, nfds, readfds, writefds, errorfds, timeout, ((syscall_arg_t[]){ 0, 8 })); } diff --git a/lib/libc/sem/semctl.c b/lib/libc/sem/semctl.c index 7b047b62..3ac48b97 100644 --- a/lib/libc/sem/semctl.c +++ b/lib/libc/sem/semctl.c @@ -1,5 +1,3 @@ - - #include // for va_arg, va_end, va_list, va_start #include // for NULL #include // for IPC_SET, IPC_STAT @@ -20,6 +18,8 @@ int semctl(int semid, int semnum, int cmd, ...) va_start(ap, cmd); buf = va_arg(ap, struct semid_ds *); va_end(ap); + default: + break; } return syscall(semctl, semid, semnum, cmd, buf); diff --git a/lib/libc/signal/psignal.c b/lib/libc/signal/psignal.c index fdf0dc94..d8c35bbd 100644 --- a/lib/libc/signal/psignal.c +++ b/lib/libc/signal/psignal.c @@ -4,6 +4,5 @@ void psignal(int signum, const char *message) { - fprintf(stderr, "%s%s%s\n", message ? message : "", message ? ": " : "", - strsignal(signum)); + fprintf(stderr, "%s%s%s\n", message ? message : "", message ? ": " : "", strsignal(signum)); } diff --git a/lib/libc/signal/pthread_sigmask.c b/lib/libc/signal/pthread_sigmask.c index 89c4f0d3..15eacd72 100644 --- a/lib/libc/signal/pthread_sigmask.c +++ b/lib/libc/signal/pthread_sigmask.c @@ -3,7 +3,6 @@ #undef __ASSEMBLY__ #include -#include #include #include diff --git a/lib/libc/signal/sig2str.c b/lib/libc/signal/sig2str.c index eec1c805..52bd3ec2 100644 --- a/lib/libc/signal/sig2str.c +++ b/lib/libc/signal/sig2str.c @@ -6,8 +6,7 @@ int sig2str(int signum, char *str) { if (signum >= SIGHUP && signum <= SIGSYS) { - strlcpy(str, __sys_signame[signum - SIGHUP], - sizeof(__sys_signame[signum - SIGHUP])); + strlcpy(str, __sys_signame[signum - SIGHUP], sizeof(__sys_signame[signum - SIGHUP])); return 0; } @@ -23,11 +22,9 @@ int sig2str(int signum, char *str) if (signum > SIGRTMIN && signum < SIGRTMAX) { if (signum - SIGRTMIN <= SIGRTMAX - signum) { - snprintf(str, sizeof("RTMIN+") + 1, "RTMIN+%d", - signum - SIGRTMIN); + snprintf(str, sizeof("RTMIN+") + 1, "RTMIN+%d", signum - SIGRTMIN); } else { - snprintf(str, sizeof("RTMAX-") + 1, "RTMAX-%d", - SIGRTMAX - signum); + snprintf(str, sizeof("RTMAX-") + 1, "RTMAX-%d", SIGRTMAX - signum); } return 0; } diff --git a/lib/libc/signal/sigabbrev.h b/lib/libc/signal/sigabbrev.h index 4ed6d7d3..b289fa97 100644 --- a/lib/libc/signal/sigabbrev.h +++ b/lib/libc/signal/sigabbrev.h @@ -1,9 +1,8 @@ #include const char *const sys_sigabbrev[64] = { - [SIGABRT] = "ABRT", [SIGALRM] = "ALRM", [SIGBUS] = "BUS", - [SIGCHLD] = "CHLD", [SIGFPE] = "FPE", [SIGHUP] = "HUP", - [SIGILL] = "ILL", [SIGINT] = "INT", [SIGIO] = "IO", + [SIGABRT] = "ABRT", [SIGALRM] = "ALRM", [SIGBUS] = "BUS", [SIGCHLD] = "CHLD", [SIGFPE] = "FPE", + [SIGHUP] = "HUP", [SIGILL] = "ILL", [SIGINT] = "INT", [SIGIO] = "IO", #if defined(SIGIOT) && (SIGIOT != SIGABRT) [SIGIOT] = "IOT", #endif @@ -11,11 +10,8 @@ const char *const sys_sigabbrev[64] = { #if defined(SIGPOLL) && (SIGPOLL != SIGIO) [SIGPOLL] = "POLL", #endif - [SIGPROF] = "PROF", [SIGPWR] = "PWR", [SIGQUIT] = "QUIT", - [SIGSEGV] = "SEGV", [SIGSTKFLT] = "STKFLT", [SIGSTOP] = "STOP", - [SIGSYS] = "SYS", [SIGTERM] = "TERM", [SIGTSTP] = "TSTP", - [SIGTTIN] = "TTIN", [SIGTTOU] = "TTOU", [SIGURG] = "URG", - [SIGUSR1] = "USR1", [SIGUSR2] = "USR2", [SIGVTALRM] = "VTALRM", - [SIGWINCH] = "WINCH", [SIGXCPU] = "XCPU", [SIGXFSZ] = "XFSZ", - [SIGCONT] = "CONT", [SIGTRAP] = "TRAP", + [SIGPROF] = "PROF", [SIGPWR] = "PWR", [SIGQUIT] = "QUIT", [SIGSEGV] = "SEGV", [SIGSTKFLT] = "STKFLT", + [SIGSTOP] = "STOP", [SIGSYS] = "SYS", [SIGTERM] = "TERM", [SIGTSTP] = "TSTP", [SIGTTIN] = "TTIN", + [SIGTTOU] = "TTOU", [SIGURG] = "URG", [SIGUSR1] = "USR1", [SIGUSR2] = "USR2", [SIGVTALRM] = "VTALRM", + [SIGWINCH] = "WINCH", [SIGXCPU] = "XCPU", [SIGXFSZ] = "XFSZ", [SIGCONT] = "CONT", [SIGTRAP] = "TRAP", }; diff --git a/lib/libc/signal/sigaction.c b/lib/libc/signal/sigaction.c index 95f485d3..23231899 100644 --- a/lib/libc/signal/sigaction.c +++ b/lib/libc/signal/sigaction.c @@ -3,8 +3,7 @@ #include // for sigaction, sigset_t #include // for __syscall_4, syscall -int sigaction(int sig, const struct sigaction *restrict act, - struct sigaction *restrict oact) +int sigaction(int sig, const struct sigaction *restrict act, struct sigaction *restrict oact) { return syscall(rt_sigaction, sig, act, oact, sizeof(sigset_t)); } diff --git a/lib/libc/signal/sigtimedwait.c b/lib/libc/signal/sigtimedwait.c index e33743d9..0be3c712 100644 --- a/lib/libc/signal/sigtimedwait.c +++ b/lib/libc/signal/sigtimedwait.c @@ -8,8 +8,7 @@ struct timespec; #define _NSIG 64 -int sigtimedwait(const sigset_t *restrict set, siginfo_t *restrict info, - const struct timespec *restrict timeout) +int sigtimedwait(const sigset_t *restrict set, siginfo_t *restrict info, const struct timespec *restrict timeout) { return syscall(rt_sigtimedwait, set, info, timeout, _NSIG / 8); } diff --git a/lib/libc/socket/accept.c b/lib/libc/socket/accept.c index af897d3c..aeb43619 100644 --- a/lib/libc/socket/accept.c +++ b/lib/libc/socket/accept.c @@ -3,8 +3,7 @@ #include // for accept, socklen_t #include // for __syscall_3, syscall -int accept(int socket, struct sockaddr *restrict address, - socklen_t *restrict address_len) +int accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len) { return syscall(accept, socket, address, address_len); } diff --git a/lib/libc/socket/accept4.c b/lib/libc/socket/accept4.c index 80b05488..25c28c0e 100644 --- a/lib/libc/socket/accept4.c +++ b/lib/libc/socket/accept4.c @@ -3,8 +3,7 @@ #include // for accept4, socklen_t #include // for __syscall_4, syscall -int accept4(int socket, struct sockaddr *restrict address, - socklen_t *restrict address_len, int flag) +int accept4(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len, int flag) { return syscall(accept4, socket, address, address_len, flag); } diff --git a/lib/libc/socket/getpeername.c b/lib/libc/socket/getpeername.c index ed5361b0..36cd852b 100644 --- a/lib/libc/socket/getpeername.c +++ b/lib/libc/socket/getpeername.c @@ -3,8 +3,7 @@ #include // for getpeername, socklen_t #include // for __syscall_3, syscall -int getpeername(int socket, struct sockaddr *restrict address, - socklen_t *restrict address_len) +int getpeername(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len) { return syscall(getpeername, socket, address, address_len); } diff --git a/lib/libc/socket/getsockname.c b/lib/libc/socket/getsockname.c index 3da117cc..c7775b6b 100644 --- a/lib/libc/socket/getsockname.c +++ b/lib/libc/socket/getsockname.c @@ -3,8 +3,7 @@ #include // for getsockname, socklen_t #include // for __syscall_3, syscall -int getsockname(int socket, struct sockaddr *restrict address, - socklen_t *restrict address_len) +int getsockname(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len) { return syscall(getsockname, socket, address, address_len); } diff --git a/lib/libc/socket/getsockopt.c b/lib/libc/socket/getsockopt.c index c2c5f0eb..0e1fc571 100644 --- a/lib/libc/socket/getsockopt.c +++ b/lib/libc/socket/getsockopt.c @@ -3,9 +3,7 @@ #include // for getsockopt, socklen_t #include // for __syscall_5, syscall -int getsockopt(int socket, int level, int option_name, - void *restrict option_value, socklen_t *restrict option_len) +int getsockopt(int socket, int level, int option_name, void *restrict option_value, socklen_t *restrict option_len) { - return syscall(getsockopt, socket, level, option_name, option_value, - option_len); + return syscall(getsockopt, socket, level, option_name, option_value, option_len); } diff --git a/lib/libc/socket/recvfrom.c b/lib/libc/socket/recvfrom.c index d8aff7e1..ed07623e 100644 --- a/lib/libc/socket/recvfrom.c +++ b/lib/libc/socket/recvfrom.c @@ -5,10 +5,8 @@ #include // for size_t, ssize_t #include // for __syscall_6, syscall -ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, - struct sockaddr *restrict address, +ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len) { - return syscall(recvfrom, socket, buffer, length, flags, address, - address_len); + return syscall(recvfrom, socket, buffer, length, flags, address, address_len); } diff --git a/lib/libc/socket/sendto.c b/lib/libc/socket/sendto.c index 6dc4cc66..6c81d8a8 100644 --- a/lib/libc/socket/sendto.c +++ b/lib/libc/socket/sendto.c @@ -5,9 +5,8 @@ #include // for size_t, ssize_t #include // for __syscall_6, syscall -ssize_t sendto(int socket, const void *message, size_t length, int flags, - const struct sockaddr *dest_addr, socklen_t dest_len) +ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *dest_addr, + socklen_t dest_len) { - return syscall(sendto, socket, message, length, flags, dest_addr, - dest_len); + return syscall(sendto, socket, message, length, flags, dest_addr, dest_len); } diff --git a/lib/libc/socket/setsockopt.c b/lib/libc/socket/setsockopt.c index 1a2531a6..1292e335 100644 --- a/lib/libc/socket/setsockopt.c +++ b/lib/libc/socket/setsockopt.c @@ -3,9 +3,7 @@ #include // for setsockopt, socklen_t #include // for __syscall_5, syscall -int setsockopt(int socket, int level, int option_name, const void *option_value, - socklen_t option_len) +int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len) { - return syscall(setsockopt, socket, level, option_name, option_value, - option_len); + return syscall(setsockopt, socket, level, option_name, option_value, option_len); } diff --git a/lib/libc/stat/fstatat.c b/lib/libc/stat/fstatat.c index 746848b7..ed3c0272 100644 --- a/lib/libc/stat/fstatat.c +++ b/lib/libc/stat/fstatat.c @@ -6,13 +6,11 @@ #include // for stat #include // for __syscall_5, syscall -#define makedev(major, minor) \ - ((((major) & 0xfffff000ULL) << 32) | \ - (((major) & 0x00000fffULL) << 8) | \ - (((minor) & 0xffffff00ULL) << 12) | (((minor) & 0x000000ffULL))) +#define makedev(major, minor) \ + ((((major) & 0xfffff000ULL) << 32) | (((major) & 0x00000fffULL) << 8) | (((minor) & 0xffffff00ULL) << 12) | \ + (((minor) & 0x000000ffULL))) -int fstatat(int fd, const char *restrict path, struct stat *restrict buf, - int flag) +int fstatat(int fd, const char *restrict path, struct stat *restrict buf, int flag) { int ret; struct statx stx = { 0 }; @@ -21,15 +19,13 @@ int fstatat(int fd, const char *restrict path, struct stat *restrict buf, if (ret == 0) { if (stx.stx_mask & STATX_BASIC_STATS) { - buf->st_dev = - makedev(stx.stx_dev_major, stx.stx_dev_minor); + buf->st_dev = makedev(stx.stx_dev_major, stx.stx_dev_minor); buf->st_ino = stx.stx_ino; buf->st_mode = stx.stx_mode; buf->st_nlink = stx.stx_nlink; buf->st_uid = stx.stx_uid; buf->st_gid = stx.stx_gid; - buf->st_rdev = - makedev(stx.stx_rdev_major, stx.stx_rdev_minor); + buf->st_rdev = makedev(stx.stx_rdev_major, stx.stx_rdev_minor); buf->st_size = stx.stx_size; buf->st_atim.tv_sec = stx.stx_atime.tv_sec; buf->st_atim.tv_nsec = stx.stx_atime.tv_nsec; diff --git a/lib/libc/stat/utimensat.c b/lib/libc/stat/utimensat.c index aba18657..941eaa74 100644 --- a/lib/libc/stat/utimensat.c +++ b/lib/libc/stat/utimensat.c @@ -3,8 +3,7 @@ #include // for __syscall_4, syscall #include // for timespec -int utimensat(int fd, const char *path, const struct timespec times[2], - int flag) +int utimensat(int fd, const char *path, const struct timespec times[2], int flag) { return syscall(utimensat, fd, path, times, flag); } diff --git a/lib/libc/stdio/clearerr.c b/lib/libc/stdio/clearerr.c index 8389a085..83884f12 100644 --- a/lib/libc/stdio/clearerr.c +++ b/lib/libc/stdio/clearerr.c @@ -1,4 +1,3 @@ -#include <__stdio.h> #include void clearerr(FILE *stream) diff --git a/lib/libc/stdio/clearerr_unlocked.c b/lib/libc/stdio/clearerr_unlocked.c index da4ea106..c6e48c3b 100644 --- a/lib/libc/stdio/clearerr_unlocked.c +++ b/lib/libc/stdio/clearerr_unlocked.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include <__stdio.h> #include diff --git a/lib/libc/stdio/dtoa.c b/lib/libc/stdio/dtoa.c index 0322162b..5c978383 100644 --- a/lib/libc/stdio/dtoa.c +++ b/lib/libc/stdio/dtoa.c @@ -397,870 +397,457 @@ int dtoa_divmax = 2; /* Permit experimenting: on some systems, 64-bit integer */ /* dtoa_divmax <= 27.*/ #endif -typedef struct BF96 { /* Normalized 96-bit software floating point numbers */ +typedef struct BF96 { /* Normalized 96-bit software floating point numbers */ unsigned int b0, b1, b2; /* b0 = most significant, binary point just to its left */ - int e; /* number represented = b * 2^e, with .5 <= b < 1 */ + int e; /* number represented = b * 2^e, with .5 <= b < 1 */ } BF96; -static BF96 pten[667] = { { 0xeef453d6, 0x923bd65a, 0x113faa29, -1136 }, - { 0x9558b466, 0x1b6565f8, 0x4ac7ca59, -1132 }, - { 0xbaaee17f, 0xa23ebf76, 0x5d79bcf0, -1129 }, - { 0xe95a99df, 0x8ace6f53, 0xf4d82c2c, -1126 }, - { 0x91d8a02b, 0xb6c10594, 0x79071b9b, -1122 }, - { 0xb64ec836, 0xa47146f9, 0x9748e282, -1119 }, - { 0xe3e27a44, 0x4d8d98b7, 0xfd1b1b23, -1116 }, - { 0x8e6d8c6a, 0xb0787f72, 0xfe30f0f5, -1112 }, - { 0xb208ef85, 0x5c969f4f, 0xbdbd2d33, -1109 }, - { 0xde8b2b66, 0xb3bc4723, 0xad2c7880, -1106 }, - { 0x8b16fb20, 0x3055ac76, 0x4c3bcb50, -1102 }, - { 0xaddcb9e8, 0x3c6b1793, 0xdf4abe24, -1099 }, - { 0xd953e862, 0x4b85dd78, 0xd71d6dad, -1096 }, - { 0x87d4713d, 0x6f33aa6b, 0x8672648c, -1092 }, - { 0xa9c98d8c, 0xcb009506, 0x680efdaf, -1089 }, - { 0xd43bf0ef, 0xfdc0ba48, 0x0212bd1b, -1086 }, - { 0x84a57695, 0xfe98746d, 0x014bb630, -1082 }, - { 0xa5ced43b, 0x7e3e9188, 0x419ea3bd, -1079 }, - { 0xcf42894a, 0x5dce35ea, 0x52064cac, -1076 }, - { 0x818995ce, 0x7aa0e1b2, 0x7343efeb, -1072 }, - { 0xa1ebfb42, 0x19491a1f, 0x1014ebe6, -1069 }, - { 0xca66fa12, 0x9f9b60a6, 0xd41a26e0, -1066 }, - { 0xfd00b897, 0x478238d0, 0x8920b098, -1063 }, - { 0x9e20735e, 0x8cb16382, 0x55b46e5f, -1059 }, - { 0xc5a89036, 0x2fddbc62, 0xeb2189f7, -1056 }, - { 0xf712b443, 0xbbd52b7b, 0xa5e9ec75, -1053 }, - { 0x9a6bb0aa, 0x55653b2d, 0x47b233c9, -1049 }, - { 0xc1069cd4, 0xeabe89f8, 0x999ec0bb, -1046 }, - { 0xf148440a, 0x256e2c76, 0xc00670ea, -1043 }, - { 0x96cd2a86, 0x5764dbca, 0x38040692, -1039 }, - { 0xbc807527, 0xed3e12bc, 0xc6050837, -1036 }, - { 0xeba09271, 0xe88d976b, 0xf7864a44, -1033 }, - { 0x93445b87, 0x31587ea3, 0x7ab3ee6a, -1029 }, - { 0xb8157268, 0xfdae9e4c, 0x5960ea05, -1026 }, - { 0xe61acf03, 0x3d1a45df, 0x6fb92487, -1023 }, - { 0x8fd0c162, 0x06306bab, 0xa5d3b6d4, -1019 }, - { 0xb3c4f1ba, 0x87bc8696, 0x8f48a489, -1016 }, - { 0xe0b62e29, 0x29aba83c, 0x331acdab, -1013 }, - { 0x8c71dcd9, 0xba0b4925, 0x9ff0c08b, -1009 }, - { 0xaf8e5410, 0x288e1b6f, 0x07ecf0ae, -1006 }, - { 0xdb71e914, 0x32b1a24a, 0xc9e82cd9, -1003 }, - { 0x892731ac, 0x9faf056e, 0xbe311c08, -999 }, - { 0xab70fe17, 0xc79ac6ca, 0x6dbd630a, -996 }, - { 0xd64d3d9d, 0xb981787d, 0x092cbbcc, -993 }, - { 0x85f04682, 0x93f0eb4e, 0x25bbf560, -989 }, - { 0xa76c5823, 0x38ed2621, 0xaf2af2b8, -986 }, - { 0xd1476e2c, 0x07286faa, 0x1af5af66, -983 }, - { 0x82cca4db, 0x847945ca, 0x50d98d9f, -979 }, - { 0xa37fce12, 0x6597973c, 0xe50ff107, -976 }, - { 0xcc5fc196, 0xfefd7d0c, 0x1e53ed49, -973 }, - { 0xff77b1fc, 0xbebcdc4f, 0x25e8e89c, -970 }, - { 0x9faacf3d, 0xf73609b1, 0x77b19161, -966 }, - { 0xc795830d, 0x75038c1d, 0xd59df5b9, -963 }, - { 0xf97ae3d0, 0xd2446f25, 0x4b057328, -960 }, - { 0x9becce62, 0x836ac577, 0x4ee367f9, -956 }, - { 0xc2e801fb, 0x244576d5, 0x229c41f7, -953 }, - { 0xf3a20279, 0xed56d48a, 0x6b435275, -950 }, - { 0x9845418c, 0x345644d6, 0x830a1389, -946 }, - { 0xbe5691ef, 0x416bd60c, 0x23cc986b, -943 }, - { 0xedec366b, 0x11c6cb8f, 0x2cbfbe86, -940 }, - { 0x94b3a202, 0xeb1c3f39, 0x7bf7d714, -936 }, - { 0xb9e08a83, 0xa5e34f07, 0xdaf5ccd9, -933 }, - { 0xe858ad24, 0x8f5c22c9, 0xd1b3400f, -930 }, - { 0x91376c36, 0xd99995be, 0x23100809, -926 }, - { 0xb5854744, 0x8ffffb2d, 0xabd40a0c, -923 }, - { 0xe2e69915, 0xb3fff9f9, 0x16c90c8f, -920 }, - { 0x8dd01fad, 0x907ffc3b, 0xae3da7d9, -916 }, - { 0xb1442798, 0xf49ffb4a, 0x99cd11cf, -913 }, - { 0xdd95317f, 0x31c7fa1d, 0x40405643, -910 }, - { 0x8a7d3eef, 0x7f1cfc52, 0x482835ea, -906 }, - { 0xad1c8eab, 0x5ee43b66, 0xda324365, -903 }, - { 0xd863b256, 0x369d4a40, 0x90bed43e, -900 }, - { 0x873e4f75, 0xe2224e68, 0x5a7744a6, -896 }, - { 0xa90de353, 0x5aaae202, 0x711515d0, -893 }, - { 0xd3515c28, 0x31559a83, 0x0d5a5b44, -890 }, - { 0x8412d999, 0x1ed58091, 0xe858790a, -886 }, - { 0xa5178fff, 0x668ae0b6, 0x626e974d, -883 }, - { 0xce5d73ff, 0x402d98e3, 0xfb0a3d21, -880 }, - { 0x80fa687f, 0x881c7f8e, 0x7ce66634, -876 }, - { 0xa139029f, 0x6a239f72, 0x1c1fffc1, -873 }, - { 0xc9874347, 0x44ac874e, 0xa327ffb2, -870 }, - { 0xfbe91419, 0x15d7a922, 0x4bf1ff9f, -867 }, - { 0x9d71ac8f, 0xada6c9b5, 0x6f773fc3, -863 }, - { 0xc4ce17b3, 0x99107c22, 0xcb550fb4, -860 }, - { 0xf6019da0, 0x7f549b2b, 0x7e2a53a1, -857 }, - { 0x99c10284, 0x4f94e0fb, 0x2eda7444, -853 }, - { 0xc0314325, 0x637a1939, 0xfa911155, -850 }, - { 0xf03d93ee, 0xbc589f88, 0x793555ab, -847 }, - { 0x96267c75, 0x35b763b5, 0x4bc1558b, -843 }, - { 0xbbb01b92, 0x83253ca2, 0x9eb1aaed, -840 }, - { 0xea9c2277, 0x23ee8bcb, 0x465e15a9, -837 }, - { 0x92a1958a, 0x7675175f, 0x0bfacd89, -833 }, - { 0xb749faed, 0x14125d36, 0xcef980ec, -830 }, - { 0xe51c79a8, 0x5916f484, 0x82b7e127, -827 }, - { 0x8f31cc09, 0x37ae58d2, 0xd1b2ecb8, -823 }, - { 0xb2fe3f0b, 0x8599ef07, 0x861fa7e6, -820 }, - { 0xdfbdcece, 0x67006ac9, 0x67a791e0, -817 }, - { 0x8bd6a141, 0x006042bd, 0xe0c8bb2c, -813 }, - { 0xaecc4991, 0x4078536d, 0x58fae9f7, -810 }, - { 0xda7f5bf5, 0x90966848, 0xaf39a475, -807 }, - { 0x888f9979, 0x7a5e012d, 0x6d8406c9, -803 }, - { 0xaab37fd7, 0xd8f58178, 0xc8e5087b, -800 }, - { 0xd5605fcd, 0xcf32e1d6, 0xfb1e4a9a, -797 }, - { 0x855c3be0, 0xa17fcd26, 0x5cf2eea0, -793 }, - { 0xa6b34ad8, 0xc9dfc06f, 0xf42faa48, -790 }, - { 0xd0601d8e, 0xfc57b08b, 0xf13b94da, -787 }, - { 0x823c1279, 0x5db6ce57, 0x76c53d08, -783 }, - { 0xa2cb1717, 0xb52481ed, 0x54768c4b, -780 }, - { 0xcb7ddcdd, 0xa26da268, 0xa9942f5d, -777 }, - { 0xfe5d5415, 0x0b090b02, 0xd3f93b35, -774 }, - { 0x9efa548d, 0x26e5a6e1, 0xc47bc501, -770 }, - { 0xc6b8e9b0, 0x709f109a, 0x359ab641, -767 }, - { 0xf867241c, 0x8cc6d4c0, 0xc30163d2, -764 }, - { 0x9b407691, 0xd7fc44f8, 0x79e0de63, -760 }, - { 0xc2109436, 0x4dfb5636, 0x985915fc, -757 }, - { 0xf294b943, 0xe17a2bc4, 0x3e6f5b7b, -754 }, - { 0x979cf3ca, 0x6cec5b5a, 0xa705992c, -750 }, - { 0xbd8430bd, 0x08277231, 0x50c6ff78, -747 }, - { 0xece53cec, 0x4a314ebd, 0xa4f8bf56, -744 }, - { 0x940f4613, 0xae5ed136, 0x871b7795, -740 }, - { 0xb9131798, 0x99f68584, 0x28e2557b, -737 }, - { 0xe757dd7e, 0xc07426e5, 0x331aeada, -734 }, - { 0x9096ea6f, 0x3848984f, 0x3ff0d2c8, -730 }, - { 0xb4bca50b, 0x065abe63, 0x0fed077a, -727 }, - { 0xe1ebce4d, 0xc7f16dfb, 0xd3e84959, -724 }, - { 0x8d3360f0, 0x9cf6e4bd, 0x64712dd7, -720 }, - { 0xb080392c, 0xc4349dec, 0xbd8d794d, -717 }, - { 0xdca04777, 0xf541c567, 0xecf0d7a0, -714 }, - { 0x89e42caa, 0xf9491b60, 0xf41686c4, -710 }, - { 0xac5d37d5, 0xb79b6239, 0x311c2875, -707 }, - { 0xd77485cb, 0x25823ac7, 0x7d633293, -704 }, - { 0x86a8d39e, 0xf77164bc, 0xae5dff9c, -700 }, - { 0xa8530886, 0xb54dbdeb, 0xd9f57f83, -697 }, - { 0xd267caa8, 0x62a12d66, 0xd072df63, -694 }, - { 0x8380dea9, 0x3da4bc60, 0x4247cb9e, -690 }, - { 0xa4611653, 0x8d0deb78, 0x52d9be85, -687 }, - { 0xcd795be8, 0x70516656, 0x67902e27, -684 }, - { 0x806bd971, 0x4632dff6, 0x00ba1cd8, -680 }, - { 0xa086cfcd, 0x97bf97f3, 0x80e8a40e, -677 }, - { 0xc8a883c0, 0xfdaf7df0, 0x6122cd12, -674 }, - { 0xfad2a4b1, 0x3d1b5d6c, 0x796b8057, -671 }, - { 0x9cc3a6ee, 0xc6311a63, 0xcbe33036, -667 }, - { 0xc3f490aa, 0x77bd60fc, 0xbedbfc44, -664 }, - { 0xf4f1b4d5, 0x15acb93b, 0xee92fb55, -661 }, - { 0x99171105, 0x2d8bf3c5, 0x751bdd15, -657 }, - { 0xbf5cd546, 0x78eef0b6, 0xd262d45a, -654 }, - { 0xef340a98, 0x172aace4, 0x86fb8971, -651 }, - { 0x9580869f, 0x0e7aac0e, 0xd45d35e6, -647 }, - { 0xbae0a846, 0xd2195712, 0x89748360, -644 }, - { 0xe998d258, 0x869facd7, 0x2bd1a438, -641 }, - { 0x91ff8377, 0x5423cc06, 0x7b6306a3, -637 }, - { 0xb67f6455, 0x292cbf08, 0x1a3bc84c, -634 }, - { 0xe41f3d6a, 0x7377eeca, 0x20caba5f, -631 }, - { 0x8e938662, 0x882af53e, 0x547eb47b, -627 }, - { 0xb23867fb, 0x2a35b28d, 0xe99e619a, -624 }, - { 0xdec681f9, 0xf4c31f31, 0x6405fa00, -621 }, - { 0x8b3c113c, 0x38f9f37e, 0xde83bc40, -617 }, - { 0xae0b158b, 0x4738705e, 0x9624ab50, -614 }, - { 0xd98ddaee, 0x19068c76, 0x3badd624, -611 }, - { 0x87f8a8d4, 0xcfa417c9, 0xe54ca5d7, -607 }, - { 0xa9f6d30a, 0x038d1dbc, 0x5e9fcf4c, -604 }, - { 0xd47487cc, 0x8470652b, 0x7647c320, -601 }, - { 0x84c8d4df, 0xd2c63f3b, 0x29ecd9f4, -597 }, - { 0xa5fb0a17, 0xc777cf09, 0xf4681071, -594 }, - { 0xcf79cc9d, 0xb955c2cc, 0x7182148d, -591 }, - { 0x81ac1fe2, 0x93d599bf, 0xc6f14cd8, -587 }, - { 0xa21727db, 0x38cb002f, 0xb8ada00e, -584 }, - { 0xca9cf1d2, 0x06fdc03b, 0xa6d90811, -581 }, - { 0xfd442e46, 0x88bd304a, 0x908f4a16, -578 }, - { 0x9e4a9cec, 0x15763e2e, 0x9a598e4e, -574 }, - { 0xc5dd4427, 0x1ad3cdba, 0x40eff1e1, -571 }, - { 0xf7549530, 0xe188c128, 0xd12bee59, -568 }, - { 0x9a94dd3e, 0x8cf578b9, 0x82bb74f8, -564 }, - { 0xc13a148e, 0x3032d6e7, 0xe36a5236, -561 }, - { 0xf18899b1, 0xbc3f8ca1, 0xdc44e6c3, -558 }, - { 0x96f5600f, 0x15a7b7e5, 0x29ab103a, -554 }, - { 0xbcb2b812, 0xdb11a5de, 0x7415d448, -551 }, - { 0xebdf6617, 0x91d60f56, 0x111b495b, -548 }, - { 0x936b9fce, 0xbb25c995, 0xcab10dd9, -544 }, - { 0xb84687c2, 0x69ef3bfb, 0x3d5d514f, -541 }, - { 0xe65829b3, 0x046b0afa, 0x0cb4a5a3, -538 }, - { 0x8ff71a0f, 0xe2c2e6dc, 0x47f0e785, -534 }, - { 0xb3f4e093, 0xdb73a093, 0x59ed2167, -531 }, - { 0xe0f218b8, 0xd25088b8, 0x306869c1, -528 }, - { 0x8c974f73, 0x83725573, 0x1e414218, -524 }, - { 0xafbd2350, 0x644eeacf, 0xe5d1929e, -521 }, - { 0xdbac6c24, 0x7d62a583, 0xdf45f746, -518 }, - { 0x894bc396, 0xce5da772, 0x6b8bba8c, -514 }, - { 0xab9eb47c, 0x81f5114f, 0x066ea92f, -511 }, - { 0xd686619b, 0xa27255a2, 0xc80a537b, -508 }, - { 0x8613fd01, 0x45877585, 0xbd06742c, -504 }, - { 0xa798fc41, 0x96e952e7, 0x2c481138, -501 }, - { 0xd17f3b51, 0xfca3a7a0, 0xf75a1586, -498 }, - { 0x82ef8513, 0x3de648c4, 0x9a984d73, -494 }, - { 0xa3ab6658, 0x0d5fdaf5, 0xc13e60d0, -491 }, - { 0xcc963fee, 0x10b7d1b3, 0x318df905, -488 }, - { 0xffbbcfe9, 0x94e5c61f, 0xfdf17746, -485 }, - { 0x9fd561f1, 0xfd0f9bd3, 0xfeb6ea8b, -481 }, - { 0xc7caba6e, 0x7c5382c8, 0xfe64a52e, -478 }, - { 0xf9bd690a, 0x1b68637b, 0x3dfdce7a, -475 }, - { 0x9c1661a6, 0x51213e2d, 0x06bea10c, -471 }, - { 0xc31bfa0f, 0xe5698db8, 0x486e494f, -468 }, - { 0xf3e2f893, 0xdec3f126, 0x5a89dba3, -465 }, - { 0x986ddb5c, 0x6b3a76b7, 0xf8962946, -461 }, - { 0xbe895233, 0x86091465, 0xf6bbb397, -458 }, - { 0xee2ba6c0, 0x678b597f, 0x746aa07d, -455 }, - { 0x94db4838, 0x40b717ef, 0xa8c2a44e, -451 }, - { 0xba121a46, 0x50e4ddeb, 0x92f34d62, -448 }, - { 0xe896a0d7, 0xe51e1566, 0x77b020ba, -445 }, - { 0x915e2486, 0xef32cd60, 0x0ace1474, -441 }, - { 0xb5b5ada8, 0xaaff80b8, 0x0d819992, -438 }, - { 0xe3231912, 0xd5bf60e6, 0x10e1fff6, -435 }, - { 0x8df5efab, 0xc5979c8f, 0xca8d3ffa, -431 }, - { 0xb1736b96, 0xb6fd83b3, 0xbd308ff8, -428 }, - { 0xddd0467c, 0x64bce4a0, 0xac7cb3f6, -425 }, - { 0x8aa22c0d, 0xbef60ee4, 0x6bcdf07a, -421 }, - { 0xad4ab711, 0x2eb3929d, 0x86c16c98, -418 }, - { 0xd89d64d5, 0x7a607744, 0xe871c7bf, -415 }, - { 0x87625f05, 0x6c7c4a8b, 0x11471cd7, -411 }, - { 0xa93af6c6, 0xc79b5d2d, 0xd598e40d, -408 }, - { 0xd389b478, 0x79823479, 0x4aff1d10, -405 }, - { 0x843610cb, 0x4bf160cb, 0xcedf722a, -401 }, - { 0xa54394fe, 0x1eedb8fe, 0xc2974eb4, -398 }, - { 0xce947a3d, 0xa6a9273e, 0x733d2262, -395 }, - { 0x811ccc66, 0x8829b887, 0x0806357d, -391 }, - { 0xa163ff80, 0x2a3426a8, 0xca07c2dc, -388 }, - { 0xc9bcff60, 0x34c13052, 0xfc89b393, -385 }, - { 0xfc2c3f38, 0x41f17c67, 0xbbac2078, -382 }, - { 0x9d9ba783, 0x2936edc0, 0xd54b944b, -378 }, - { 0xc5029163, 0xf384a931, 0x0a9e795e, -375 }, - { 0xf64335bc, 0xf065d37d, 0x4d4617b5, -372 }, - { 0x99ea0196, 0x163fa42e, 0x504bced1, -368 }, - { 0xc06481fb, 0x9bcf8d39, 0xe45ec286, -365 }, - { 0xf07da27a, 0x82c37088, 0x5d767327, -362 }, - { 0x964e858c, 0x91ba2655, 0x3a6a07f8, -358 }, - { 0xbbe226ef, 0xb628afea, 0x890489f7, -355 }, - { 0xeadab0ab, 0xa3b2dbe5, 0x2b45ac74, -352 }, - { 0x92c8ae6b, 0x464fc96f, 0x3b0b8bc9, -348 }, - { 0xb77ada06, 0x17e3bbcb, 0x09ce6ebb, -345 }, - { 0xe5599087, 0x9ddcaabd, 0xcc420a6a, -342 }, - { 0x8f57fa54, 0xc2a9eab6, 0x9fa94682, -338 }, - { 0xb32df8e9, 0xf3546564, 0x47939822, -335 }, - { 0xdff97724, 0x70297ebd, 0x59787e2b, -332 }, - { 0x8bfbea76, 0xc619ef36, 0x57eb4edb, -328 }, - { 0xaefae514, 0x77a06b03, 0xede62292, -325 }, - { 0xdab99e59, 0x958885c4, 0xe95fab36, -322 }, - { 0x88b402f7, 0xfd75539b, 0x11dbcb02, -318 }, - { 0xaae103b5, 0xfcd2a881, 0xd652bdc2, -315 }, - { 0xd59944a3, 0x7c0752a2, 0x4be76d33, -312 }, - { 0x857fcae6, 0x2d8493a5, 0x6f70a440, -308 }, - { 0xa6dfbd9f, 0xb8e5b88e, 0xcb4ccd50, -305 }, - { 0xd097ad07, 0xa71f26b2, 0x7e2000a4, -302 }, - { 0x825ecc24, 0xc873782f, 0x8ed40066, -298 }, - { 0xa2f67f2d, 0xfa90563b, 0x72890080, -295 }, - { 0xcbb41ef9, 0x79346bca, 0x4f2b40a0, -292 }, - { 0xfea126b7, 0xd78186bc, 0xe2f610c8, -289 }, - { 0x9f24b832, 0xe6b0f436, 0x0dd9ca7d, -285 }, - { 0xc6ede63f, 0xa05d3143, 0x91503d1c, -282 }, - { 0xf8a95fcf, 0x88747d94, 0x75a44c63, -279 }, - { 0x9b69dbe1, 0xb548ce7c, 0xc986afbe, -275 }, - { 0xc24452da, 0x229b021b, 0xfbe85bad, -272 }, - { 0xf2d56790, 0xab41c2a2, 0xfae27299, -269 }, - { 0x97c560ba, 0x6b0919a5, 0xdccd879f, -265 }, - { 0xbdb6b8e9, 0x05cb600f, 0x5400e987, -262 }, - { 0xed246723, 0x473e3813, 0x290123e9, -259 }, - { 0x9436c076, 0x0c86e30b, 0xf9a0b672, -255 }, - { 0xb9447093, 0x8fa89bce, 0xf808e40e, -252 }, - { 0xe7958cb8, 0x7392c2c2, 0xb60b1d12, -249 }, - { 0x90bd77f3, 0x483bb9b9, 0xb1c6f22b, -245 }, - { 0xb4ecd5f0, 0x1a4aa828, 0x1e38aeb6, -242 }, - { 0xe2280b6c, 0x20dd5232, 0x25c6da63, -239 }, - { 0x8d590723, 0x948a535f, 0x579c487e, -235 }, - { 0xb0af48ec, 0x79ace837, 0x2d835a9d, -232 }, - { 0xdcdb1b27, 0x98182244, 0xf8e43145, -229 }, - { 0x8a08f0f8, 0xbf0f156b, 0x1b8e9ecb, -225 }, - { 0xac8b2d36, 0xeed2dac5, 0xe272467e, -222 }, - { 0xd7adf884, 0xaa879177, 0x5b0ed81d, -219 }, - { 0x86ccbb52, 0xea94baea, 0x98e94712, -215 }, - { 0xa87fea27, 0xa539e9a5, 0x3f2398d7, -212 }, - { 0xd29fe4b1, 0x8e88640e, 0x8eec7f0d, -209 }, - { 0x83a3eeee, 0xf9153e89, 0x1953cf68, -205 }, - { 0xa48ceaaa, 0xb75a8e2b, 0x5fa8c342, -202 }, - { 0xcdb02555, 0x653131b6, 0x3792f412, -199 }, - { 0x808e1755, 0x5f3ebf11, 0xe2bbd88b, -195 }, - { 0xa0b19d2a, 0xb70e6ed6, 0x5b6aceae, -192 }, - { 0xc8de0475, 0x64d20a8b, 0xf245825a, -189 }, - { 0xfb158592, 0xbe068d2e, 0xeed6e2f0, -186 }, - { 0x9ced737b, 0xb6c4183d, 0x55464dd6, -182 }, - { 0xc428d05a, 0xa4751e4c, 0xaa97e14c, -179 }, - { 0xf5330471, 0x4d9265df, 0xd53dd99f, -176 }, - { 0x993fe2c6, 0xd07b7fab, 0xe546a803, -172 }, - { 0xbf8fdb78, 0x849a5f96, 0xde985204, -169 }, - { 0xef73d256, 0xa5c0f77c, 0x963e6685, -166 }, - { 0x95a86376, 0x27989aad, 0xdde70013, -162 }, - { 0xbb127c53, 0xb17ec159, 0x5560c018, -159 }, - { 0xe9d71b68, 0x9dde71af, 0xaab8f01e, -156 }, - { 0x92267121, 0x62ab070d, 0xcab39613, -152 }, - { 0xb6b00d69, 0xbb55c8d1, 0x3d607b97, -149 }, - { 0xe45c10c4, 0x2a2b3b05, 0x8cb89a7d, -146 }, - { 0x8eb98a7a, 0x9a5b04e3, 0x77f3608e, -142 }, - { 0xb267ed19, 0x40f1c61c, 0x55f038b2, -139 }, - { 0xdf01e85f, 0x912e37a3, 0x6b6c46de, -136 }, - { 0x8b61313b, 0xbabce2c6, 0x2323ac4b, -132 }, - { 0xae397d8a, 0xa96c1b77, 0xabec975e, -129 }, - { 0xd9c7dced, 0x53c72255, 0x96e7bd35, -126 }, - { 0x881cea14, 0x545c7575, 0x7e50d641, -122 }, - { 0xaa242499, 0x697392d2, 0xdde50bd1, -119 }, - { 0xd4ad2dbf, 0xc3d07787, 0x955e4ec6, -116 }, - { 0x84ec3c97, 0xda624ab4, 0xbd5af13b, -112 }, - { 0xa6274bbd, 0xd0fadd61, 0xecb1ad8a, -109 }, - { 0xcfb11ead, 0x453994ba, 0x67de18ed, -106 }, - { 0x81ceb32c, 0x4b43fcf4, 0x80eacf94, -102 }, - { 0xa2425ff7, 0x5e14fc31, 0xa1258379, -99 }, - { 0xcad2f7f5, 0x359a3b3e, 0x096ee458, -96 }, - { 0xfd87b5f2, 0x8300ca0d, 0x8bca9d6e, -93 }, - { 0x9e74d1b7, 0x91e07e48, 0x775ea264, -89 }, - { 0xc6120625, 0x76589dda, 0x95364afe, -86 }, - { 0xf79687ae, 0xd3eec551, 0x3a83ddbd, -83 }, - { 0x9abe14cd, 0x44753b52, 0xc4926a96, -79 }, - { 0xc16d9a00, 0x95928a27, 0x75b7053c, -76 }, - { 0xf1c90080, 0xbaf72cb1, 0x5324c68b, -73 }, - { 0x971da050, 0x74da7bee, 0xd3f6fc16, -69 }, - { 0xbce50864, 0x92111aea, 0x88f4bb1c, -66 }, - { 0xec1e4a7d, 0xb69561a5, 0x2b31e9e3, -63 }, - { 0x9392ee8e, 0x921d5d07, 0x3aff322e, -59 }, - { 0xb877aa32, 0x36a4b449, 0x09befeb9, -56 }, - { 0xe69594be, 0xc44de15b, 0x4c2ebe68, -53 }, - { 0x901d7cf7, 0x3ab0acd9, 0x0f9d3701, -49 }, - { 0xb424dc35, 0x095cd80f, 0x538484c1, -46 }, - { 0xe12e1342, 0x4bb40e13, 0x2865a5f2, -43 }, - { 0x8cbccc09, 0x6f5088cb, 0xf93f87b7, -39 }, - { 0xafebff0b, 0xcb24aafe, 0xf78f69a5, -36 }, - { 0xdbe6fece, 0xbdedd5be, 0xb573440e, -33 }, - { 0x89705f41, 0x36b4a597, 0x31680a88, -29 }, - { 0xabcc7711, 0x8461cefc, 0xfdc20d2b, -26 }, - { 0xd6bf94d5, 0xe57a42bc, 0x3d329076, -23 }, - { 0x8637bd05, 0xaf6c69b5, 0xa63f9a49, -19 }, - { 0xa7c5ac47, 0x1b478423, 0x0fcf80dc, -16 }, - { 0xd1b71758, 0xe219652b, 0xd3c36113, -13 }, - { 0x83126e97, 0x8d4fdf3b, 0x645a1cac, -9 }, - { 0xa3d70a3d, 0x70a3d70a, 0x3d70a3d7, -6 }, - { 0xcccccccc, 0xcccccccc, 0xcccccccc, -3 }, - { 0x80000000, 0x00000000, 0x00000000, 1 }, - { 0xa0000000, 0x00000000, 0x00000000, 4 }, - { 0xc8000000, 0x00000000, 0x00000000, 7 }, - { 0xfa000000, 0x00000000, 0x00000000, 10 }, - { 0x9c400000, 0x00000000, 0x00000000, 14 }, - { 0xc3500000, 0x00000000, 0x00000000, 17 }, - { 0xf4240000, 0x00000000, 0x00000000, 20 }, - { 0x98968000, 0x00000000, 0x00000000, 24 }, - { 0xbebc2000, 0x00000000, 0x00000000, 27 }, - { 0xee6b2800, 0x00000000, 0x00000000, 30 }, - { 0x9502f900, 0x00000000, 0x00000000, 34 }, - { 0xba43b740, 0x00000000, 0x00000000, 37 }, - { 0xe8d4a510, 0x00000000, 0x00000000, 40 }, - { 0x9184e72a, 0x00000000, 0x00000000, 44 }, - { 0xb5e620f4, 0x80000000, 0x00000000, 47 }, - { 0xe35fa931, 0xa0000000, 0x00000000, 50 }, - { 0x8e1bc9bf, 0x04000000, 0x00000000, 54 }, - { 0xb1a2bc2e, 0xc5000000, 0x00000000, 57 }, - { 0xde0b6b3a, 0x76400000, 0x00000000, 60 }, - { 0x8ac72304, 0x89e80000, 0x00000000, 64 }, - { 0xad78ebc5, 0xac620000, 0x00000000, 67 }, - { 0xd8d726b7, 0x177a8000, 0x00000000, 70 }, - { 0x87867832, 0x6eac9000, 0x00000000, 74 }, - { 0xa968163f, 0x0a57b400, 0x00000000, 77 }, - { 0xd3c21bce, 0xcceda100, 0x00000000, 80 }, - { 0x84595161, 0x401484a0, 0x00000000, 84 }, - { 0xa56fa5b9, 0x9019a5c8, 0x00000000, 87 }, - { 0xcecb8f27, 0xf4200f3a, 0x00000000, 90 }, - { 0x813f3978, 0xf8940984, 0x40000000, 94 }, - { 0xa18f07d7, 0x36b90be5, 0x50000000, 97 }, - { 0xc9f2c9cd, 0x04674ede, 0xa4000000, 100 }, - { 0xfc6f7c40, 0x45812296, 0x4d000000, 103 }, - { 0x9dc5ada8, 0x2b70b59d, 0xf0200000, 107 }, - { 0xc5371912, 0x364ce305, 0x6c280000, 110 }, - { 0xf684df56, 0xc3e01bc6, 0xc7320000, 113 }, - { 0x9a130b96, 0x3a6c115c, 0x3c7f4000, 117 }, - { 0xc097ce7b, 0xc90715b3, 0x4b9f1000, 120 }, - { 0xf0bdc21a, 0xbb48db20, 0x1e86d400, 123 }, - { 0x96769950, 0xb50d88f4, 0x13144480, 127 }, - { 0xbc143fa4, 0xe250eb31, 0x17d955a0, 130 }, - { 0xeb194f8e, 0x1ae525fd, 0x5dcfab08, 133 }, - { 0x92efd1b8, 0xd0cf37be, 0x5aa1cae5, 137 }, - { 0xb7abc627, 0x050305ad, 0xf14a3d9e, 140 }, - { 0xe596b7b0, 0xc643c719, 0x6d9ccd05, 143 }, - { 0x8f7e32ce, 0x7bea5c6f, 0xe4820023, 147 }, - { 0xb35dbf82, 0x1ae4f38b, 0xdda2802c, 150 }, - { 0xe0352f62, 0xa19e306e, 0xd50b2037, 153 }, - { 0x8c213d9d, 0xa502de45, 0x4526f422, 157 }, - { 0xaf298d05, 0x0e4395d6, 0x9670b12b, 160 }, - { 0xdaf3f046, 0x51d47b4c, 0x3c0cdd76, 163 }, - { 0x88d8762b, 0xf324cd0f, 0xa5880a69, 167 }, - { 0xab0e93b6, 0xefee0053, 0x8eea0d04, 170 }, - { 0xd5d238a4, 0xabe98068, 0x72a49045, 173 }, - { 0x85a36366, 0xeb71f041, 0x47a6da2b, 177 }, - { 0xa70c3c40, 0xa64e6c51, 0x999090b6, 180 }, - { 0xd0cf4b50, 0xcfe20765, 0xfff4b4e3, 183 }, - { 0x82818f12, 0x81ed449f, 0xbff8f10e, 187 }, - { 0xa321f2d7, 0x226895c7, 0xaff72d52, 190 }, - { 0xcbea6f8c, 0xeb02bb39, 0x9bf4f8a6, 193 }, - { 0xfee50b70, 0x25c36a08, 0x02f236d0, 196 }, - { 0x9f4f2726, 0x179a2245, 0x01d76242, 200 }, - { 0xc722f0ef, 0x9d80aad6, 0x424d3ad2, 203 }, - { 0xf8ebad2b, 0x84e0d58b, 0xd2e08987, 206 }, - { 0x9b934c3b, 0x330c8577, 0x63cc55f4, 210 }, - { 0xc2781f49, 0xffcfa6d5, 0x3cbf6b71, 213 }, - { 0xf316271c, 0x7fc3908a, 0x8bef464e, 216 }, - { 0x97edd871, 0xcfda3a56, 0x97758bf0, 220 }, - { 0xbde94e8e, 0x43d0c8ec, 0x3d52eeed, 223 }, - { 0xed63a231, 0xd4c4fb27, 0x4ca7aaa8, 226 }, - { 0x945e455f, 0x24fb1cf8, 0x8fe8caa9, 230 }, - { 0xb975d6b6, 0xee39e436, 0xb3e2fd53, 233 }, - { 0xe7d34c64, 0xa9c85d44, 0x60dbbca8, 236 }, - { 0x90e40fbe, 0xea1d3a4a, 0xbc8955e9, 240 }, - { 0xb51d13ae, 0xa4a488dd, 0x6babab63, 243 }, - { 0xe264589a, 0x4dcdab14, 0xc696963c, 246 }, - { 0x8d7eb760, 0x70a08aec, 0xfc1e1de5, 250 }, - { 0xb0de6538, 0x8cc8ada8, 0x3b25a55f, 253 }, - { 0xdd15fe86, 0xaffad912, 0x49ef0eb7, 256 }, - { 0x8a2dbf14, 0x2dfcc7ab, 0x6e356932, 260 }, - { 0xacb92ed9, 0x397bf996, 0x49c2c37f, 263 }, - { 0xd7e77a8f, 0x87daf7fb, 0xdc33745e, 266 }, - { 0x86f0ac99, 0xb4e8dafd, 0x69a028bb, 270 }, - { 0xa8acd7c0, 0x222311bc, 0xc40832ea, 273 }, - { 0xd2d80db0, 0x2aabd62b, 0xf50a3fa4, 276 }, - { 0x83c7088e, 0x1aab65db, 0x792667c6, 280 }, - { 0xa4b8cab1, 0xa1563f52, 0x577001b8, 283 }, - { 0xcde6fd5e, 0x09abcf26, 0xed4c0226, 286 }, - { 0x80b05e5a, 0xc60b6178, 0x544f8158, 290 }, - { 0xa0dc75f1, 0x778e39d6, 0x696361ae, 293 }, - { 0xc913936d, 0xd571c84c, 0x03bc3a19, 296 }, - { 0xfb587849, 0x4ace3a5f, 0x04ab48a0, 299 }, - { 0x9d174b2d, 0xcec0e47b, 0x62eb0d64, 303 }, - { 0xc45d1df9, 0x42711d9a, 0x3ba5d0bd, 306 }, - { 0xf5746577, 0x930d6500, 0xca8f44ec, 309 }, - { 0x9968bf6a, 0xbbe85f20, 0x7e998b13, 313 }, - { 0xbfc2ef45, 0x6ae276e8, 0x9e3fedd8, 316 }, - { 0xefb3ab16, 0xc59b14a2, 0xc5cfe94e, 319 }, - { 0x95d04aee, 0x3b80ece5, 0xbba1f1d1, 323 }, - { 0xbb445da9, 0xca61281f, 0x2a8a6e45, 326 }, - { 0xea157514, 0x3cf97226, 0xf52d09d7, 329 }, - { 0x924d692c, 0xa61be758, 0x593c2626, 333 }, - { 0xb6e0c377, 0xcfa2e12e, 0x6f8b2fb0, 336 }, - { 0xe498f455, 0xc38b997a, 0x0b6dfb9c, 339 }, - { 0x8edf98b5, 0x9a373fec, 0x4724bd41, 343 }, - { 0xb2977ee3, 0x00c50fe7, 0x58edec91, 346 }, - { 0xdf3d5e9b, 0xc0f653e1, 0x2f2967b6, 349 }, - { 0x8b865b21, 0x5899f46c, 0xbd79e0d2, 353 }, - { 0xae67f1e9, 0xaec07187, 0xecd85906, 356 }, - { 0xda01ee64, 0x1a708de9, 0xe80e6f48, 359 }, - { 0x884134fe, 0x908658b2, 0x3109058d, 363 }, - { 0xaa51823e, 0x34a7eede, 0xbd4b46f0, 366 }, - { 0xd4e5e2cd, 0xc1d1ea96, 0x6c9e18ac, 369 }, - { 0x850fadc0, 0x9923329e, 0x03e2cf6b, 373 }, - { 0xa6539930, 0xbf6bff45, 0x84db8346, 376 }, - { 0xcfe87f7c, 0xef46ff16, 0xe6126418, 379 }, - { 0x81f14fae, 0x158c5f6e, 0x4fcb7e8f, 383 }, - { 0xa26da399, 0x9aef7749, 0xe3be5e33, 386 }, - { 0xcb090c80, 0x01ab551c, 0x5cadf5bf, 389 }, - { 0xfdcb4fa0, 0x02162a63, 0x73d9732f, 392 }, - { 0x9e9f11c4, 0x014dda7e, 0x2867e7fd, 396 }, - { 0xc646d635, 0x01a1511d, 0xb281e1fd, 399 }, - { 0xf7d88bc2, 0x4209a565, 0x1f225a7c, 402 }, - { 0x9ae75759, 0x6946075f, 0x3375788d, 406 }, - { 0xc1a12d2f, 0xc3978937, 0x0052d6b1, 409 }, - { 0xf209787b, 0xb47d6b84, 0xc0678c5d, 412 }, - { 0x9745eb4d, 0x50ce6332, 0xf840b7ba, 416 }, - { 0xbd176620, 0xa501fbff, 0xb650e5a9, 419 }, - { 0xec5d3fa8, 0xce427aff, 0xa3e51f13, 422 }, - { 0x93ba47c9, 0x80e98cdf, 0xc66f336c, 426 }, - { 0xb8a8d9bb, 0xe123f017, 0xb80b0047, 429 }, - { 0xe6d3102a, 0xd96cec1d, 0xa60dc059, 432 }, - { 0x9043ea1a, 0xc7e41392, 0x87c89837, 436 }, - { 0xb454e4a1, 0x79dd1877, 0x29babe45, 439 }, - { 0xe16a1dc9, 0xd8545e94, 0xf4296dd6, 442 }, - { 0x8ce2529e, 0x2734bb1d, 0x1899e4a6, 446 }, - { 0xb01ae745, 0xb101e9e4, 0x5ec05dcf, 449 }, - { 0xdc21a117, 0x1d42645d, 0x76707543, 452 }, - { 0x899504ae, 0x72497eba, 0x6a06494a, 456 }, - { 0xabfa45da, 0x0edbde69, 0x0487db9d, 459 }, - { 0xd6f8d750, 0x9292d603, 0x45a9d284, 462 }, - { 0x865b8692, 0x5b9bc5c2, 0x0b8a2392, 466 }, - { 0xa7f26836, 0xf282b732, 0x8e6cac77, 469 }, - { 0xd1ef0244, 0xaf2364ff, 0x3207d795, 472 }, - { 0x8335616a, 0xed761f1f, 0x7f44e6bd, 476 }, - { 0xa402b9c5, 0xa8d3a6e7, 0x5f16206c, 479 }, - { 0xcd036837, 0x130890a1, 0x36dba887, 482 }, - { 0x80222122, 0x6be55a64, 0xc2494954, 486 }, - { 0xa02aa96b, 0x06deb0fd, 0xf2db9baa, 489 }, - { 0xc83553c5, 0xc8965d3d, 0x6f928294, 492 }, - { 0xfa42a8b7, 0x3abbf48c, 0xcb772339, 495 }, - { 0x9c69a972, 0x84b578d7, 0xff2a7604, 499 }, - { 0xc38413cf, 0x25e2d70d, 0xfef51385, 502 }, - { 0xf46518c2, 0xef5b8cd1, 0x7eb25866, 505 }, - { 0x98bf2f79, 0xd5993802, 0xef2f773f, 509 }, - { 0xbeeefb58, 0x4aff8603, 0xaafb550f, 512 }, - { 0xeeaaba2e, 0x5dbf6784, 0x95ba2a53, 515 }, - { 0x952ab45c, 0xfa97a0b2, 0xdd945a74, 519 }, - { 0xba756174, 0x393d88df, 0x94f97111, 522 }, - { 0xe912b9d1, 0x478ceb17, 0x7a37cd56, 525 }, - { 0x91abb422, 0xccb812ee, 0xac62e055, 529 }, - { 0xb616a12b, 0x7fe617aa, 0x577b986b, 532 }, - { 0xe39c4976, 0x5fdf9d94, 0xed5a7e85, 535 }, - { 0x8e41ade9, 0xfbebc27d, 0x14588f13, 539 }, - { 0xb1d21964, 0x7ae6b31c, 0x596eb2d8, 542 }, - { 0xde469fbd, 0x99a05fe3, 0x6fca5f8e, 545 }, - { 0x8aec23d6, 0x80043bee, 0x25de7bb9, 549 }, - { 0xada72ccc, 0x20054ae9, 0xaf561aa7, 552 }, - { 0xd910f7ff, 0x28069da4, 0x1b2ba151, 555 }, - { 0x87aa9aff, 0x79042286, 0x90fb44d2, 559 }, - { 0xa99541bf, 0x57452b28, 0x353a1607, 562 }, - { 0xd3fa922f, 0x2d1675f2, 0x42889b89, 565 }, - { 0x847c9b5d, 0x7c2e09b7, 0x69956135, 569 }, - { 0xa59bc234, 0xdb398c25, 0x43fab983, 572 }, - { 0xcf02b2c2, 0x1207ef2e, 0x94f967e4, 575 }, - { 0x8161afb9, 0x4b44f57d, 0x1d1be0ee, 579 }, - { 0xa1ba1ba7, 0x9e1632dc, 0x6462d92a, 582 }, - { 0xca28a291, 0x859bbf93, 0x7d7b8f75, 585 }, - { 0xfcb2cb35, 0xe702af78, 0x5cda7352, 588 }, - { 0x9defbf01, 0xb061adab, 0x3a088813, 592 }, - { 0xc56baec2, 0x1c7a1916, 0x088aaa18, 595 }, - { 0xf6c69a72, 0xa3989f5b, 0x8aad549e, 598 }, - { 0x9a3c2087, 0xa63f6399, 0x36ac54e2, 602 }, - { 0xc0cb28a9, 0x8fcf3c7f, 0x84576a1b, 605 }, - { 0xf0fdf2d3, 0xf3c30b9f, 0x656d44a2, 608 }, - { 0x969eb7c4, 0x7859e743, 0x9f644ae5, 612 }, - { 0xbc4665b5, 0x96706114, 0x873d5d9f, 615 }, - { 0xeb57ff22, 0xfc0c7959, 0xa90cb506, 618 }, - { 0x9316ff75, 0xdd87cbd8, 0x09a7f124, 622 }, - { 0xb7dcbf53, 0x54e9bece, 0x0c11ed6d, 625 }, - { 0xe5d3ef28, 0x2a242e81, 0x8f1668c8, 628 }, - { 0x8fa47579, 0x1a569d10, 0xf96e017d, 632 }, - { 0xb38d92d7, 0x60ec4455, 0x37c981dc, 635 }, - { 0xe070f78d, 0x3927556a, 0x85bbe253, 638 }, - { 0x8c469ab8, 0x43b89562, 0x93956d74, 642 }, - { 0xaf584166, 0x54a6babb, 0x387ac8d1, 645 }, - { 0xdb2e51bf, 0xe9d0696a, 0x06997b05, 648 }, - { 0x88fcf317, 0xf22241e2, 0x441fece3, 652 }, - { 0xab3c2fdd, 0xeeaad25a, 0xd527e81c, 655 }, - { 0xd60b3bd5, 0x6a5586f1, 0x8a71e223, 658 }, - { 0x85c70565, 0x62757456, 0xf6872d56, 662 }, - { 0xa738c6be, 0xbb12d16c, 0xb428f8ac, 665 }, - { 0xd106f86e, 0x69d785c7, 0xe13336d7, 668 }, - { 0x82a45b45, 0x0226b39c, 0xecc00246, 672 }, - { 0xa34d7216, 0x42b06084, 0x27f002d7, 675 }, - { 0xcc20ce9b, 0xd35c78a5, 0x31ec038d, 678 }, - { 0xff290242, 0xc83396ce, 0x7e670471, 681 }, - { 0x9f79a169, 0xbd203e41, 0x0f0062c6, 685 }, - { 0xc75809c4, 0x2c684dd1, 0x52c07b78, 688 }, - { 0xf92e0c35, 0x37826145, 0xa7709a56, 691 }, - { 0x9bbcc7a1, 0x42b17ccb, 0x88a66076, 695 }, - { 0xc2abf989, 0x935ddbfe, 0x6acff893, 698 }, - { 0xf356f7eb, 0xf83552fe, 0x0583f6b8, 701 }, - { 0x98165af3, 0x7b2153de, 0xc3727a33, 705 }, - { 0xbe1bf1b0, 0x59e9a8d6, 0x744f18c0, 708 }, - { 0xeda2ee1c, 0x7064130c, 0x1162def0, 711 }, - { 0x9485d4d1, 0xc63e8be7, 0x8addcb56, 715 }, - { 0xb9a74a06, 0x37ce2ee1, 0x6d953e2b, 718 }, - { 0xe8111c87, 0xc5c1ba99, 0xc8fa8db6, 721 }, - { 0x910ab1d4, 0xdb9914a0, 0x1d9c9892, 725 }, - { 0xb54d5e4a, 0x127f59c8, 0x2503beb6, 728 }, - { 0xe2a0b5dc, 0x971f303a, 0x2e44ae64, 731 }, - { 0x8da471a9, 0xde737e24, 0x5ceaecfe, 735 }, - { 0xb10d8e14, 0x56105dad, 0x7425a83e, 738 }, - { 0xdd50f199, 0x6b947518, 0xd12f124e, 741 }, - { 0x8a5296ff, 0xe33cc92f, 0x82bd6b70, 745 }, - { 0xace73cbf, 0xdc0bfb7b, 0x636cc64d, 748 }, - { 0xd8210bef, 0xd30efa5a, 0x3c47f7e0, 751 }, - { 0x8714a775, 0xe3e95c78, 0x65acfaec, 755 }, - { 0xa8d9d153, 0x5ce3b396, 0x7f1839a7, 758 }, - { 0xd31045a8, 0x341ca07c, 0x1ede4811, 761 }, - { 0x83ea2b89, 0x2091e44d, 0x934aed0a, 765 }, - { 0xa4e4b66b, 0x68b65d60, 0xf81da84d, 768 }, - { 0xce1de406, 0x42e3f4b9, 0x36251260, 771 }, - { 0x80d2ae83, 0xe9ce78f3, 0xc1d72b7c, 775 }, - { 0xa1075a24, 0xe4421730, 0xb24cf65b, 778 }, - { 0xc94930ae, 0x1d529cfc, 0xdee033f2, 781 }, - { 0xfb9b7cd9, 0xa4a7443c, 0x169840ef, 784 }, - { 0x9d412e08, 0x06e88aa5, 0x8e1f2895, 788 }, - { 0xc491798a, 0x08a2ad4e, 0xf1a6f2ba, 791 }, - { 0xf5b5d7ec, 0x8acb58a2, 0xae10af69, 794 }, - { 0x9991a6f3, 0xd6bf1765, 0xacca6da1, 798 }, - { 0xbff610b0, 0xcc6edd3f, 0x17fd090a, 801 }, - { 0xeff394dc, 0xff8a948e, 0xddfc4b4c, 804 }, - { 0x95f83d0a, 0x1fb69cd9, 0x4abdaf10, 808 }, - { 0xbb764c4c, 0xa7a4440f, 0x9d6d1ad4, 811 }, - { 0xea53df5f, 0xd18d5513, 0x84c86189, 814 }, - { 0x92746b9b, 0xe2f8552c, 0x32fd3cf5, 818 }, - { 0xb7118682, 0xdbb66a77, 0x3fbc8c33, 821 }, - { 0xe4d5e823, 0x92a40515, 0x0fabaf3f, 824 }, - { 0x8f05b116, 0x3ba6832d, 0x29cb4d87, 828 }, - { 0xb2c71d5b, 0xca9023f8, 0x743e20e9, 831 }, - { 0xdf78e4b2, 0xbd342cf6, 0x914da924, 834 }, - { 0x8bab8eef, 0xb6409c1a, 0x1ad089b6, 838 }, - { 0xae9672ab, 0xa3d0c320, 0xa184ac24, 841 }, - { 0xda3c0f56, 0x8cc4f3e8, 0xc9e5d72d, 844 }, - { 0x88658996, 0x17fb1871, 0x7e2fa67c, 848 }, - { 0xaa7eebfb, 0x9df9de8d, 0xddbb901b, 851 }, - { 0xd51ea6fa, 0x85785631, 0x552a7422, 854 }, - { 0x8533285c, 0x936b35de, 0xd53a8895, 858 }, - { 0xa67ff273, 0xb8460356, 0x8a892aba, 861 }, - { 0xd01fef10, 0xa657842c, 0x2d2b7569, 864 }, - { 0x8213f56a, 0x67f6b29b, 0x9c3b2962, 868 }, - { 0xa298f2c5, 0x01f45f42, 0x8349f3ba, 871 }, - { 0xcb3f2f76, 0x42717713, 0x241c70a9, 874 }, - { 0xfe0efb53, 0xd30dd4d7, 0xed238cd3, 877 }, - { 0x9ec95d14, 0x63e8a506, 0xf4363804, 881 }, - { 0xc67bb459, 0x7ce2ce48, 0xb143c605, 884 }, - { 0xf81aa16f, 0xdc1b81da, 0xdd94b786, 887 }, - { 0x9b10a4e5, 0xe9913128, 0xca7cf2b4, 891 }, - { 0xc1d4ce1f, 0x63f57d72, 0xfd1c2f61, 894 }, - { 0xf24a01a7, 0x3cf2dccf, 0xbc633b39, 897 }, - { 0x976e4108, 0x8617ca01, 0xd5be0503, 901 }, - { 0xbd49d14a, 0xa79dbc82, 0x4b2d8644, 904 }, - { 0xec9c459d, 0x51852ba2, 0xddf8e7d6, 907 }, - { 0x93e1ab82, 0x52f33b45, 0xcabb90e5, 911 }, - { 0xb8da1662, 0xe7b00a17, 0x3d6a751f, 914 }, - { 0xe7109bfb, 0xa19c0c9d, 0x0cc51267, 917 }, - { 0x906a617d, 0x450187e2, 0x27fb2b80, 921 }, - { 0xb484f9dc, 0x9641e9da, 0xb1f9f660, 924 }, - { 0xe1a63853, 0xbbd26451, 0x5e7873f8, 927 }, - { 0x8d07e334, 0x55637eb2, 0xdb0b487b, 931 }, - { 0xb049dc01, 0x6abc5e5f, 0x91ce1a9a, 934 }, - { 0xdc5c5301, 0xc56b75f7, 0x7641a140, 937 }, - { 0x89b9b3e1, 0x1b6329ba, 0xa9e904c8, 941 }, - { 0xac2820d9, 0x623bf429, 0x546345fa, 944 }, - { 0xd732290f, 0xbacaf133, 0xa97c1779, 947 }, - { 0x867f59a9, 0xd4bed6c0, 0x49ed8eab, 951 }, - { 0xa81f3014, 0x49ee8c70, 0x5c68f256, 954 }, - { 0xd226fc19, 0x5c6a2f8c, 0x73832eec, 957 }, - { 0x83585d8f, 0xd9c25db7, 0xc831fd53, 961 }, - { 0xa42e74f3, 0xd032f525, 0xba3e7ca8, 964 }, - { 0xcd3a1230, 0xc43fb26f, 0x28ce1bd2, 967 }, - { 0x80444b5e, 0x7aa7cf85, 0x7980d163, 971 }, - { 0xa0555e36, 0x1951c366, 0xd7e105bc, 974 }, - { 0xc86ab5c3, 0x9fa63440, 0x8dd9472b, 977 }, - { 0xfa856334, 0x878fc150, 0xb14f98f6, 980 }, - { 0x9c935e00, 0xd4b9d8d2, 0x6ed1bf9a, 984 }, - { 0xc3b83581, 0x09e84f07, 0x0a862f80, 987 }, - { 0xf4a642e1, 0x4c6262c8, 0xcd27bb61, 990 }, - { 0x98e7e9cc, 0xcfbd7dbd, 0x8038d51c, 994 }, - { 0xbf21e440, 0x03acdd2c, 0xe0470a63, 997 }, - { 0xeeea5d50, 0x04981478, 0x1858ccfc, 1000 }, - { 0x95527a52, 0x02df0ccb, 0x0f37801e, 1004 }, - { 0xbaa718e6, 0x8396cffd, 0xd3056025, 1007 }, - { 0xe950df20, 0x247c83fd, 0x47c6b82e, 1010 }, - { 0x91d28b74, 0x16cdd27e, 0x4cdc331d, 1014 }, - { 0xb6472e51, 0x1c81471d, 0xe0133fe4, 1017 }, - { 0xe3d8f9e5, 0x63a198e5, 0x58180fdd, 1020 }, - { 0x8e679c2f, 0x5e44ff8f, 0x570f09ea, 1024 }, - { 0xb201833b, 0x35d63f73, 0x2cd2cc65, 1027 }, - { 0xde81e40a, 0x034bcf4f, 0xf8077f7e, 1030 }, - { 0x8b112e86, 0x420f6191, 0xfb04afaf, 1034 }, - { 0xadd57a27, 0xd29339f6, 0x79c5db9a, 1037 }, - { 0xd94ad8b1, 0xc7380874, 0x18375281, 1040 }, - { 0x87cec76f, 0x1c830548, 0x8f229391, 1044 }, - { 0xa9c2794a, 0xe3a3c69a, 0xb2eb3875, 1047 }, - { 0xd433179d, 0x9c8cb841, 0x5fa60692, 1050 }, - { 0x849feec2, 0x81d7f328, 0xdbc7c41b, 1054 }, - { 0xa5c7ea73, 0x224deff3, 0x12b9b522, 1057 }, - { 0xcf39e50f, 0xeae16bef, 0xd768226b, 1060 }, - { 0x81842f29, 0xf2cce375, 0xe6a11583, 1064 }, - { 0xa1e53af4, 0x6f801c53, 0x60495ae3, 1067 }, - { 0xca5e89b1, 0x8b602368, 0x385bb19c, 1070 }, - { 0xfcf62c1d, 0xee382c42, 0x46729e03, 1073 }, +static BF96 pten[667] = { { 0xeef453d6, 0x923bd65a, 0x113faa29, -1136 }, { 0x9558b466, 0x1b6565f8, 0x4ac7ca59, -1132 }, + { 0xbaaee17f, 0xa23ebf76, 0x5d79bcf0, -1129 }, { 0xe95a99df, 0x8ace6f53, 0xf4d82c2c, -1126 }, + { 0x91d8a02b, 0xb6c10594, 0x79071b9b, -1122 }, { 0xb64ec836, 0xa47146f9, 0x9748e282, -1119 }, + { 0xe3e27a44, 0x4d8d98b7, 0xfd1b1b23, -1116 }, { 0x8e6d8c6a, 0xb0787f72, 0xfe30f0f5, -1112 }, + { 0xb208ef85, 0x5c969f4f, 0xbdbd2d33, -1109 }, { 0xde8b2b66, 0xb3bc4723, 0xad2c7880, -1106 }, + { 0x8b16fb20, 0x3055ac76, 0x4c3bcb50, -1102 }, { 0xaddcb9e8, 0x3c6b1793, 0xdf4abe24, -1099 }, + { 0xd953e862, 0x4b85dd78, 0xd71d6dad, -1096 }, { 0x87d4713d, 0x6f33aa6b, 0x8672648c, -1092 }, + { 0xa9c98d8c, 0xcb009506, 0x680efdaf, -1089 }, { 0xd43bf0ef, 0xfdc0ba48, 0x0212bd1b, -1086 }, + { 0x84a57695, 0xfe98746d, 0x014bb630, -1082 }, { 0xa5ced43b, 0x7e3e9188, 0x419ea3bd, -1079 }, + { 0xcf42894a, 0x5dce35ea, 0x52064cac, -1076 }, { 0x818995ce, 0x7aa0e1b2, 0x7343efeb, -1072 }, + { 0xa1ebfb42, 0x19491a1f, 0x1014ebe6, -1069 }, { 0xca66fa12, 0x9f9b60a6, 0xd41a26e0, -1066 }, + { 0xfd00b897, 0x478238d0, 0x8920b098, -1063 }, { 0x9e20735e, 0x8cb16382, 0x55b46e5f, -1059 }, + { 0xc5a89036, 0x2fddbc62, 0xeb2189f7, -1056 }, { 0xf712b443, 0xbbd52b7b, 0xa5e9ec75, -1053 }, + { 0x9a6bb0aa, 0x55653b2d, 0x47b233c9, -1049 }, { 0xc1069cd4, 0xeabe89f8, 0x999ec0bb, -1046 }, + { 0xf148440a, 0x256e2c76, 0xc00670ea, -1043 }, { 0x96cd2a86, 0x5764dbca, 0x38040692, -1039 }, + { 0xbc807527, 0xed3e12bc, 0xc6050837, -1036 }, { 0xeba09271, 0xe88d976b, 0xf7864a44, -1033 }, + { 0x93445b87, 0x31587ea3, 0x7ab3ee6a, -1029 }, { 0xb8157268, 0xfdae9e4c, 0x5960ea05, -1026 }, + { 0xe61acf03, 0x3d1a45df, 0x6fb92487, -1023 }, { 0x8fd0c162, 0x06306bab, 0xa5d3b6d4, -1019 }, + { 0xb3c4f1ba, 0x87bc8696, 0x8f48a489, -1016 }, { 0xe0b62e29, 0x29aba83c, 0x331acdab, -1013 }, + { 0x8c71dcd9, 0xba0b4925, 0x9ff0c08b, -1009 }, { 0xaf8e5410, 0x288e1b6f, 0x07ecf0ae, -1006 }, + { 0xdb71e914, 0x32b1a24a, 0xc9e82cd9, -1003 }, { 0x892731ac, 0x9faf056e, 0xbe311c08, -999 }, + { 0xab70fe17, 0xc79ac6ca, 0x6dbd630a, -996 }, { 0xd64d3d9d, 0xb981787d, 0x092cbbcc, -993 }, + { 0x85f04682, 0x93f0eb4e, 0x25bbf560, -989 }, { 0xa76c5823, 0x38ed2621, 0xaf2af2b8, -986 }, + { 0xd1476e2c, 0x07286faa, 0x1af5af66, -983 }, { 0x82cca4db, 0x847945ca, 0x50d98d9f, -979 }, + { 0xa37fce12, 0x6597973c, 0xe50ff107, -976 }, { 0xcc5fc196, 0xfefd7d0c, 0x1e53ed49, -973 }, + { 0xff77b1fc, 0xbebcdc4f, 0x25e8e89c, -970 }, { 0x9faacf3d, 0xf73609b1, 0x77b19161, -966 }, + { 0xc795830d, 0x75038c1d, 0xd59df5b9, -963 }, { 0xf97ae3d0, 0xd2446f25, 0x4b057328, -960 }, + { 0x9becce62, 0x836ac577, 0x4ee367f9, -956 }, { 0xc2e801fb, 0x244576d5, 0x229c41f7, -953 }, + { 0xf3a20279, 0xed56d48a, 0x6b435275, -950 }, { 0x9845418c, 0x345644d6, 0x830a1389, -946 }, + { 0xbe5691ef, 0x416bd60c, 0x23cc986b, -943 }, { 0xedec366b, 0x11c6cb8f, 0x2cbfbe86, -940 }, + { 0x94b3a202, 0xeb1c3f39, 0x7bf7d714, -936 }, { 0xb9e08a83, 0xa5e34f07, 0xdaf5ccd9, -933 }, + { 0xe858ad24, 0x8f5c22c9, 0xd1b3400f, -930 }, { 0x91376c36, 0xd99995be, 0x23100809, -926 }, + { 0xb5854744, 0x8ffffb2d, 0xabd40a0c, -923 }, { 0xe2e69915, 0xb3fff9f9, 0x16c90c8f, -920 }, + { 0x8dd01fad, 0x907ffc3b, 0xae3da7d9, -916 }, { 0xb1442798, 0xf49ffb4a, 0x99cd11cf, -913 }, + { 0xdd95317f, 0x31c7fa1d, 0x40405643, -910 }, { 0x8a7d3eef, 0x7f1cfc52, 0x482835ea, -906 }, + { 0xad1c8eab, 0x5ee43b66, 0xda324365, -903 }, { 0xd863b256, 0x369d4a40, 0x90bed43e, -900 }, + { 0x873e4f75, 0xe2224e68, 0x5a7744a6, -896 }, { 0xa90de353, 0x5aaae202, 0x711515d0, -893 }, + { 0xd3515c28, 0x31559a83, 0x0d5a5b44, -890 }, { 0x8412d999, 0x1ed58091, 0xe858790a, -886 }, + { 0xa5178fff, 0x668ae0b6, 0x626e974d, -883 }, { 0xce5d73ff, 0x402d98e3, 0xfb0a3d21, -880 }, + { 0x80fa687f, 0x881c7f8e, 0x7ce66634, -876 }, { 0xa139029f, 0x6a239f72, 0x1c1fffc1, -873 }, + { 0xc9874347, 0x44ac874e, 0xa327ffb2, -870 }, { 0xfbe91419, 0x15d7a922, 0x4bf1ff9f, -867 }, + { 0x9d71ac8f, 0xada6c9b5, 0x6f773fc3, -863 }, { 0xc4ce17b3, 0x99107c22, 0xcb550fb4, -860 }, + { 0xf6019da0, 0x7f549b2b, 0x7e2a53a1, -857 }, { 0x99c10284, 0x4f94e0fb, 0x2eda7444, -853 }, + { 0xc0314325, 0x637a1939, 0xfa911155, -850 }, { 0xf03d93ee, 0xbc589f88, 0x793555ab, -847 }, + { 0x96267c75, 0x35b763b5, 0x4bc1558b, -843 }, { 0xbbb01b92, 0x83253ca2, 0x9eb1aaed, -840 }, + { 0xea9c2277, 0x23ee8bcb, 0x465e15a9, -837 }, { 0x92a1958a, 0x7675175f, 0x0bfacd89, -833 }, + { 0xb749faed, 0x14125d36, 0xcef980ec, -830 }, { 0xe51c79a8, 0x5916f484, 0x82b7e127, -827 }, + { 0x8f31cc09, 0x37ae58d2, 0xd1b2ecb8, -823 }, { 0xb2fe3f0b, 0x8599ef07, 0x861fa7e6, -820 }, + { 0xdfbdcece, 0x67006ac9, 0x67a791e0, -817 }, { 0x8bd6a141, 0x006042bd, 0xe0c8bb2c, -813 }, + { 0xaecc4991, 0x4078536d, 0x58fae9f7, -810 }, { 0xda7f5bf5, 0x90966848, 0xaf39a475, -807 }, + { 0x888f9979, 0x7a5e012d, 0x6d8406c9, -803 }, { 0xaab37fd7, 0xd8f58178, 0xc8e5087b, -800 }, + { 0xd5605fcd, 0xcf32e1d6, 0xfb1e4a9a, -797 }, { 0x855c3be0, 0xa17fcd26, 0x5cf2eea0, -793 }, + { 0xa6b34ad8, 0xc9dfc06f, 0xf42faa48, -790 }, { 0xd0601d8e, 0xfc57b08b, 0xf13b94da, -787 }, + { 0x823c1279, 0x5db6ce57, 0x76c53d08, -783 }, { 0xa2cb1717, 0xb52481ed, 0x54768c4b, -780 }, + { 0xcb7ddcdd, 0xa26da268, 0xa9942f5d, -777 }, { 0xfe5d5415, 0x0b090b02, 0xd3f93b35, -774 }, + { 0x9efa548d, 0x26e5a6e1, 0xc47bc501, -770 }, { 0xc6b8e9b0, 0x709f109a, 0x359ab641, -767 }, + { 0xf867241c, 0x8cc6d4c0, 0xc30163d2, -764 }, { 0x9b407691, 0xd7fc44f8, 0x79e0de63, -760 }, + { 0xc2109436, 0x4dfb5636, 0x985915fc, -757 }, { 0xf294b943, 0xe17a2bc4, 0x3e6f5b7b, -754 }, + { 0x979cf3ca, 0x6cec5b5a, 0xa705992c, -750 }, { 0xbd8430bd, 0x08277231, 0x50c6ff78, -747 }, + { 0xece53cec, 0x4a314ebd, 0xa4f8bf56, -744 }, { 0x940f4613, 0xae5ed136, 0x871b7795, -740 }, + { 0xb9131798, 0x99f68584, 0x28e2557b, -737 }, { 0xe757dd7e, 0xc07426e5, 0x331aeada, -734 }, + { 0x9096ea6f, 0x3848984f, 0x3ff0d2c8, -730 }, { 0xb4bca50b, 0x065abe63, 0x0fed077a, -727 }, + { 0xe1ebce4d, 0xc7f16dfb, 0xd3e84959, -724 }, { 0x8d3360f0, 0x9cf6e4bd, 0x64712dd7, -720 }, + { 0xb080392c, 0xc4349dec, 0xbd8d794d, -717 }, { 0xdca04777, 0xf541c567, 0xecf0d7a0, -714 }, + { 0x89e42caa, 0xf9491b60, 0xf41686c4, -710 }, { 0xac5d37d5, 0xb79b6239, 0x311c2875, -707 }, + { 0xd77485cb, 0x25823ac7, 0x7d633293, -704 }, { 0x86a8d39e, 0xf77164bc, 0xae5dff9c, -700 }, + { 0xa8530886, 0xb54dbdeb, 0xd9f57f83, -697 }, { 0xd267caa8, 0x62a12d66, 0xd072df63, -694 }, + { 0x8380dea9, 0x3da4bc60, 0x4247cb9e, -690 }, { 0xa4611653, 0x8d0deb78, 0x52d9be85, -687 }, + { 0xcd795be8, 0x70516656, 0x67902e27, -684 }, { 0x806bd971, 0x4632dff6, 0x00ba1cd8, -680 }, + { 0xa086cfcd, 0x97bf97f3, 0x80e8a40e, -677 }, { 0xc8a883c0, 0xfdaf7df0, 0x6122cd12, -674 }, + { 0xfad2a4b1, 0x3d1b5d6c, 0x796b8057, -671 }, { 0x9cc3a6ee, 0xc6311a63, 0xcbe33036, -667 }, + { 0xc3f490aa, 0x77bd60fc, 0xbedbfc44, -664 }, { 0xf4f1b4d5, 0x15acb93b, 0xee92fb55, -661 }, + { 0x99171105, 0x2d8bf3c5, 0x751bdd15, -657 }, { 0xbf5cd546, 0x78eef0b6, 0xd262d45a, -654 }, + { 0xef340a98, 0x172aace4, 0x86fb8971, -651 }, { 0x9580869f, 0x0e7aac0e, 0xd45d35e6, -647 }, + { 0xbae0a846, 0xd2195712, 0x89748360, -644 }, { 0xe998d258, 0x869facd7, 0x2bd1a438, -641 }, + { 0x91ff8377, 0x5423cc06, 0x7b6306a3, -637 }, { 0xb67f6455, 0x292cbf08, 0x1a3bc84c, -634 }, + { 0xe41f3d6a, 0x7377eeca, 0x20caba5f, -631 }, { 0x8e938662, 0x882af53e, 0x547eb47b, -627 }, + { 0xb23867fb, 0x2a35b28d, 0xe99e619a, -624 }, { 0xdec681f9, 0xf4c31f31, 0x6405fa00, -621 }, + { 0x8b3c113c, 0x38f9f37e, 0xde83bc40, -617 }, { 0xae0b158b, 0x4738705e, 0x9624ab50, -614 }, + { 0xd98ddaee, 0x19068c76, 0x3badd624, -611 }, { 0x87f8a8d4, 0xcfa417c9, 0xe54ca5d7, -607 }, + { 0xa9f6d30a, 0x038d1dbc, 0x5e9fcf4c, -604 }, { 0xd47487cc, 0x8470652b, 0x7647c320, -601 }, + { 0x84c8d4df, 0xd2c63f3b, 0x29ecd9f4, -597 }, { 0xa5fb0a17, 0xc777cf09, 0xf4681071, -594 }, + { 0xcf79cc9d, 0xb955c2cc, 0x7182148d, -591 }, { 0x81ac1fe2, 0x93d599bf, 0xc6f14cd8, -587 }, + { 0xa21727db, 0x38cb002f, 0xb8ada00e, -584 }, { 0xca9cf1d2, 0x06fdc03b, 0xa6d90811, -581 }, + { 0xfd442e46, 0x88bd304a, 0x908f4a16, -578 }, { 0x9e4a9cec, 0x15763e2e, 0x9a598e4e, -574 }, + { 0xc5dd4427, 0x1ad3cdba, 0x40eff1e1, -571 }, { 0xf7549530, 0xe188c128, 0xd12bee59, -568 }, + { 0x9a94dd3e, 0x8cf578b9, 0x82bb74f8, -564 }, { 0xc13a148e, 0x3032d6e7, 0xe36a5236, -561 }, + { 0xf18899b1, 0xbc3f8ca1, 0xdc44e6c3, -558 }, { 0x96f5600f, 0x15a7b7e5, 0x29ab103a, -554 }, + { 0xbcb2b812, 0xdb11a5de, 0x7415d448, -551 }, { 0xebdf6617, 0x91d60f56, 0x111b495b, -548 }, + { 0x936b9fce, 0xbb25c995, 0xcab10dd9, -544 }, { 0xb84687c2, 0x69ef3bfb, 0x3d5d514f, -541 }, + { 0xe65829b3, 0x046b0afa, 0x0cb4a5a3, -538 }, { 0x8ff71a0f, 0xe2c2e6dc, 0x47f0e785, -534 }, + { 0xb3f4e093, 0xdb73a093, 0x59ed2167, -531 }, { 0xe0f218b8, 0xd25088b8, 0x306869c1, -528 }, + { 0x8c974f73, 0x83725573, 0x1e414218, -524 }, { 0xafbd2350, 0x644eeacf, 0xe5d1929e, -521 }, + { 0xdbac6c24, 0x7d62a583, 0xdf45f746, -518 }, { 0x894bc396, 0xce5da772, 0x6b8bba8c, -514 }, + { 0xab9eb47c, 0x81f5114f, 0x066ea92f, -511 }, { 0xd686619b, 0xa27255a2, 0xc80a537b, -508 }, + { 0x8613fd01, 0x45877585, 0xbd06742c, -504 }, { 0xa798fc41, 0x96e952e7, 0x2c481138, -501 }, + { 0xd17f3b51, 0xfca3a7a0, 0xf75a1586, -498 }, { 0x82ef8513, 0x3de648c4, 0x9a984d73, -494 }, + { 0xa3ab6658, 0x0d5fdaf5, 0xc13e60d0, -491 }, { 0xcc963fee, 0x10b7d1b3, 0x318df905, -488 }, + { 0xffbbcfe9, 0x94e5c61f, 0xfdf17746, -485 }, { 0x9fd561f1, 0xfd0f9bd3, 0xfeb6ea8b, -481 }, + { 0xc7caba6e, 0x7c5382c8, 0xfe64a52e, -478 }, { 0xf9bd690a, 0x1b68637b, 0x3dfdce7a, -475 }, + { 0x9c1661a6, 0x51213e2d, 0x06bea10c, -471 }, { 0xc31bfa0f, 0xe5698db8, 0x486e494f, -468 }, + { 0xf3e2f893, 0xdec3f126, 0x5a89dba3, -465 }, { 0x986ddb5c, 0x6b3a76b7, 0xf8962946, -461 }, + { 0xbe895233, 0x86091465, 0xf6bbb397, -458 }, { 0xee2ba6c0, 0x678b597f, 0x746aa07d, -455 }, + { 0x94db4838, 0x40b717ef, 0xa8c2a44e, -451 }, { 0xba121a46, 0x50e4ddeb, 0x92f34d62, -448 }, + { 0xe896a0d7, 0xe51e1566, 0x77b020ba, -445 }, { 0x915e2486, 0xef32cd60, 0x0ace1474, -441 }, + { 0xb5b5ada8, 0xaaff80b8, 0x0d819992, -438 }, { 0xe3231912, 0xd5bf60e6, 0x10e1fff6, -435 }, + { 0x8df5efab, 0xc5979c8f, 0xca8d3ffa, -431 }, { 0xb1736b96, 0xb6fd83b3, 0xbd308ff8, -428 }, + { 0xddd0467c, 0x64bce4a0, 0xac7cb3f6, -425 }, { 0x8aa22c0d, 0xbef60ee4, 0x6bcdf07a, -421 }, + { 0xad4ab711, 0x2eb3929d, 0x86c16c98, -418 }, { 0xd89d64d5, 0x7a607744, 0xe871c7bf, -415 }, + { 0x87625f05, 0x6c7c4a8b, 0x11471cd7, -411 }, { 0xa93af6c6, 0xc79b5d2d, 0xd598e40d, -408 }, + { 0xd389b478, 0x79823479, 0x4aff1d10, -405 }, { 0x843610cb, 0x4bf160cb, 0xcedf722a, -401 }, + { 0xa54394fe, 0x1eedb8fe, 0xc2974eb4, -398 }, { 0xce947a3d, 0xa6a9273e, 0x733d2262, -395 }, + { 0x811ccc66, 0x8829b887, 0x0806357d, -391 }, { 0xa163ff80, 0x2a3426a8, 0xca07c2dc, -388 }, + { 0xc9bcff60, 0x34c13052, 0xfc89b393, -385 }, { 0xfc2c3f38, 0x41f17c67, 0xbbac2078, -382 }, + { 0x9d9ba783, 0x2936edc0, 0xd54b944b, -378 }, { 0xc5029163, 0xf384a931, 0x0a9e795e, -375 }, + { 0xf64335bc, 0xf065d37d, 0x4d4617b5, -372 }, { 0x99ea0196, 0x163fa42e, 0x504bced1, -368 }, + { 0xc06481fb, 0x9bcf8d39, 0xe45ec286, -365 }, { 0xf07da27a, 0x82c37088, 0x5d767327, -362 }, + { 0x964e858c, 0x91ba2655, 0x3a6a07f8, -358 }, { 0xbbe226ef, 0xb628afea, 0x890489f7, -355 }, + { 0xeadab0ab, 0xa3b2dbe5, 0x2b45ac74, -352 }, { 0x92c8ae6b, 0x464fc96f, 0x3b0b8bc9, -348 }, + { 0xb77ada06, 0x17e3bbcb, 0x09ce6ebb, -345 }, { 0xe5599087, 0x9ddcaabd, 0xcc420a6a, -342 }, + { 0x8f57fa54, 0xc2a9eab6, 0x9fa94682, -338 }, { 0xb32df8e9, 0xf3546564, 0x47939822, -335 }, + { 0xdff97724, 0x70297ebd, 0x59787e2b, -332 }, { 0x8bfbea76, 0xc619ef36, 0x57eb4edb, -328 }, + { 0xaefae514, 0x77a06b03, 0xede62292, -325 }, { 0xdab99e59, 0x958885c4, 0xe95fab36, -322 }, + { 0x88b402f7, 0xfd75539b, 0x11dbcb02, -318 }, { 0xaae103b5, 0xfcd2a881, 0xd652bdc2, -315 }, + { 0xd59944a3, 0x7c0752a2, 0x4be76d33, -312 }, { 0x857fcae6, 0x2d8493a5, 0x6f70a440, -308 }, + { 0xa6dfbd9f, 0xb8e5b88e, 0xcb4ccd50, -305 }, { 0xd097ad07, 0xa71f26b2, 0x7e2000a4, -302 }, + { 0x825ecc24, 0xc873782f, 0x8ed40066, -298 }, { 0xa2f67f2d, 0xfa90563b, 0x72890080, -295 }, + { 0xcbb41ef9, 0x79346bca, 0x4f2b40a0, -292 }, { 0xfea126b7, 0xd78186bc, 0xe2f610c8, -289 }, + { 0x9f24b832, 0xe6b0f436, 0x0dd9ca7d, -285 }, { 0xc6ede63f, 0xa05d3143, 0x91503d1c, -282 }, + { 0xf8a95fcf, 0x88747d94, 0x75a44c63, -279 }, { 0x9b69dbe1, 0xb548ce7c, 0xc986afbe, -275 }, + { 0xc24452da, 0x229b021b, 0xfbe85bad, -272 }, { 0xf2d56790, 0xab41c2a2, 0xfae27299, -269 }, + { 0x97c560ba, 0x6b0919a5, 0xdccd879f, -265 }, { 0xbdb6b8e9, 0x05cb600f, 0x5400e987, -262 }, + { 0xed246723, 0x473e3813, 0x290123e9, -259 }, { 0x9436c076, 0x0c86e30b, 0xf9a0b672, -255 }, + { 0xb9447093, 0x8fa89bce, 0xf808e40e, -252 }, { 0xe7958cb8, 0x7392c2c2, 0xb60b1d12, -249 }, + { 0x90bd77f3, 0x483bb9b9, 0xb1c6f22b, -245 }, { 0xb4ecd5f0, 0x1a4aa828, 0x1e38aeb6, -242 }, + { 0xe2280b6c, 0x20dd5232, 0x25c6da63, -239 }, { 0x8d590723, 0x948a535f, 0x579c487e, -235 }, + { 0xb0af48ec, 0x79ace837, 0x2d835a9d, -232 }, { 0xdcdb1b27, 0x98182244, 0xf8e43145, -229 }, + { 0x8a08f0f8, 0xbf0f156b, 0x1b8e9ecb, -225 }, { 0xac8b2d36, 0xeed2dac5, 0xe272467e, -222 }, + { 0xd7adf884, 0xaa879177, 0x5b0ed81d, -219 }, { 0x86ccbb52, 0xea94baea, 0x98e94712, -215 }, + { 0xa87fea27, 0xa539e9a5, 0x3f2398d7, -212 }, { 0xd29fe4b1, 0x8e88640e, 0x8eec7f0d, -209 }, + { 0x83a3eeee, 0xf9153e89, 0x1953cf68, -205 }, { 0xa48ceaaa, 0xb75a8e2b, 0x5fa8c342, -202 }, + { 0xcdb02555, 0x653131b6, 0x3792f412, -199 }, { 0x808e1755, 0x5f3ebf11, 0xe2bbd88b, -195 }, + { 0xa0b19d2a, 0xb70e6ed6, 0x5b6aceae, -192 }, { 0xc8de0475, 0x64d20a8b, 0xf245825a, -189 }, + { 0xfb158592, 0xbe068d2e, 0xeed6e2f0, -186 }, { 0x9ced737b, 0xb6c4183d, 0x55464dd6, -182 }, + { 0xc428d05a, 0xa4751e4c, 0xaa97e14c, -179 }, { 0xf5330471, 0x4d9265df, 0xd53dd99f, -176 }, + { 0x993fe2c6, 0xd07b7fab, 0xe546a803, -172 }, { 0xbf8fdb78, 0x849a5f96, 0xde985204, -169 }, + { 0xef73d256, 0xa5c0f77c, 0x963e6685, -166 }, { 0x95a86376, 0x27989aad, 0xdde70013, -162 }, + { 0xbb127c53, 0xb17ec159, 0x5560c018, -159 }, { 0xe9d71b68, 0x9dde71af, 0xaab8f01e, -156 }, + { 0x92267121, 0x62ab070d, 0xcab39613, -152 }, { 0xb6b00d69, 0xbb55c8d1, 0x3d607b97, -149 }, + { 0xe45c10c4, 0x2a2b3b05, 0x8cb89a7d, -146 }, { 0x8eb98a7a, 0x9a5b04e3, 0x77f3608e, -142 }, + { 0xb267ed19, 0x40f1c61c, 0x55f038b2, -139 }, { 0xdf01e85f, 0x912e37a3, 0x6b6c46de, -136 }, + { 0x8b61313b, 0xbabce2c6, 0x2323ac4b, -132 }, { 0xae397d8a, 0xa96c1b77, 0xabec975e, -129 }, + { 0xd9c7dced, 0x53c72255, 0x96e7bd35, -126 }, { 0x881cea14, 0x545c7575, 0x7e50d641, -122 }, + { 0xaa242499, 0x697392d2, 0xdde50bd1, -119 }, { 0xd4ad2dbf, 0xc3d07787, 0x955e4ec6, -116 }, + { 0x84ec3c97, 0xda624ab4, 0xbd5af13b, -112 }, { 0xa6274bbd, 0xd0fadd61, 0xecb1ad8a, -109 }, + { 0xcfb11ead, 0x453994ba, 0x67de18ed, -106 }, { 0x81ceb32c, 0x4b43fcf4, 0x80eacf94, -102 }, + { 0xa2425ff7, 0x5e14fc31, 0xa1258379, -99 }, { 0xcad2f7f5, 0x359a3b3e, 0x096ee458, -96 }, + { 0xfd87b5f2, 0x8300ca0d, 0x8bca9d6e, -93 }, { 0x9e74d1b7, 0x91e07e48, 0x775ea264, -89 }, + { 0xc6120625, 0x76589dda, 0x95364afe, -86 }, { 0xf79687ae, 0xd3eec551, 0x3a83ddbd, -83 }, + { 0x9abe14cd, 0x44753b52, 0xc4926a96, -79 }, { 0xc16d9a00, 0x95928a27, 0x75b7053c, -76 }, + { 0xf1c90080, 0xbaf72cb1, 0x5324c68b, -73 }, { 0x971da050, 0x74da7bee, 0xd3f6fc16, -69 }, + { 0xbce50864, 0x92111aea, 0x88f4bb1c, -66 }, { 0xec1e4a7d, 0xb69561a5, 0x2b31e9e3, -63 }, + { 0x9392ee8e, 0x921d5d07, 0x3aff322e, -59 }, { 0xb877aa32, 0x36a4b449, 0x09befeb9, -56 }, + { 0xe69594be, 0xc44de15b, 0x4c2ebe68, -53 }, { 0x901d7cf7, 0x3ab0acd9, 0x0f9d3701, -49 }, + { 0xb424dc35, 0x095cd80f, 0x538484c1, -46 }, { 0xe12e1342, 0x4bb40e13, 0x2865a5f2, -43 }, + { 0x8cbccc09, 0x6f5088cb, 0xf93f87b7, -39 }, { 0xafebff0b, 0xcb24aafe, 0xf78f69a5, -36 }, + { 0xdbe6fece, 0xbdedd5be, 0xb573440e, -33 }, { 0x89705f41, 0x36b4a597, 0x31680a88, -29 }, + { 0xabcc7711, 0x8461cefc, 0xfdc20d2b, -26 }, { 0xd6bf94d5, 0xe57a42bc, 0x3d329076, -23 }, + { 0x8637bd05, 0xaf6c69b5, 0xa63f9a49, -19 }, { 0xa7c5ac47, 0x1b478423, 0x0fcf80dc, -16 }, + { 0xd1b71758, 0xe219652b, 0xd3c36113, -13 }, { 0x83126e97, 0x8d4fdf3b, 0x645a1cac, -9 }, + { 0xa3d70a3d, 0x70a3d70a, 0x3d70a3d7, -6 }, { 0xcccccccc, 0xcccccccc, 0xcccccccc, -3 }, + { 0x80000000, 0x00000000, 0x00000000, 1 }, { 0xa0000000, 0x00000000, 0x00000000, 4 }, + { 0xc8000000, 0x00000000, 0x00000000, 7 }, { 0xfa000000, 0x00000000, 0x00000000, 10 }, + { 0x9c400000, 0x00000000, 0x00000000, 14 }, { 0xc3500000, 0x00000000, 0x00000000, 17 }, + { 0xf4240000, 0x00000000, 0x00000000, 20 }, { 0x98968000, 0x00000000, 0x00000000, 24 }, + { 0xbebc2000, 0x00000000, 0x00000000, 27 }, { 0xee6b2800, 0x00000000, 0x00000000, 30 }, + { 0x9502f900, 0x00000000, 0x00000000, 34 }, { 0xba43b740, 0x00000000, 0x00000000, 37 }, + { 0xe8d4a510, 0x00000000, 0x00000000, 40 }, { 0x9184e72a, 0x00000000, 0x00000000, 44 }, + { 0xb5e620f4, 0x80000000, 0x00000000, 47 }, { 0xe35fa931, 0xa0000000, 0x00000000, 50 }, + { 0x8e1bc9bf, 0x04000000, 0x00000000, 54 }, { 0xb1a2bc2e, 0xc5000000, 0x00000000, 57 }, + { 0xde0b6b3a, 0x76400000, 0x00000000, 60 }, { 0x8ac72304, 0x89e80000, 0x00000000, 64 }, + { 0xad78ebc5, 0xac620000, 0x00000000, 67 }, { 0xd8d726b7, 0x177a8000, 0x00000000, 70 }, + { 0x87867832, 0x6eac9000, 0x00000000, 74 }, { 0xa968163f, 0x0a57b400, 0x00000000, 77 }, + { 0xd3c21bce, 0xcceda100, 0x00000000, 80 }, { 0x84595161, 0x401484a0, 0x00000000, 84 }, + { 0xa56fa5b9, 0x9019a5c8, 0x00000000, 87 }, { 0xcecb8f27, 0xf4200f3a, 0x00000000, 90 }, + { 0x813f3978, 0xf8940984, 0x40000000, 94 }, { 0xa18f07d7, 0x36b90be5, 0x50000000, 97 }, + { 0xc9f2c9cd, 0x04674ede, 0xa4000000, 100 }, { 0xfc6f7c40, 0x45812296, 0x4d000000, 103 }, + { 0x9dc5ada8, 0x2b70b59d, 0xf0200000, 107 }, { 0xc5371912, 0x364ce305, 0x6c280000, 110 }, + { 0xf684df56, 0xc3e01bc6, 0xc7320000, 113 }, { 0x9a130b96, 0x3a6c115c, 0x3c7f4000, 117 }, + { 0xc097ce7b, 0xc90715b3, 0x4b9f1000, 120 }, { 0xf0bdc21a, 0xbb48db20, 0x1e86d400, 123 }, + { 0x96769950, 0xb50d88f4, 0x13144480, 127 }, { 0xbc143fa4, 0xe250eb31, 0x17d955a0, 130 }, + { 0xeb194f8e, 0x1ae525fd, 0x5dcfab08, 133 }, { 0x92efd1b8, 0xd0cf37be, 0x5aa1cae5, 137 }, + { 0xb7abc627, 0x050305ad, 0xf14a3d9e, 140 }, { 0xe596b7b0, 0xc643c719, 0x6d9ccd05, 143 }, + { 0x8f7e32ce, 0x7bea5c6f, 0xe4820023, 147 }, { 0xb35dbf82, 0x1ae4f38b, 0xdda2802c, 150 }, + { 0xe0352f62, 0xa19e306e, 0xd50b2037, 153 }, { 0x8c213d9d, 0xa502de45, 0x4526f422, 157 }, + { 0xaf298d05, 0x0e4395d6, 0x9670b12b, 160 }, { 0xdaf3f046, 0x51d47b4c, 0x3c0cdd76, 163 }, + { 0x88d8762b, 0xf324cd0f, 0xa5880a69, 167 }, { 0xab0e93b6, 0xefee0053, 0x8eea0d04, 170 }, + { 0xd5d238a4, 0xabe98068, 0x72a49045, 173 }, { 0x85a36366, 0xeb71f041, 0x47a6da2b, 177 }, + { 0xa70c3c40, 0xa64e6c51, 0x999090b6, 180 }, { 0xd0cf4b50, 0xcfe20765, 0xfff4b4e3, 183 }, + { 0x82818f12, 0x81ed449f, 0xbff8f10e, 187 }, { 0xa321f2d7, 0x226895c7, 0xaff72d52, 190 }, + { 0xcbea6f8c, 0xeb02bb39, 0x9bf4f8a6, 193 }, { 0xfee50b70, 0x25c36a08, 0x02f236d0, 196 }, + { 0x9f4f2726, 0x179a2245, 0x01d76242, 200 }, { 0xc722f0ef, 0x9d80aad6, 0x424d3ad2, 203 }, + { 0xf8ebad2b, 0x84e0d58b, 0xd2e08987, 206 }, { 0x9b934c3b, 0x330c8577, 0x63cc55f4, 210 }, + { 0xc2781f49, 0xffcfa6d5, 0x3cbf6b71, 213 }, { 0xf316271c, 0x7fc3908a, 0x8bef464e, 216 }, + { 0x97edd871, 0xcfda3a56, 0x97758bf0, 220 }, { 0xbde94e8e, 0x43d0c8ec, 0x3d52eeed, 223 }, + { 0xed63a231, 0xd4c4fb27, 0x4ca7aaa8, 226 }, { 0x945e455f, 0x24fb1cf8, 0x8fe8caa9, 230 }, + { 0xb975d6b6, 0xee39e436, 0xb3e2fd53, 233 }, { 0xe7d34c64, 0xa9c85d44, 0x60dbbca8, 236 }, + { 0x90e40fbe, 0xea1d3a4a, 0xbc8955e9, 240 }, { 0xb51d13ae, 0xa4a488dd, 0x6babab63, 243 }, + { 0xe264589a, 0x4dcdab14, 0xc696963c, 246 }, { 0x8d7eb760, 0x70a08aec, 0xfc1e1de5, 250 }, + { 0xb0de6538, 0x8cc8ada8, 0x3b25a55f, 253 }, { 0xdd15fe86, 0xaffad912, 0x49ef0eb7, 256 }, + { 0x8a2dbf14, 0x2dfcc7ab, 0x6e356932, 260 }, { 0xacb92ed9, 0x397bf996, 0x49c2c37f, 263 }, + { 0xd7e77a8f, 0x87daf7fb, 0xdc33745e, 266 }, { 0x86f0ac99, 0xb4e8dafd, 0x69a028bb, 270 }, + { 0xa8acd7c0, 0x222311bc, 0xc40832ea, 273 }, { 0xd2d80db0, 0x2aabd62b, 0xf50a3fa4, 276 }, + { 0x83c7088e, 0x1aab65db, 0x792667c6, 280 }, { 0xa4b8cab1, 0xa1563f52, 0x577001b8, 283 }, + { 0xcde6fd5e, 0x09abcf26, 0xed4c0226, 286 }, { 0x80b05e5a, 0xc60b6178, 0x544f8158, 290 }, + { 0xa0dc75f1, 0x778e39d6, 0x696361ae, 293 }, { 0xc913936d, 0xd571c84c, 0x03bc3a19, 296 }, + { 0xfb587849, 0x4ace3a5f, 0x04ab48a0, 299 }, { 0x9d174b2d, 0xcec0e47b, 0x62eb0d64, 303 }, + { 0xc45d1df9, 0x42711d9a, 0x3ba5d0bd, 306 }, { 0xf5746577, 0x930d6500, 0xca8f44ec, 309 }, + { 0x9968bf6a, 0xbbe85f20, 0x7e998b13, 313 }, { 0xbfc2ef45, 0x6ae276e8, 0x9e3fedd8, 316 }, + { 0xefb3ab16, 0xc59b14a2, 0xc5cfe94e, 319 }, { 0x95d04aee, 0x3b80ece5, 0xbba1f1d1, 323 }, + { 0xbb445da9, 0xca61281f, 0x2a8a6e45, 326 }, { 0xea157514, 0x3cf97226, 0xf52d09d7, 329 }, + { 0x924d692c, 0xa61be758, 0x593c2626, 333 }, { 0xb6e0c377, 0xcfa2e12e, 0x6f8b2fb0, 336 }, + { 0xe498f455, 0xc38b997a, 0x0b6dfb9c, 339 }, { 0x8edf98b5, 0x9a373fec, 0x4724bd41, 343 }, + { 0xb2977ee3, 0x00c50fe7, 0x58edec91, 346 }, { 0xdf3d5e9b, 0xc0f653e1, 0x2f2967b6, 349 }, + { 0x8b865b21, 0x5899f46c, 0xbd79e0d2, 353 }, { 0xae67f1e9, 0xaec07187, 0xecd85906, 356 }, + { 0xda01ee64, 0x1a708de9, 0xe80e6f48, 359 }, { 0x884134fe, 0x908658b2, 0x3109058d, 363 }, + { 0xaa51823e, 0x34a7eede, 0xbd4b46f0, 366 }, { 0xd4e5e2cd, 0xc1d1ea96, 0x6c9e18ac, 369 }, + { 0x850fadc0, 0x9923329e, 0x03e2cf6b, 373 }, { 0xa6539930, 0xbf6bff45, 0x84db8346, 376 }, + { 0xcfe87f7c, 0xef46ff16, 0xe6126418, 379 }, { 0x81f14fae, 0x158c5f6e, 0x4fcb7e8f, 383 }, + { 0xa26da399, 0x9aef7749, 0xe3be5e33, 386 }, { 0xcb090c80, 0x01ab551c, 0x5cadf5bf, 389 }, + { 0xfdcb4fa0, 0x02162a63, 0x73d9732f, 392 }, { 0x9e9f11c4, 0x014dda7e, 0x2867e7fd, 396 }, + { 0xc646d635, 0x01a1511d, 0xb281e1fd, 399 }, { 0xf7d88bc2, 0x4209a565, 0x1f225a7c, 402 }, + { 0x9ae75759, 0x6946075f, 0x3375788d, 406 }, { 0xc1a12d2f, 0xc3978937, 0x0052d6b1, 409 }, + { 0xf209787b, 0xb47d6b84, 0xc0678c5d, 412 }, { 0x9745eb4d, 0x50ce6332, 0xf840b7ba, 416 }, + { 0xbd176620, 0xa501fbff, 0xb650e5a9, 419 }, { 0xec5d3fa8, 0xce427aff, 0xa3e51f13, 422 }, + { 0x93ba47c9, 0x80e98cdf, 0xc66f336c, 426 }, { 0xb8a8d9bb, 0xe123f017, 0xb80b0047, 429 }, + { 0xe6d3102a, 0xd96cec1d, 0xa60dc059, 432 }, { 0x9043ea1a, 0xc7e41392, 0x87c89837, 436 }, + { 0xb454e4a1, 0x79dd1877, 0x29babe45, 439 }, { 0xe16a1dc9, 0xd8545e94, 0xf4296dd6, 442 }, + { 0x8ce2529e, 0x2734bb1d, 0x1899e4a6, 446 }, { 0xb01ae745, 0xb101e9e4, 0x5ec05dcf, 449 }, + { 0xdc21a117, 0x1d42645d, 0x76707543, 452 }, { 0x899504ae, 0x72497eba, 0x6a06494a, 456 }, + { 0xabfa45da, 0x0edbde69, 0x0487db9d, 459 }, { 0xd6f8d750, 0x9292d603, 0x45a9d284, 462 }, + { 0x865b8692, 0x5b9bc5c2, 0x0b8a2392, 466 }, { 0xa7f26836, 0xf282b732, 0x8e6cac77, 469 }, + { 0xd1ef0244, 0xaf2364ff, 0x3207d795, 472 }, { 0x8335616a, 0xed761f1f, 0x7f44e6bd, 476 }, + { 0xa402b9c5, 0xa8d3a6e7, 0x5f16206c, 479 }, { 0xcd036837, 0x130890a1, 0x36dba887, 482 }, + { 0x80222122, 0x6be55a64, 0xc2494954, 486 }, { 0xa02aa96b, 0x06deb0fd, 0xf2db9baa, 489 }, + { 0xc83553c5, 0xc8965d3d, 0x6f928294, 492 }, { 0xfa42a8b7, 0x3abbf48c, 0xcb772339, 495 }, + { 0x9c69a972, 0x84b578d7, 0xff2a7604, 499 }, { 0xc38413cf, 0x25e2d70d, 0xfef51385, 502 }, + { 0xf46518c2, 0xef5b8cd1, 0x7eb25866, 505 }, { 0x98bf2f79, 0xd5993802, 0xef2f773f, 509 }, + { 0xbeeefb58, 0x4aff8603, 0xaafb550f, 512 }, { 0xeeaaba2e, 0x5dbf6784, 0x95ba2a53, 515 }, + { 0x952ab45c, 0xfa97a0b2, 0xdd945a74, 519 }, { 0xba756174, 0x393d88df, 0x94f97111, 522 }, + { 0xe912b9d1, 0x478ceb17, 0x7a37cd56, 525 }, { 0x91abb422, 0xccb812ee, 0xac62e055, 529 }, + { 0xb616a12b, 0x7fe617aa, 0x577b986b, 532 }, { 0xe39c4976, 0x5fdf9d94, 0xed5a7e85, 535 }, + { 0x8e41ade9, 0xfbebc27d, 0x14588f13, 539 }, { 0xb1d21964, 0x7ae6b31c, 0x596eb2d8, 542 }, + { 0xde469fbd, 0x99a05fe3, 0x6fca5f8e, 545 }, { 0x8aec23d6, 0x80043bee, 0x25de7bb9, 549 }, + { 0xada72ccc, 0x20054ae9, 0xaf561aa7, 552 }, { 0xd910f7ff, 0x28069da4, 0x1b2ba151, 555 }, + { 0x87aa9aff, 0x79042286, 0x90fb44d2, 559 }, { 0xa99541bf, 0x57452b28, 0x353a1607, 562 }, + { 0xd3fa922f, 0x2d1675f2, 0x42889b89, 565 }, { 0x847c9b5d, 0x7c2e09b7, 0x69956135, 569 }, + { 0xa59bc234, 0xdb398c25, 0x43fab983, 572 }, { 0xcf02b2c2, 0x1207ef2e, 0x94f967e4, 575 }, + { 0x8161afb9, 0x4b44f57d, 0x1d1be0ee, 579 }, { 0xa1ba1ba7, 0x9e1632dc, 0x6462d92a, 582 }, + { 0xca28a291, 0x859bbf93, 0x7d7b8f75, 585 }, { 0xfcb2cb35, 0xe702af78, 0x5cda7352, 588 }, + { 0x9defbf01, 0xb061adab, 0x3a088813, 592 }, { 0xc56baec2, 0x1c7a1916, 0x088aaa18, 595 }, + { 0xf6c69a72, 0xa3989f5b, 0x8aad549e, 598 }, { 0x9a3c2087, 0xa63f6399, 0x36ac54e2, 602 }, + { 0xc0cb28a9, 0x8fcf3c7f, 0x84576a1b, 605 }, { 0xf0fdf2d3, 0xf3c30b9f, 0x656d44a2, 608 }, + { 0x969eb7c4, 0x7859e743, 0x9f644ae5, 612 }, { 0xbc4665b5, 0x96706114, 0x873d5d9f, 615 }, + { 0xeb57ff22, 0xfc0c7959, 0xa90cb506, 618 }, { 0x9316ff75, 0xdd87cbd8, 0x09a7f124, 622 }, + { 0xb7dcbf53, 0x54e9bece, 0x0c11ed6d, 625 }, { 0xe5d3ef28, 0x2a242e81, 0x8f1668c8, 628 }, + { 0x8fa47579, 0x1a569d10, 0xf96e017d, 632 }, { 0xb38d92d7, 0x60ec4455, 0x37c981dc, 635 }, + { 0xe070f78d, 0x3927556a, 0x85bbe253, 638 }, { 0x8c469ab8, 0x43b89562, 0x93956d74, 642 }, + { 0xaf584166, 0x54a6babb, 0x387ac8d1, 645 }, { 0xdb2e51bf, 0xe9d0696a, 0x06997b05, 648 }, + { 0x88fcf317, 0xf22241e2, 0x441fece3, 652 }, { 0xab3c2fdd, 0xeeaad25a, 0xd527e81c, 655 }, + { 0xd60b3bd5, 0x6a5586f1, 0x8a71e223, 658 }, { 0x85c70565, 0x62757456, 0xf6872d56, 662 }, + { 0xa738c6be, 0xbb12d16c, 0xb428f8ac, 665 }, { 0xd106f86e, 0x69d785c7, 0xe13336d7, 668 }, + { 0x82a45b45, 0x0226b39c, 0xecc00246, 672 }, { 0xa34d7216, 0x42b06084, 0x27f002d7, 675 }, + { 0xcc20ce9b, 0xd35c78a5, 0x31ec038d, 678 }, { 0xff290242, 0xc83396ce, 0x7e670471, 681 }, + { 0x9f79a169, 0xbd203e41, 0x0f0062c6, 685 }, { 0xc75809c4, 0x2c684dd1, 0x52c07b78, 688 }, + { 0xf92e0c35, 0x37826145, 0xa7709a56, 691 }, { 0x9bbcc7a1, 0x42b17ccb, 0x88a66076, 695 }, + { 0xc2abf989, 0x935ddbfe, 0x6acff893, 698 }, { 0xf356f7eb, 0xf83552fe, 0x0583f6b8, 701 }, + { 0x98165af3, 0x7b2153de, 0xc3727a33, 705 }, { 0xbe1bf1b0, 0x59e9a8d6, 0x744f18c0, 708 }, + { 0xeda2ee1c, 0x7064130c, 0x1162def0, 711 }, { 0x9485d4d1, 0xc63e8be7, 0x8addcb56, 715 }, + { 0xb9a74a06, 0x37ce2ee1, 0x6d953e2b, 718 }, { 0xe8111c87, 0xc5c1ba99, 0xc8fa8db6, 721 }, + { 0x910ab1d4, 0xdb9914a0, 0x1d9c9892, 725 }, { 0xb54d5e4a, 0x127f59c8, 0x2503beb6, 728 }, + { 0xe2a0b5dc, 0x971f303a, 0x2e44ae64, 731 }, { 0x8da471a9, 0xde737e24, 0x5ceaecfe, 735 }, + { 0xb10d8e14, 0x56105dad, 0x7425a83e, 738 }, { 0xdd50f199, 0x6b947518, 0xd12f124e, 741 }, + { 0x8a5296ff, 0xe33cc92f, 0x82bd6b70, 745 }, { 0xace73cbf, 0xdc0bfb7b, 0x636cc64d, 748 }, + { 0xd8210bef, 0xd30efa5a, 0x3c47f7e0, 751 }, { 0x8714a775, 0xe3e95c78, 0x65acfaec, 755 }, + { 0xa8d9d153, 0x5ce3b396, 0x7f1839a7, 758 }, { 0xd31045a8, 0x341ca07c, 0x1ede4811, 761 }, + { 0x83ea2b89, 0x2091e44d, 0x934aed0a, 765 }, { 0xa4e4b66b, 0x68b65d60, 0xf81da84d, 768 }, + { 0xce1de406, 0x42e3f4b9, 0x36251260, 771 }, { 0x80d2ae83, 0xe9ce78f3, 0xc1d72b7c, 775 }, + { 0xa1075a24, 0xe4421730, 0xb24cf65b, 778 }, { 0xc94930ae, 0x1d529cfc, 0xdee033f2, 781 }, + { 0xfb9b7cd9, 0xa4a7443c, 0x169840ef, 784 }, { 0x9d412e08, 0x06e88aa5, 0x8e1f2895, 788 }, + { 0xc491798a, 0x08a2ad4e, 0xf1a6f2ba, 791 }, { 0xf5b5d7ec, 0x8acb58a2, 0xae10af69, 794 }, + { 0x9991a6f3, 0xd6bf1765, 0xacca6da1, 798 }, { 0xbff610b0, 0xcc6edd3f, 0x17fd090a, 801 }, + { 0xeff394dc, 0xff8a948e, 0xddfc4b4c, 804 }, { 0x95f83d0a, 0x1fb69cd9, 0x4abdaf10, 808 }, + { 0xbb764c4c, 0xa7a4440f, 0x9d6d1ad4, 811 }, { 0xea53df5f, 0xd18d5513, 0x84c86189, 814 }, + { 0x92746b9b, 0xe2f8552c, 0x32fd3cf5, 818 }, { 0xb7118682, 0xdbb66a77, 0x3fbc8c33, 821 }, + { 0xe4d5e823, 0x92a40515, 0x0fabaf3f, 824 }, { 0x8f05b116, 0x3ba6832d, 0x29cb4d87, 828 }, + { 0xb2c71d5b, 0xca9023f8, 0x743e20e9, 831 }, { 0xdf78e4b2, 0xbd342cf6, 0x914da924, 834 }, + { 0x8bab8eef, 0xb6409c1a, 0x1ad089b6, 838 }, { 0xae9672ab, 0xa3d0c320, 0xa184ac24, 841 }, + { 0xda3c0f56, 0x8cc4f3e8, 0xc9e5d72d, 844 }, { 0x88658996, 0x17fb1871, 0x7e2fa67c, 848 }, + { 0xaa7eebfb, 0x9df9de8d, 0xddbb901b, 851 }, { 0xd51ea6fa, 0x85785631, 0x552a7422, 854 }, + { 0x8533285c, 0x936b35de, 0xd53a8895, 858 }, { 0xa67ff273, 0xb8460356, 0x8a892aba, 861 }, + { 0xd01fef10, 0xa657842c, 0x2d2b7569, 864 }, { 0x8213f56a, 0x67f6b29b, 0x9c3b2962, 868 }, + { 0xa298f2c5, 0x01f45f42, 0x8349f3ba, 871 }, { 0xcb3f2f76, 0x42717713, 0x241c70a9, 874 }, + { 0xfe0efb53, 0xd30dd4d7, 0xed238cd3, 877 }, { 0x9ec95d14, 0x63e8a506, 0xf4363804, 881 }, + { 0xc67bb459, 0x7ce2ce48, 0xb143c605, 884 }, { 0xf81aa16f, 0xdc1b81da, 0xdd94b786, 887 }, + { 0x9b10a4e5, 0xe9913128, 0xca7cf2b4, 891 }, { 0xc1d4ce1f, 0x63f57d72, 0xfd1c2f61, 894 }, + { 0xf24a01a7, 0x3cf2dccf, 0xbc633b39, 897 }, { 0x976e4108, 0x8617ca01, 0xd5be0503, 901 }, + { 0xbd49d14a, 0xa79dbc82, 0x4b2d8644, 904 }, { 0xec9c459d, 0x51852ba2, 0xddf8e7d6, 907 }, + { 0x93e1ab82, 0x52f33b45, 0xcabb90e5, 911 }, { 0xb8da1662, 0xe7b00a17, 0x3d6a751f, 914 }, + { 0xe7109bfb, 0xa19c0c9d, 0x0cc51267, 917 }, { 0x906a617d, 0x450187e2, 0x27fb2b80, 921 }, + { 0xb484f9dc, 0x9641e9da, 0xb1f9f660, 924 }, { 0xe1a63853, 0xbbd26451, 0x5e7873f8, 927 }, + { 0x8d07e334, 0x55637eb2, 0xdb0b487b, 931 }, { 0xb049dc01, 0x6abc5e5f, 0x91ce1a9a, 934 }, + { 0xdc5c5301, 0xc56b75f7, 0x7641a140, 937 }, { 0x89b9b3e1, 0x1b6329ba, 0xa9e904c8, 941 }, + { 0xac2820d9, 0x623bf429, 0x546345fa, 944 }, { 0xd732290f, 0xbacaf133, 0xa97c1779, 947 }, + { 0x867f59a9, 0xd4bed6c0, 0x49ed8eab, 951 }, { 0xa81f3014, 0x49ee8c70, 0x5c68f256, 954 }, + { 0xd226fc19, 0x5c6a2f8c, 0x73832eec, 957 }, { 0x83585d8f, 0xd9c25db7, 0xc831fd53, 961 }, + { 0xa42e74f3, 0xd032f525, 0xba3e7ca8, 964 }, { 0xcd3a1230, 0xc43fb26f, 0x28ce1bd2, 967 }, + { 0x80444b5e, 0x7aa7cf85, 0x7980d163, 971 }, { 0xa0555e36, 0x1951c366, 0xd7e105bc, 974 }, + { 0xc86ab5c3, 0x9fa63440, 0x8dd9472b, 977 }, { 0xfa856334, 0x878fc150, 0xb14f98f6, 980 }, + { 0x9c935e00, 0xd4b9d8d2, 0x6ed1bf9a, 984 }, { 0xc3b83581, 0x09e84f07, 0x0a862f80, 987 }, + { 0xf4a642e1, 0x4c6262c8, 0xcd27bb61, 990 }, { 0x98e7e9cc, 0xcfbd7dbd, 0x8038d51c, 994 }, + { 0xbf21e440, 0x03acdd2c, 0xe0470a63, 997 }, { 0xeeea5d50, 0x04981478, 0x1858ccfc, 1000 }, + { 0x95527a52, 0x02df0ccb, 0x0f37801e, 1004 }, { 0xbaa718e6, 0x8396cffd, 0xd3056025, 1007 }, + { 0xe950df20, 0x247c83fd, 0x47c6b82e, 1010 }, { 0x91d28b74, 0x16cdd27e, 0x4cdc331d, 1014 }, + { 0xb6472e51, 0x1c81471d, 0xe0133fe4, 1017 }, { 0xe3d8f9e5, 0x63a198e5, 0x58180fdd, 1020 }, + { 0x8e679c2f, 0x5e44ff8f, 0x570f09ea, 1024 }, { 0xb201833b, 0x35d63f73, 0x2cd2cc65, 1027 }, + { 0xde81e40a, 0x034bcf4f, 0xf8077f7e, 1030 }, { 0x8b112e86, 0x420f6191, 0xfb04afaf, 1034 }, + { 0xadd57a27, 0xd29339f6, 0x79c5db9a, 1037 }, { 0xd94ad8b1, 0xc7380874, 0x18375281, 1040 }, + { 0x87cec76f, 0x1c830548, 0x8f229391, 1044 }, { 0xa9c2794a, 0xe3a3c69a, 0xb2eb3875, 1047 }, + { 0xd433179d, 0x9c8cb841, 0x5fa60692, 1050 }, { 0x849feec2, 0x81d7f328, 0xdbc7c41b, 1054 }, + { 0xa5c7ea73, 0x224deff3, 0x12b9b522, 1057 }, { 0xcf39e50f, 0xeae16bef, 0xd768226b, 1060 }, + { 0x81842f29, 0xf2cce375, 0xe6a11583, 1064 }, { 0xa1e53af4, 0x6f801c53, 0x60495ae3, 1067 }, + { 0xca5e89b1, 0x8b602368, 0x385bb19c, 1070 }, { 0xfcf62c1d, 0xee382c42, 0x46729e03, 1073 }, { 0x9e19db92, 0xb4e31ba9, 0x6c07a2c2, 1077 } }; static short int Lhint[2098] = { - /*18,*/ 19, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, - 22, 22, 23, 23, 23, 23, 24, 24, 24, 25, 25, - 25, 26, 26, 26, 26, 27, 27, 27, 28, 28, 28, - 29, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, - 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, - 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, - 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 41, - 42, 42, 42, 43, 43, 43, 44, 44, 44, 44, 45, - 45, 45, 46, 46, 46, 47, 47, 47, 47, 48, 48, - 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 51, - 52, 52, 52, 53, 53, 53, 54, 54, 54, 54, 55, - 55, 55, 56, 56, 56, 57, 57, 57, 57, 58, 58, - 58, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, - 62, 62, 62, 63, 63, 63, 63, 64, 64, 64, 65, - 65, 65, 66, 66, 66, 66, 67, 67, 67, 68, 68, - 68, 69, 69, 69, 69, 70, 70, 70, 71, 71, 71, - 72, 72, 72, 72, 73, 73, 73, 74, 74, 74, 75, - 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, - 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, - 82, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, - 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, - 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, - 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 94, - 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, - 98, 98, 99, 99, 99, 100, 100, 100, 100, 101, 101, - 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, - 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, - 108, 108, 109, 109, 109, 110, 110, 110, 110, 111, 111, - 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, - 115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 118, - 118, 118, 119, 119, 119, 119, 120, 120, 120, 121, 121, - 121, 122, 122, 122, 122, 123, 123, 123, 124, 124, 124, - 125, 125, 125, 125, 126, 126, 126, 127, 127, 127, 128, - 128, 128, 128, 129, 129, 129, 130, 130, 130, 131, 131, - 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, - 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 137, - 138, 138, 138, 139, 139, 139, 140, 140, 140, 141, 141, - 141, 141, 142, 142, 142, 143, 143, 143, 144, 144, 144, - 144, 145, 145, 145, 146, 146, 146, 147, 147, 147, 147, - 148, 148, 148, 149, 149, 149, 150, 150, 150, 150, 151, - 151, 151, 152, 152, 152, 153, 153, 153, 153, 154, 154, - 154, 155, 155, 155, 156, 156, 156, 156, 157, 157, 157, - 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 161, - 161, 161, 162, 162, 162, 162, 163, 163, 163, 164, 164, - 164, 165, 165, 165, 165, 166, 166, 166, 167, 167, 167, - 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 171, - 171, 171, 172, 172, 172, 172, 173, 173, 173, 174, 174, - 174, 175, 175, 175, 175, 176, 176, 176, 177, 177, 177, - 178, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181, - 181, 181, 181, 182, 182, 182, 183, 183, 183, 184, 184, - 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 187, - 187, 188, 188, 188, 189, 189, 189, 190, 190, 190, 190, - 191, 191, 191, 192, 192, 192, 193, 193, 193, 193, 194, - 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 197, - 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 200, - 201, 201, 201, 202, 202, 202, 203, 203, 203, 203, 204, - 204, 204, 205, 205, 205, 206, 206, 206, 206, 207, 207, - 207, 208, 208, 208, 209, 209, 209, 209, 210, 210, 210, - 211, 211, 211, 212, 212, 212, 212, 213, 213, 213, 214, - 214, 214, 215, 215, 215, 215, 216, 216, 216, 217, 217, - 217, 218, 218, 218, 218, 219, 219, 219, 220, 220, 220, - 221, 221, 221, 221, 222, 222, 222, 223, 223, 223, 224, - 224, 224, 224, 225, 225, 225, 226, 226, 226, 227, 227, - 227, 228, 228, 228, 228, 229, 229, 229, 230, 230, 230, - 231, 231, 231, 231, 232, 232, 232, 233, 233, 233, 234, - 234, 234, 234, 235, 235, 235, 236, 236, 236, 237, 237, - 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, 240, - 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, - 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 247, - 247, 247, 248, 248, 248, 249, 249, 249, 249, 250, 250, - 250, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, - 254, 254, 254, 255, 255, 255, 256, 256, 256, 256, 257, - 257, 257, 258, 258, 258, 259, 259, 259, 259, 260, 260, - 260, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, - 264, 264, 264, 265, 265, 265, 265, 266, 266, 266, 267, - 267, 267, 268, 268, 268, 268, 269, 269, 269, 270, 270, - 270, 271, 271, 271, 271, 272, 272, 272, 273, 273, 273, - 274, 274, 274, 274, 275, 275, 275, 276, 276, 276, 277, - 277, 277, 277, 278, 278, 278, 279, 279, 279, 280, 280, - 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, 283, - 283, 284, 284, 284, 285, 285, 285, 286, 286, 286, 287, - 287, 287, 287, 288, 288, 288, 289, 289, 289, 290, 290, - 290, 290, 291, 291, 291, 292, 292, 292, 293, 293, 293, - 293, 294, 294, 294, 295, 295, 295, 296, 296, 296, 296, - 297, 297, 297, 298, 298, 298, 299, 299, 299, 299, 300, - 300, 300, 301, 301, 301, 302, 302, 302, 302, 303, 303, - 303, 304, 304, 304, 305, 305, 305, 305, 306, 306, 306, - 307, 307, 307, 308, 308, 308, 308, 309, 309, 309, 310, - 310, 310, 311, 311, 311, 311, 312, 312, 312, 313, 313, - 313, 314, 314, 314, 315, 315, 315, 315, 316, 316, 316, - 317, 317, 317, 318, 318, 318, 318, 319, 319, 319, 320, - 320, 320, 321, 321, 321, 321, 322, 322, 322, 323, 323, - 323, 324, 324, 324, 324, 325, 325, 325, 326, 326, 326, - 327, 327, 327, 327, 328, 328, 328, 329, 329, 329, 330, - 330, 330, 330, 331, 331, 331, 332, 332, 332, 333, 333, - 333, 333, 334, 334, 334, 335, 335, 335, 336, 336, 336, - 336, 337, 337, 337, 338, 338, 338, 339, 339, 339, 339, - 340, 340, 340, 341, 341, 341, 342, 342, 342, 342, 343, - 343, 343, 344, 344, 344, 345, 345, 345, 346, 346, 346, - 346, 347, 347, 347, 348, 348, 348, 349, 349, 349, 349, - 350, 350, 350, 351, 351, 351, 352, 352, 352, 352, 353, - 353, 353, 354, 354, 354, 355, 355, 355, 355, 356, 356, - 356, 357, 357, 357, 358, 358, 358, 358, 359, 359, 359, - 360, 360, 360, 361, 361, 361, 361, 362, 362, 362, 363, - 363, 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, - 366, 367, 367, 367, 367, 368, 368, 368, 369, 369, 369, - 370, 370, 370, 370, 371, 371, 371, 372, 372, 372, 373, - 373, 373, 374, 374, 374, 374, 375, 375, 375, 376, 376, - 376, 377, 377, 377, 377, 378, 378, 378, 379, 379, 379, - 380, 380, 380, 380, 381, 381, 381, 382, 382, 382, 383, - 383, 383, 383, 384, 384, 384, 385, 385, 385, 386, 386, - 386, 386, 387, 387, 387, 388, 388, 388, 389, 389, 389, - 389, 390, 390, 390, 391, 391, 391, 392, 392, 392, 392, - 393, 393, 393, 394, 394, 394, 395, 395, 395, 395, 396, - 396, 396, 397, 397, 397, 398, 398, 398, 398, 399, 399, - 399, 400, 400, 400, 401, 401, 401, 402, 402, 402, 402, - 403, 403, 403, 404, 404, 404, 405, 405, 405, 405, 406, - 406, 406, 407, 407, 407, 408, 408, 408, 408, 409, 409, - 409, 410, 410, 410, 411, 411, 411, 411, 412, 412, 412, - 413, 413, 413, 414, 414, 414, 414, 415, 415, 415, 416, - 416, 416, 417, 417, 417, 417, 418, 418, 418, 419, 419, - 419, 420, 420, 420, 420, 421, 421, 421, 422, 422, 422, - 423, 423, 423, 423, 424, 424, 424, 425, 425, 425, 426, - 426, 426, 426, 427, 427, 427, 428, 428, 428, 429, 429, - 429, 429, 430, 430, 430, 431, 431, 431, 432, 432, 432, - 433, 433, 433, 433, 434, 434, 434, 435, 435, 435, 436, - 436, 436, 436, 437, 437, 437, 438, 438, 438, 439, 439, - 439, 439, 440, 440, 440, 441, 441, 441, 442, 442, 442, - 442, 443, 443, 443, 444, 444, 444, 445, 445, 445, 445, - 446, 446, 446, 447, 447, 447, 448, 448, 448, 448, 449, - 449, 449, 450, 450, 450, 451, 451, 451, 451, 452, 452, - 452, 453, 453, 453, 454, 454, 454, 454, 455, 455, 455, - 456, 456, 456, 457, 457, 457, 457, 458, 458, 458, 459, - 459, 459, 460, 460, 460, 461, 461, 461, 461, 462, 462, - 462, 463, 463, 463, 464, 464, 464, 464, 465, 465, 465, - 466, 466, 466, 467, 467, 467, 467, 468, 468, 468, 469, - 469, 469, 470, 470, 470, 470, 471, 471, 471, 472, 472, - 472, 473, 473, 473, 473, 474, 474, 474, 475, 475, 475, - 476, 476, 476, 476, 477, 477, 477, 478, 478, 478, 479, - 479, 479, 479, 480, 480, 480, 481, 481, 481, 482, 482, - 482, 482, 483, 483, 483, 484, 484, 484, 485, 485, 485, - 485, 486, 486, 486, 487, 487, 487, 488, 488, 488, 488, - 489, 489, 489, 490, 490, 490, 491, 491, 491, 492, 492, - 492, 492, 493, 493, 493, 494, 494, 494, 495, 495, 495, - 495, 496, 496, 496, 497, 497, 497, 498, 498, 498, 498, - 499, 499, 499, 500, 500, 500, 501, 501, 501, 501, 502, - 502, 502, 503, 503, 503, 504, 504, 504, 504, 505, 505, - 505, 506, 506, 506, 507, 507, 507, 507, 508, 508, 508, - 509, 509, 509, 510, 510, 510, 510, 511, 511, 511, 512, - 512, 512, 513, 513, 513, 513, 514, 514, 514, 515, 515, - 515, 516, 516, 516, 516, 517, 517, 517, 518, 518, 518, - 519, 519, 519, 520, 520, 520, 520, 521, 521, 521, 522, - 522, 522, 523, 523, 523, 523, 524, 524, 524, 525, 525, - 525, 526, 526, 526, 526, 527, 527, 527, 528, 528, 528, - 529, 529, 529, 529, 530, 530, 530, 531, 531, 531, 532, - 532, 532, 532, 533, 533, 533, 534, 534, 534, 535, 535, - 535, 535, 536, 536, 536, 537, 537, 537, 538, 538, 538, - 538, 539, 539, 539, 540, 540, 540, 541, 541, 541, 541, - 542, 542, 542, 543, 543, 543, 544, 544, 544, 544, 545, - 545, 545, 546, 546, 546, 547, 547, 547, 548, 548, 548, - 548, 549, 549, 549, 550, 550, 550, 551, 551, 551, 551, - 552, 552, 552, 553, 553, 553, 554, 554, 554, 554, 555, - 555, 555, 556, 556, 556, 557, 557, 557, 557, 558, 558, - 558, 559, 559, 559, 560, 560, 560, 560, 561, 561, 561, - 562, 562, 562, 563, 563, 563, 563, 564, 564, 564, 565, - 565, 565, 566, 566, 566, 566, 567, 567, 567, 568, 568, - 568, 569, 569, 569, 569, 570, 570, 570, 571, 571, 571, - 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 575, - 575, 575, 575, 576, 576, 576, 577, 577, 577, 578, 578, - 578, 579, 579, 579, 579, 580, 580, 580, 581, 581, 581, - 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 585, - 585, 585, 585, 586, 586, 586, 587, 587, 587, 588, 588, - 588, 588, 589, 589, 589, 590, 590, 590, 591, 591, 591, - 591, 592, 592, 592, 593, 593, 593, 594, 594, 594, 594, - 595, 595, 595, 596, 596, 596, 597, 597, 597, 597, 598, - 598, 598, 599, 599, 599, 600, 600, 600, 600, 601, 601, - 601, 602, 602, 602, 603, 603, 603, 603, 604, 604, 604, - 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, - 608, 608, 609, 609, 609, 610, 610, 610, 610, 611, 611, - 611, 612, 612, 612, 613, 613, 613, 613, 614, 614, 614, - 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 618, - 618, 618, 619, 619, 619, 619, 620, 620, 620, 621, 621, - 621, 622, 622, 622, 622, 623, 623, 623, 624, 624, 624, - 625, 625, 625, 625, 626, 626, 626, 627, 627, 627, 628, - 628, 628, 628, 629, 629, 629, 630, 630, 630, 631, 631, - 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 634, - 634, 635, 635, 635, 636, 636, 636, 637, 637, 637, 638, - 638, 638, 638, 639, 639, 639, 640, 640, 640, 641, 641, - 641, 641, 642, 642, 642, 643, 643, 643, 644, 644, 644, - 644, 645, 645, 645, 646, 646, 646, 647, 647, 647, 647, + /*18,*/ 19, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 23, 24, 24, + 24, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 29, 30, + 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 35, + 36, 36, 36, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, + 41, 42, 42, 42, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, + 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 53, + 53, 53, 54, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, + 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 63, 64, 64, + 64, 65, 65, 65, 66, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 69, 70, + 70, 70, 71, 71, 71, 72, 72, 72, 72, 73, 73, 73, 74, 74, 74, 75, 75, 75, 75, + 76, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, + 82, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, 85, 85, 85, 86, 86, 86, 87, 87, + 87, 88, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 91, 92, 92, 92, 93, + 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, + 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, + 104, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 108, 109, 109, 109, 110, 110, + 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 115, 115, 115, 116, + 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 121, 121, 121, + 122, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 127, 127, + 127, 128, 128, 128, 128, 129, 129, 129, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 133, + 133, 133, 134, 134, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 137, 138, 138, 138, + 139, 139, 139, 140, 140, 140, 141, 141, 141, 141, 142, 142, 142, 143, 143, 143, 144, 144, 144, + 144, 145, 145, 145, 146, 146, 146, 147, 147, 147, 147, 148, 148, 148, 149, 149, 149, 150, 150, + 150, 150, 151, 151, 151, 152, 152, 152, 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 156, + 156, 156, 156, 157, 157, 157, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 161, 161, 161, + 162, 162, 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, 165, 165, 166, 166, 166, 167, 167, + 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 171, 171, 171, 172, 172, 172, 172, 173, + 173, 173, 174, 174, 174, 175, 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 178, + 179, 179, 179, 180, 180, 180, 181, 181, 181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, + 184, 185, 185, 185, 186, 186, 186, 187, 187, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, + 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 195, 195, 195, 196, + 196, 196, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 200, 201, 201, 201, + 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, 205, 205, 205, 206, 206, 206, 206, 207, 207, + 207, 208, 208, 208, 209, 209, 209, 209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 212, 213, + 213, 213, 214, 214, 214, 215, 215, 215, 215, 216, 216, 216, 217, 217, 217, 218, 218, 218, 218, + 219, 219, 219, 220, 220, 220, 221, 221, 221, 221, 222, 222, 222, 223, 223, 223, 224, 224, 224, + 224, 225, 225, 225, 226, 226, 226, 227, 227, 227, 228, 228, 228, 228, 229, 229, 229, 230, 230, + 230, 231, 231, 231, 231, 232, 232, 232, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, 236, + 236, 236, 237, 237, 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, 240, 240, 241, 241, 241, + 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 247, 247, + 247, 248, 248, 248, 249, 249, 249, 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, 252, 253, + 253, 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, 256, 257, 257, 257, 258, 258, 258, 259, + 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, 264, 264, 264, + 265, 265, 265, 265, 266, 266, 266, 267, 267, 267, 268, 268, 268, 268, 269, 269, 269, 270, 270, + 270, 271, 271, 271, 271, 272, 272, 272, 273, 273, 273, 274, 274, 274, 274, 275, 275, 275, 276, + 276, 276, 277, 277, 277, 277, 278, 278, 278, 279, 279, 279, 280, 280, 280, 280, 281, 281, 281, + 282, 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 285, 285, 286, 286, 286, 287, 287, 287, + 287, 288, 288, 288, 289, 289, 289, 290, 290, 290, 290, 291, 291, 291, 292, 292, 292, 293, 293, + 293, 293, 294, 294, 294, 295, 295, 295, 296, 296, 296, 296, 297, 297, 297, 298, 298, 298, 299, + 299, 299, 299, 300, 300, 300, 301, 301, 301, 302, 302, 302, 302, 303, 303, 303, 304, 304, 304, + 305, 305, 305, 305, 306, 306, 306, 307, 307, 307, 308, 308, 308, 308, 309, 309, 309, 310, 310, + 310, 311, 311, 311, 311, 312, 312, 312, 313, 313, 313, 314, 314, 314, 315, 315, 315, 315, 316, + 316, 316, 317, 317, 317, 318, 318, 318, 318, 319, 319, 319, 320, 320, 320, 321, 321, 321, 321, + 322, 322, 322, 323, 323, 323, 324, 324, 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, + 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 330, 331, 331, 331, 332, 332, 332, 333, 333, + 333, 333, 334, 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 337, 337, 338, 338, 338, 339, + 339, 339, 339, 340, 340, 340, 341, 341, 341, 342, 342, 342, 342, 343, 343, 343, 344, 344, 344, + 345, 345, 345, 346, 346, 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 349, 349, 350, 350, + 350, 351, 351, 351, 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 355, 355, 355, 355, 356, + 356, 356, 357, 357, 357, 358, 358, 358, 358, 359, 359, 359, 360, 360, 360, 361, 361, 361, 361, + 362, 362, 362, 363, 363, 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 366, 367, 367, 367, + 367, 368, 368, 368, 369, 369, 369, 370, 370, 370, 370, 371, 371, 371, 372, 372, 372, 373, 373, + 373, 374, 374, 374, 374, 375, 375, 375, 376, 376, 376, 377, 377, 377, 377, 378, 378, 378, 379, + 379, 379, 380, 380, 380, 380, 381, 381, 381, 382, 382, 382, 383, 383, 383, 383, 384, 384, 384, + 385, 385, 385, 386, 386, 386, 386, 387, 387, 387, 388, 388, 388, 389, 389, 389, 389, 390, 390, + 390, 391, 391, 391, 392, 392, 392, 392, 393, 393, 393, 394, 394, 394, 395, 395, 395, 395, 396, + 396, 396, 397, 397, 397, 398, 398, 398, 398, 399, 399, 399, 400, 400, 400, 401, 401, 401, 402, + 402, 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, 405, 405, 406, 406, 406, 407, 407, 407, + 408, 408, 408, 408, 409, 409, 409, 410, 410, 410, 411, 411, 411, 411, 412, 412, 412, 413, 413, + 413, 414, 414, 414, 414, 415, 415, 415, 416, 416, 416, 417, 417, 417, 417, 418, 418, 418, 419, + 419, 419, 420, 420, 420, 420, 421, 421, 421, 422, 422, 422, 423, 423, 423, 423, 424, 424, 424, + 425, 425, 425, 426, 426, 426, 426, 427, 427, 427, 428, 428, 428, 429, 429, 429, 429, 430, 430, + 430, 431, 431, 431, 432, 432, 432, 433, 433, 433, 433, 434, 434, 434, 435, 435, 435, 436, 436, + 436, 436, 437, 437, 437, 438, 438, 438, 439, 439, 439, 439, 440, 440, 440, 441, 441, 441, 442, + 442, 442, 442, 443, 443, 443, 444, 444, 444, 445, 445, 445, 445, 446, 446, 446, 447, 447, 447, + 448, 448, 448, 448, 449, 449, 449, 450, 450, 450, 451, 451, 451, 451, 452, 452, 452, 453, 453, + 453, 454, 454, 454, 454, 455, 455, 455, 456, 456, 456, 457, 457, 457, 457, 458, 458, 458, 459, + 459, 459, 460, 460, 460, 461, 461, 461, 461, 462, 462, 462, 463, 463, 463, 464, 464, 464, 464, + 465, 465, 465, 466, 466, 466, 467, 467, 467, 467, 468, 468, 468, 469, 469, 469, 470, 470, 470, + 470, 471, 471, 471, 472, 472, 472, 473, 473, 473, 473, 474, 474, 474, 475, 475, 475, 476, 476, + 476, 476, 477, 477, 477, 478, 478, 478, 479, 479, 479, 479, 480, 480, 480, 481, 481, 481, 482, + 482, 482, 482, 483, 483, 483, 484, 484, 484, 485, 485, 485, 485, 486, 486, 486, 487, 487, 487, + 488, 488, 488, 488, 489, 489, 489, 490, 490, 490, 491, 491, 491, 492, 492, 492, 492, 493, 493, + 493, 494, 494, 494, 495, 495, 495, 495, 496, 496, 496, 497, 497, 497, 498, 498, 498, 498, 499, + 499, 499, 500, 500, 500, 501, 501, 501, 501, 502, 502, 502, 503, 503, 503, 504, 504, 504, 504, + 505, 505, 505, 506, 506, 506, 507, 507, 507, 507, 508, 508, 508, 509, 509, 509, 510, 510, 510, + 510, 511, 511, 511, 512, 512, 512, 513, 513, 513, 513, 514, 514, 514, 515, 515, 515, 516, 516, + 516, 516, 517, 517, 517, 518, 518, 518, 519, 519, 519, 520, 520, 520, 520, 521, 521, 521, 522, + 522, 522, 523, 523, 523, 523, 524, 524, 524, 525, 525, 525, 526, 526, 526, 526, 527, 527, 527, + 528, 528, 528, 529, 529, 529, 529, 530, 530, 530, 531, 531, 531, 532, 532, 532, 532, 533, 533, + 533, 534, 534, 534, 535, 535, 535, 535, 536, 536, 536, 537, 537, 537, 538, 538, 538, 538, 539, + 539, 539, 540, 540, 540, 541, 541, 541, 541, 542, 542, 542, 543, 543, 543, 544, 544, 544, 544, + 545, 545, 545, 546, 546, 546, 547, 547, 547, 548, 548, 548, 548, 549, 549, 549, 550, 550, 550, + 551, 551, 551, 551, 552, 552, 552, 553, 553, 553, 554, 554, 554, 554, 555, 555, 555, 556, 556, + 556, 557, 557, 557, 557, 558, 558, 558, 559, 559, 559, 560, 560, 560, 560, 561, 561, 561, 562, + 562, 562, 563, 563, 563, 563, 564, 564, 564, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, + 568, 568, 568, 569, 569, 569, 569, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 573, 573, + 573, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 578, 578, 578, 579, 579, + 579, 579, 580, 580, 580, 581, 581, 581, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 585, + 585, 585, 585, 586, 586, 586, 587, 587, 587, 588, 588, 588, 588, 589, 589, 589, 590, 590, 590, + 591, 591, 591, 591, 592, 592, 592, 593, 593, 593, 594, 594, 594, 594, 595, 595, 595, 596, 596, + 596, 597, 597, 597, 597, 598, 598, 598, 599, 599, 599, 600, 600, 600, 600, 601, 601, 601, 602, + 602, 602, 603, 603, 603, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, + 608, 608, 608, 609, 609, 609, 610, 610, 610, 610, 611, 611, 611, 612, 612, 612, 613, 613, 613, + 613, 614, 614, 614, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 618, 618, 618, 619, 619, + 619, 619, 620, 620, 620, 621, 621, 621, 622, 622, 622, 622, 623, 623, 623, 624, 624, 624, 625, + 625, 625, 625, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, + 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 634, 634, 635, 635, 635, 636, 636, + 636, 637, 637, 637, 638, 638, 638, 638, 639, 639, 639, 640, 640, 640, 641, 641, 641, 641, 642, + 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 645, 646, 646, 646, 647, 647, 647, 647, 648, 648, 648, 649, 649, 649, 650, 650 }; static ULLong pfive[27] = { 5ll, @@ -1329,13 +916,11 @@ extern int strtod_diglim; * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) */ #if defined(IEEE_8087) + defined(VAX) -#define Storeinc(a, b, c) \ - (((unsigned short *)a)[1] = (unsigned short)b, \ - ((unsigned short *)a)[0] = (unsigned short)c, a++) +#define Storeinc(a, b, c) \ + (((unsigned short *)a)[1] = (unsigned short)b, ((unsigned short *)a)[0] = (unsigned short)c, a++) #else -#define Storeinc(a, b, c) \ - (((unsigned short *)a)[0] = (unsigned short)b, \ - ((unsigned short *)a)[1] = (unsigned short)c, a++) +#define Storeinc(a, b, c) \ + (((unsigned short *)a)[0] = (unsigned short)b, ((unsigned short *)a)[1] = (unsigned short)c, a++) #endif /* #define P DBL_MANT_DIG */ @@ -1487,8 +1072,7 @@ extern double rnd_prod(double, double), rnd_quot(double, double); typedef struct BCinfo BCinfo; struct BCinfo { - int dp0, dp1, dplen, dsign, e0, inexact, nd, nd0, rounding, scale, - uflchk; + int dp0, dp1, dplen, dsign, e0, inexact, nd, nd0, rounding, scale, uflchk; }; #define FFFFFFFF 0xffffffffUL @@ -1508,8 +1092,7 @@ static unsigned int maxthreads = 0; #ifdef __cplusplus extern "C" double strtod(const char *s00, char **se); -extern "C" char *dtoa(double d, int mode, int ndigits, int *decpt, int *sign, - char **rve); +extern "C" char *dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve); #endif struct Bigint { @@ -1538,8 +1121,7 @@ void set_max_dtoa_threads(unsigned int n) L = n * sizeof(ThInfo); if (TI1) { TI1 = (ThInfo *)REALLOC(TI1, L); - memset(TI1 + maxthreads, 0, - (n - maxthreads) * sizeof(ThInfo)); + memset(TI1 + maxthreads, 0, (n - maxthreads) * sizeof(ThInfo)); } else { TI1 = (ThInfo *)MALLOC(L); if (TI0_used) { @@ -1595,12 +1177,8 @@ static Bigint *Balloc(int k MTd) #ifdef Omit_Private_Memory rv = (Bigint *)MALLOC(sizeof(Bigint) + (x - 1) * sizeof(ULong)); #else - len = (sizeof(Bigint) + (x - 1) * sizeof(ULong) + - sizeof(double) - 1) / - sizeof(double); - if (k <= Kmax && - (long)(pmem_next - private_mem) + (long)len <= - (long)PRIVATE_mem + len = (sizeof(Bigint) + (x - 1) * sizeof(ULong) + sizeof(double) - 1) / sizeof(double); + if (k <= Kmax && (long)(pmem_next - private_mem) + (long)len <= (long)PRIVATE_mem #ifdef MULTIPLE_THREADS && TI == TI1 #endif @@ -1646,9 +1224,7 @@ static void Bfree(Bigint *v MTd) } } -#define Bcopy(x, y) \ - memcpy((char *)&x->sign, (char *)&y->sign, \ - y->wds * sizeof(Long) + 2 * sizeof(int)) +#define Bcopy(x, y) memcpy((char *)&x->sign, (char *)&y->sign, y->wds * sizeof(Long) + 2 * sizeof(int)) static Bigint *multadd(Bigint *b, int m, int a MTd) /* multiply by m and add a */ @@ -2493,21 +2069,14 @@ hexdig_init(void) /* Use of hexdig_init omitted 20121220 to avoid a */ } #else static unsigned char hexdig[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, + 0, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #endif #endif /* } Need_Hexdig */ @@ -2731,15 +2300,13 @@ void gethex(const char **sp, U *rvp, int rounding, int sign MTd) #ifdef USE_LOCALE int i; #ifdef NO_LOCALE_CACHE - const unsigned char *decimalpoint = - (unsigned char *)localeconv()->decimal_point; + const unsigned char *decimalpoint = (unsigned char *)localeconv()->decimal_point; #else const unsigned char *decimalpoint; static unsigned char *decimalpoint_cache; if (!(s0 = decimalpoint_cache)) { s0 = (unsigned char *)localeconv()->decimal_point; - if ((decimalpoint_cache = (unsigned char *)MALLOC( - strlen((const char *)s0) + 1))) { + if ((decimalpoint_cache = (unsigned char *)MALLOC(strlen((const char *)s0) + 1))) { strcpy((char *)decimalpoint_cache, (const char *)s0); s0 = decimalpoint_cache; } @@ -2964,8 +2531,7 @@ ovfl1: #ifdef IEEE_Arith /*{*/ switch (rounding) { case Round_near: - if (n == nbits && - (n < 2 || lostbits || any_on(b, n - 1))) + if (n == nbits && (n < 2 || lostbits || any_on(b, n - 1))) goto ret_tinyf; break; case Round_up: @@ -2989,8 +2555,7 @@ retz1: if (!k) { switch (rounding) { case Round_near: - if (((b->x[0] & 3) == 3) || - (lostbits && (b->x[0] & 1))) { + if (((b->x[0] & 3) == 3) || (lostbits && (b->x[0] & 1))) { multadd(b, 1, 1 MTa); emin_check: if (b->x[1] == (1 << (Exp_shift + 1))) { @@ -3052,9 +2617,7 @@ no_lostbits: k = b->wds; b = increment(b MTa); x = b->x; - if (!denorm && - (b->wds > k || ((n = nbits & kmask) != 0 && - hi0bits(x[k - 1]) < 32 - n))) { + if (!denorm && (b->wds > k || ((n = nbits & kmask) != 0 && hi0bits(x[k - 1]) < 32 - n))) { rshift(b, 1); if (++e > Emax) goto ovfl; @@ -3099,8 +2662,7 @@ normal: /* The next two lines ignore swap of low- and high-order 2 bytes. */ /* word0(rvp) = (b->x[1] & ~0x800000) | ((e + 129 + 55) << 23); */ /* word1(rvp) = b->x[0]; */ - word0(rvp) = ((b->x[1] & ~0x800000) >> 16) | ((e + 129 + 55) << 7) | - (b->x[1] << 16); + word0(rvp) = ((b->x[1] & ~0x800000) >> 16) | ((e + 129 + 55) << 7) | (b->x[1] << 16); word1(rvp) = (b->x[0] >> 16) | (b->x[0] << 16); #endif Bfree(b MTa); @@ -3239,8 +2801,7 @@ static double sulp(U *x, BCinfo *bc) int i; rv = ulp(x); - if (!bc->scale || - (i = 2 * P + 1 - ((word0(x) & Exp_mask) >> Exp_shift)) <= 0) + if (!bc->scale || (i = 2 * P + 1 - ((word0(x) & Exp_mask) >> Exp_shift)) <= 0) return rv; /* Is there an example where i <= 0 ? */ word0(&u) = Exp_1 + (i << Exp_shift); word1(&u) = 0; @@ -3417,8 +2978,7 @@ rethi1: } } else { /* Exact half-way case: apply round-even rule. */ - if ((j = ((word0(rv) & Exp_mask) >> Exp_shift) - bc->scale) <= - 0) { + if ((j = ((word0(rv) & Exp_mask) >> Exp_shift) - bc->scale) <= 0) { i = 1 - j; if (i <= 31) { if (word1(rv) & (0x1 << i)) @@ -3768,8 +3328,7 @@ ret0: vax_ovfl_check: word0(&rv) -= P * Exp_msk1; /* rv = */ rounded_product(dval(&rv), tens[e]); - if ((word0(&rv) & Exp_mask) > - Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) + if ((word0(&rv) & Exp_mask) > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) goto ovfl; word0(&rv) += P * Exp_msk1; #else @@ -3873,8 +3432,7 @@ vax_ovfl_check: t00 = bhi * p10->b0 + (t01 >> 32) + (t10 >> 32); if (t00 & 0x8000000000000000ull) { if ((t00 & 0x3ff) && (~t00 & 0x3fe)) { /* unambiguous result? */ - if (nd > 19 && - ((t00 + (1 << i) + 2) & 0x400) ^ (t00 & 0x400)) + if (nd > 19 && ((t00 + (1 << i) + 2) & 0x400) ^ (t00 & 0x400)) goto many_digits; if (erv <= 0) goto denormal; @@ -3892,8 +3450,7 @@ vax_ovfl_check: } } else { if ((t00 & 0x1ff) && (~t00 & 0x1fe)) { /* unambiguous result? */ - if (nd > 19 && - ((t00 + (1 << i) + 2) & 0x200) ^ (t00 & 0x200)) + if (nd > 19 && ((t00 + (1 << i) + 2) & 0x200) ^ (t00 & 0x200)) goto many_digits; if (erv <= 1) goto denormal1; @@ -3988,9 +3545,7 @@ noround_den: goto noround; } if ((tlo & 0xfffffff0) | (t00 & 0x3ff) && - (nd <= 19 || - ((t00 + (1ull << i)) & 0xfffffffffffffc00ull) == - (t00 & 0xfffffffffffffc00ull))) { + (nd <= 19 || ((t00 + (1ull << i)) & 0xfffffffffffffc00ull) == (t00 & 0xfffffffffffffc00ull))) { /* Unambiguous result. */ /* If nd > 19, then incrementing the 19th digit */ /* does not affect rv. */ @@ -4018,8 +3573,7 @@ noround: if (erv >= 0x7ff) goto ovfl; terv = erv; - LLval(&rv) = (terv << 52) | - ((t00 & 0x7ffffffffffff800ull) >> 11); + LLval(&rv) = (terv << 52) | ((t00 & 0x7ffffffffffff800ull) >> 11); goto ret; } } else { @@ -4056,9 +3610,7 @@ tiniest: #ifdef Honor_FLT_ROUNDS roundup1_den: #endif - if (0x8000000000000000ull & - (t00 += (tg << 1)) && - erv == 1) { + if (0x8000000000000000ull & (t00 += (tg << 1)) && erv == 1) { smallest_normal: LLval(&rv) = 0x0010000000000000ull; goto ret; @@ -4094,9 +3646,7 @@ noround1_den: goto noround1; } if ((tlo & 0xfffffff0) | (t00 & 0x1ff) && - (nd <= 19 || - ((t00 + (1ull << i)) & 0x7ffffffffffffe00ull) == - (t00 & 0x7ffffffffffffe00ull))) { + (nd <= 19 || ((t00 + (1ull << i)) & 0x7ffffffffffffe00ull) == (t00 & 0x7ffffffffffffe00ull))) { /* Unambiguous result. */ #ifdef Honor_FLT_ROUNDS switch (bc.rounding) { @@ -4122,8 +3672,7 @@ noround1: if (erv >= 0x800) goto ovfl; terv = erv - 1; - LLval(&rv) = (terv << 52) | - ((t00 & 0x3ffffffffffffc00ull) >> 10); + LLval(&rv) = (terv << 52) | ((t00 & 0x3ffffffffffffc00ull) >> 10); goto ret; } } @@ -4204,8 +3753,7 @@ range_err: /* The last multiplication could overflow. */ word0(&rv) -= P * Exp_msk1; dval(&rv) *= bigtens[j]; - if ((z = word0(&rv) & Exp_mask) > - Exp_msk1 * (DBL_MAX_EXP + Bias - P)) + if ((z = word0(&rv) & Exp_mask) > Exp_msk1 * (DBL_MAX_EXP + Bias - P)) goto ovfl; if (z > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) { /* set to largest number */ @@ -4228,9 +3776,7 @@ range_err: for (j = 0; e1 > 0; j++, e1 >>= 1) if (e1 & 1) dval(&rv) *= tinytens[j]; - if (bc.scale && - (j = 2 * P + 1 - - ((word0(&rv) & Exp_mask) >> Exp_shift)) > 0) { + if (bc.scale && (j = 2 * P + 1 - ((word0(&rv) & Exp_mask) >> Exp_shift)) > 0) { /* scaled rv is denormal; clear j low bits */ if (j >= 32) { if (j > 54) @@ -4239,8 +3785,7 @@ range_err: if (j >= 53) word0(&rv) = (P + 2) * Exp_msk1; else - word0(&rv) &= 0xffffffff - << (j - 32); + word0(&rv) &= 0xffffffff << (j - 32); } else word1(&rv) &= 0xffffffff << j; } @@ -4442,18 +3987,15 @@ for (;;) { if (y) #endif { - delta = lshift(delta, - Log2P MTb); + delta = lshift(delta, Log2P MTb); if (cmp(delta, bs) <= 0) adj.d = -0.5; } } apply_adj: #ifdef Avoid_Underflow /*{*/ - if (bc.scale && (y = word0(&rv) & Exp_mask) <= - 2 * P * Exp_msk1) - word0(&adj) += - (2 * P + 1) * Exp_msk1 - y; + if (bc.scale && (y = word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) + word0(&adj) += (2 * P + 1) * Exp_msk1 - y; #else #ifdef Sudden_Underflow if ((word0(&rv) & Exp_mask) <= P * Exp_msk1) { @@ -4545,13 +4087,8 @@ apply_adj: word1(&rv) == ( #ifdef Avoid_Underflow - (bc.scale && - (y = word0(&rv) & Exp_mask) <= - 2 * P * Exp_msk1) ? - (0xffffffff & - (0xffffffff - << (2 * P + 1 - - (y >> Exp_shift)))) : + (bc.scale && (y = word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) ? + (0xffffffff & (0xffffffff << (2 * P + 1 - (y >> Exp_shift)))) : #endif 0xffffffff)) { /*boundary case -- increment exponent*/ @@ -4594,10 +4131,8 @@ drop_down: #ifdef Avoid_Underflow if (bc.scale) { L = word0(&rv) & Exp_mask; - if (L <= - (2 * P + 1) * Exp_msk1) { - if (L > - (P + 2) * Exp_msk1) + if (L <= (2 * P + 1) * Exp_msk1) { + if (L > (P + 2) * Exp_msk1) /* round even * ==> */ /* accept rv */ @@ -4718,8 +4253,7 @@ drop_down: word0(&rv) -= P * Exp_msk1; adj.d = aadj1 * ulp(&rv); dval(&rv) += adj.d; - if ((word0(&rv) & Exp_mask) >= - Exp_msk1 * (DBL_MAX_EXP + Bias - P)) { + if ((word0(&rv) & Exp_mask) >= Exp_msk1 * (DBL_MAX_EXP + Bias - P)) { if (word0(&rv0) == Big0 && word1(&rv0) == Big1) goto ovfl; word0(&rv) = Big0; @@ -4762,15 +4296,12 @@ drop_down: adj.d = aadj1 * ulp(&rv); dval(&rv) += adj.d; #ifdef IBM - if ((word0(&rv) & Exp_mask) < - P * Exp_msk1) + if ((word0(&rv) & Exp_mask) < P * Exp_msk1) #else - if ((word0(&rv) & Exp_mask) <= - P * Exp_msk1) + if ((word0(&rv) & Exp_mask) <= P * Exp_msk1) #endif { - if (word0(&rv0) == Tiny0 && - word1(&rv0) == Tiny1) { + if (word0(&rv0) == Tiny0 && word1(&rv0) == Tiny1) { if (bc.nd > nd) { bc.uflchk = 1; break; @@ -4815,8 +4346,7 @@ drop_down: L = (Long)aadj; aadj -= L; /* The tolerances below are conservative. */ - if (bc.dsign || word1(&rv) || - word0(&rv) & Bndry_mask) { + if (bc.dsign || word1(&rv) || word0(&rv) & Bndry_mask) { if (aadj < .4999999 || aadj > .5000001) break; } else if (aadj < .4999999 / FLT_RADIX) @@ -4893,9 +4423,7 @@ static char *rv_alloc(int i MTd) int j, k, *r; j = sizeof(ULong); - for (k = 0; - sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (size_t)i; - j <<= 1) + for (k = 0; sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (size_t)i; j <<= 1) k++; r = (int *)Balloc(k MTa); *r = k; @@ -4906,8 +4434,7 @@ static char *rv_alloc(int i MTd) (char *)(r + 1); } -static char *nrv_alloc(const char *s, char *s0, size_t s0len, char **rve, - int n MTd) +static char *nrv_alloc(const char *s, char *s0, size_t s0len, char **rve, int n MTd) { char *rv, *t; @@ -4981,8 +4508,7 @@ void freedtoa(char *s) * calculation. */ -char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, - char **rve, char *buf, size_t blen) +char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve, char *buf, size_t blen) { /* Arguments ndigits, decpt, sign are similar to those of ecvt and fcvt; trailing zeros are suppressed from @@ -5030,8 +4556,7 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, #ifdef MULTIPLE_THREADS ThInfo *TI = 0; #endif - int bbits, b2, b5, be, dig, i, ilim, ilim1, j, j1, k, leftright, m2, m5, - s2, s5, spec_case; + int bbits, b2, b5, be, dig, i, ilim, ilim1, j, j1, k, leftright, m2, m5, s2, s5, spec_case; #if !defined(Sudden_Underflow) || defined(USE_BF96) int denorm; #endif @@ -5043,9 +4568,8 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, #endif #ifdef USE_BF96 /*{{*/ BF96 *p10; - ULLong dbhi, dbits, dblo, den, hb, rb, rblo, res, res0, res3, reslo, - sres, sulp, tv0, tv1, tv2, tv3, ulp, ulplo, ulpmask, ures, - ureslo, zb; + ULLong dbhi, dbits, dblo, den, hb, rb, rblo, res, res0, res3, reslo, sres, sulp, tv0, tv1, tv2, tv3, ulp, ulplo, + ulpmask, ures, ureslo, zb; int eulp, k1, n2, ulpadj, ulpshift; #else /*}{*/ #ifndef Sudden_Underflow @@ -5168,8 +4692,7 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, dbhi = dbits >> 32; dblo = dbits & 0xffffffffull; i = be - 0x3fe; - if (i < p10->e || (i == p10->e && (dbhi < p10->b0 || (dbhi == p10->b0 && - dblo < p10->b1)))) + if (i < p10->e || (i == p10->e && (dbhi < p10->b0 || (dbhi == p10->b0 && dblo < p10->b1)))) --j; k = j - 342; @@ -5181,8 +4704,7 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, #ifdef Sudden_Underflow i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask >> Exp_shift1)); #else - if ((i = (int)(word0(&u) >> Exp_shift1 & - (Exp_mask >> Exp_shift1)))) { + if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask >> Exp_shift1)))) { #endif dval(&d2) = dval(&u); word0(&d2) &= Frac_mask1; @@ -5227,16 +4749,14 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, /* d is denormalized */ i = bbits + be + (Bias + (P - 1) - 1); - x = i > 32 ? word0(&u) << (64 - i) | word1(&u) >> (i - 32) : - word1(&u) << (32 - i); + x = i > 32 ? word0(&u) << (64 - i) | word1(&u) >> (i - 32) : word1(&u) << (32 - i); dval(&d2) = x; word0(&d2) -= 31 * Exp_msk1; /* adjust exponent */ i -= (Bias + (P - 1) - 1) + 1; denorm = 1; } #endif - ds = (dval(&d2) - 1.5) * 0.289529654602168 + 0.1760912590558 + - i * 0.301029995663981; + ds = (dval(&d2) - 1.5) * 0.289529654602168 + 0.1760912590558 + i * 0.301029995663981; k = (int)ds; if (ds < 0. && ds != k) k--; /* want k = floor(ds) */ @@ -5312,9 +4832,7 @@ char *dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, } if (!buf) { buf = rv_alloc(i MTb); - blen = sizeof(Bigint) + - ((1 << ((int *)buf)[-1]) - 1) * sizeof(ULong) - - sizeof(int); + blen = sizeof(Bigint) + ((1 << ((int *)buf)[-1]) - 1) * sizeof(ULong) - sizeof(int); } else if (blen <= (size_t)i) { buf = 0; if (rve) @@ -5409,9 +4927,7 @@ use_exact: } if (ilim < 0) { ures = den - res; - if (2 * res <= ulp && - (spec_case ? 4 * res <= ulp : - (2 * res < ulp || dig & 1))) + if (2 * res <= ulp && (spec_case ? 4 * res <= ulp : (2 * res < ulp || dig & 1))) goto ulp_reached; if (2 * ures < ulp) goto Roundup; @@ -5450,13 +4966,9 @@ no_div: } if (ilim < 0) { ures = (1ull << j) - res; - if (2 * res <= ulp && - (spec_case ? 4 * res <= ulp : - (2 * res < ulp || dig & 1))) { + if (2 * res <= ulp && (spec_case ? 4 * res <= ulp : (2 * res < ulp || dig & 1))) { ulp_reached: - if (ures < res || - (ures == res && dig & 1) || - (dig == 9 && 2 * ures <= ulp)) + if (ures < res || (ures == res && dig & 1) || (dig == 9 && 2 * ures <= ulp)) goto Roundup; goto retc; } @@ -5530,8 +5042,7 @@ toobig: /* scaled ulp = ulp * 2^(eulp - 60) */ /* We maintain 61 bits of the scaled ulp. */ if (ilim == 0) { - if (!(res & 0x7fffffffffffffeull) || - !((~res) & 0x7fffffffffffffeull)) + if (!(res & 0x7fffffffffffffeull) || !((~res) & 0x7fffffffffffffeull)) goto Fast_failed1; S = mhi = 0; if (res >= 0x5000000000000000ull) @@ -5563,14 +5074,11 @@ toobig: zb = -(1ull << (eulp + 63)); if (!(zb & res)) { sres = res << (1 - eulp); - if (sres < ulp && - (!spec_case || 2 * sres < ulp)) { - if ((res + rb) << (1 - eulp) >= - ulp) + if (sres < ulp && (!spec_case || 2 * sres < ulp)) { + if ((res + rb) << (1 - eulp) >= ulp) goto Fast_failed; if (ures < res) { - if (ures + rb >= - res - rb) + if (ures + rb >= res - rb) goto Fast_failed; goto Roundup; } @@ -5680,26 +5188,18 @@ Fast_failed: zb = -(1ull << (eulp + 60)); if (!(zb & (res + rb))) { sres = (res - rb) << (1 - eulp); - if (sres < ulp && - (!spec_case || 2 * sres < ulp)) { + if (sres < ulp && (!spec_case || 2 * sres < ulp)) { sres = res << (1 - eulp); if ((j = eulp + 31) > 0) - sres += (rblo + - reslo) >> - j; + sres += (rblo + reslo) >> j; else - sres += (rblo + reslo) - << -j; - if (sres + (rb << (1 - eulp)) >= - ulp) + sres += (rblo + reslo) << -j; + if (sres + (rb << (1 - eulp)) >= ulp) goto Fast_failed1; if (sres >= ulp) goto more96; - if (ures < res || - (ures == res && - ureslo < reslo)) { - if (ures + rb >= - res - rb) + if (ures < res || (ures == res && ureslo < reslo)) { + if (ures + rb >= res - rb) goto Fast_failed1; goto Roundup; } @@ -5708,8 +5208,7 @@ Fast_failed: goto retc; } } - if (!(zb & ures) && - (ures - rb) << (1 - eulp) < ulp) { + if (!(zb & ures) && (ures - rb) << (1 - eulp) < ulp) { if ((ures + rb) << (2 - eulp) < ulp) goto Roundup; goto Fast_failed1; @@ -5857,8 +5356,7 @@ Fast_failed1: the next few lines */ word0(&eps1) -= Exp_msk1 * (Bias + P - 1); dval(&eps1) *= tens[j1 & 0xf]; - for (i = 0, j = (j1 - 256) >> 4; j; - j >>= 1, i++) + for (i = 0, j = (j1 - 256) >> 4; j; j >>= 1, i++) if (j & 1) dval(&eps1) *= bigtens[i]; if (eps.d < eps1.d) diff --git a/lib/libc/stdio/fclose.c b/lib/libc/stdio/fclose.c index 4fdf6495..06cda830 100644 --- a/lib/libc/stdio/fclose.c +++ b/lib/libc/stdio/fclose.c @@ -1,6 +1,5 @@ -#include <__stdio.h> // for __FILE -#include // for fflush, FILE, fclose, stderr, stdin, stdout -#include // for close +#include // for fflush, FILE, fclose, stderr, stdin, stdout +#include // for close int fclose(FILE *stream) { diff --git a/lib/libc/stdio/fdopen.c b/lib/libc/stdio/fdopen.c index dc9da567..ea0868b4 100644 --- a/lib/libc/stdio/fdopen.c +++ b/lib/libc/stdio/fdopen.c @@ -1,7 +1,8 @@ #include "__stdio.h" // for __FILE, __libc_fadd -#include // for FILE, _IONBF, SEEK_END, _IOLBF, fdopen -#include // for calloc, free -#include +#include "stddef.h" +#include +#include // for FILE, _IONBF, SEEK_END, _IOLBF, fdopen +#include // for calloc, free #include // for lseek, off_t FILE *fdopen(int fildes, const char *mode) diff --git a/lib/libc/stdio/feof.c b/lib/libc/stdio/feof.c index 6a36172b..235c4931 100644 --- a/lib/libc/stdio/feof.c +++ b/lib/libc/stdio/feof.c @@ -1,4 +1,3 @@ -#include <__stdio.h> #include int feof(FILE *stream) diff --git a/lib/libc/stdio/feof_unlocked.c b/lib/libc/stdio/feof_unlocked.c index 4d7d9d53..f6edee58 100644 --- a/lib/libc/stdio/feof_unlocked.c +++ b/lib/libc/stdio/feof_unlocked.c @@ -3,5 +3,5 @@ int feof_unlocked(FILE *stream) { - return (stream) ? stream->eof : 0; + return (stream) ? ((struct __FILE *)stream)->eof : 0; } diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index b3fca8bd..b73422a6 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -1,8 +1,5 @@ #include "__stdio.h" // for __FILE, _IO_ERR -#include "stddef.h" // for NULL -#include // for LIBC_UNLOCK, LIBC_LOCK -#include // for errno, EBADF, EIO #include int fflush(struct __FILE *stream) diff --git a/lib/libc/stdio/fflush_unlocked.c b/lib/libc/stdio/fflush_unlocked.c index b4ee3e43..49bc1acc 100644 --- a/lib/libc/stdio/fflush_unlocked.c +++ b/lib/libc/stdio/fflush_unlocked.c @@ -1,7 +1,9 @@ +#include "stddef.h" #include <__stdio.h> #include #include #include +#include #include #include diff --git a/lib/libc/stdio/fgets_unlocked.c b/lib/libc/stdio/fgets_unlocked.c index 9e2dca60..3258a4e8 100644 --- a/lib/libc/stdio/fgets_unlocked.c +++ b/lib/libc/stdio/fgets_unlocked.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include char *fgets_unlocked(char *s, int n, FILE *stream) diff --git a/lib/libc/stdio/fileno_unlocked.c b/lib/libc/stdio/fileno_unlocked.c index a3490686..d15d6387 100644 --- a/lib/libc/stdio/fileno_unlocked.c +++ b/lib/libc/stdio/fileno_unlocked.c @@ -2,7 +2,7 @@ #include #include -int fileno_unlocked(FILE *stream) +int fileno_unlocked(struct __FILE *stream) { if (stream->fd < 0) { errno = EBADF; diff --git a/lib/libc/stdio/flockfile.c b/lib/libc/stdio/flockfile.c index 788750b0..8732685b 100644 --- a/lib/libc/stdio/flockfile.c +++ b/lib/libc/stdio/flockfile.c @@ -4,5 +4,5 @@ void flockfile(FILE *file) { - LIBC_LOCK(file->lock); + LIBC_LOCK(((struct __FILE *)file)->lock); } diff --git a/lib/libc/stdio/fopen.c b/lib/libc/stdio/fopen.c index 0265694a..20273077 100644 --- a/lib/libc/stdio/fopen.c +++ b/lib/libc/stdio/fopen.c @@ -1,11 +1,12 @@ +#include "stddef.h" #include <__stdio.h> -#include // for EINVAL, errno -#include // for O_WRONLY, O_CREAT, O_RDONLY, open, O_APPEND +#include // for EINVAL, errno +#include // for O_WRONLY, O_CREAT, O_RDONLY, open, O_APPEND +#include #include // for FILE, BUFSIZ, fopen, _IOLBF #include // for calloc, free, malloc #include // for strchr -#include #include // for close FILE *fopen(const char *restrict pathname, const char *restrict mode) diff --git a/lib/libc/stdio/fread_unlocked.c b/lib/libc/stdio/fread_unlocked.c index 4251a7ed..c80dd9c0 100644 --- a/lib/libc/stdio/fread_unlocked.c +++ b/lib/libc/stdio/fread_unlocked.c @@ -1,6 +1,5 @@ #include "__stdio.h" // for __FILE, _IO_EOF, _IO_ERR -#include #include #include #include diff --git a/lib/libc/stdio/fseek.c b/lib/libc/stdio/fseek.c index 19459e7f..65f654f9 100644 --- a/lib/libc/stdio/fseek.c +++ b/lib/libc/stdio/fseek.c @@ -1,7 +1,6 @@ #include "__stdio.h" // for __FILE, _IO_EOF, _IO_ERR #include "stddef.h" // for NULL -#include // for LIBC_LOCK, LIBC_UNLOCK #include // for FILE, fseek #include // for lseek, off_t diff --git a/lib/libc/stdio/ftrylockfile.c b/lib/libc/stdio/ftrylockfile.c index b8f89e4b..0c25dfeb 100644 --- a/lib/libc/stdio/ftrylockfile.c +++ b/lib/libc/stdio/ftrylockfile.c @@ -1,8 +1,9 @@ #include <__stdio.h> -#include +#include +#include #include -int ftrylockfile(FILE *file) +int ftrylockfile(struct __FILE *file) { if (file == NULL) return -1; diff --git a/lib/libc/stdio/funlockfile.c b/lib/libc/stdio/funlockfile.c index 9d4154c7..509e4eae 100644 --- a/lib/libc/stdio/funlockfile.c +++ b/lib/libc/stdio/funlockfile.c @@ -2,7 +2,7 @@ #include #include -void funlockfile(FILE *file) +void funlockfile(struct __FILE *file) { LIBC_UNLOCK(file->lock); } diff --git a/lib/libc/stdio/fwrite_unlocked.c b/lib/libc/stdio/fwrite_unlocked.c index dd5f4c0b..ec23a58a 100644 --- a/lib/libc/stdio/fwrite_unlocked.c +++ b/lib/libc/stdio/fwrite_unlocked.c @@ -1,5 +1,4 @@ #include "__stdio.h" -#include #include #include #include diff --git a/lib/libc/stdio/pclose.c b/lib/libc/stdio/pclose.c index 1967b2c8..31afe5be 100644 --- a/lib/libc/stdio/pclose.c +++ b/lib/libc/stdio/pclose.c @@ -1,8 +1,8 @@ -#include <__stdio.h> // for __FILE +#include <__stdio.h> #include // for fclose, FILE, pclose #include // for waitpid -int pclose(FILE *stream) +int pclose(struct __FILE *stream) { int stat; fclose(stream); diff --git a/lib/libc/stdio/popen.c b/lib/libc/stdio/popen.c index 5720fba3..a1ef6a9f 100644 --- a/lib/libc/stdio/popen.c +++ b/lib/libc/stdio/popen.c @@ -1,14 +1,14 @@ -#include "stddef.h" // for NULL +#include <__stdio.h> +#include // for NULL -#include <__stdio.h> // for __FILE -#include // for EINVAL, errno -#include // for O_RDONLY, O_CLOEXEC, O_WRONLY -#include // for FILE, fclose, fdopen, popen -#include // for close, dup2, _exit, execl, fork, pipe2, STDIN_F... +#include // for EINVAL, errno +#include // for O_RDONLY, O_CLOEXEC, O_WRONLY +#include // for FILE, fclose, fdopen, popen +#include // for close, dup2, _exit, execl, fork, pipe2, STDIN_F... FILE *popen(const char *command, const char *mode) { - FILE *stream; + struct __FILE *stream; int oflag; int pipefd[2]; diff --git a/lib/libc/stdio/setvbuf.c b/lib/libc/stdio/setvbuf.c index d6b41d31..ec0f7757 100644 --- a/lib/libc/stdio/setvbuf.c +++ b/lib/libc/stdio/setvbuf.c @@ -1,9 +1,9 @@ #include "stddef.h" // for NULL -#include <__stdio.h> // for __FILE -#include // for _IONBF, FILE, _IOFBF, _IOLBF, setvbuf, size_t +#include <__stdio.h> +#include // for _IONBF, FILE, _IOFBF, _IOLBF, setvbuf, size_t -int setvbuf(FILE *restrict stream, char *restrict buf, int type, size_t size) +int setvbuf(struct __FILE *restrict stream, char *restrict buf, int type, size_t size) { if (type != _IOFBF && type != _IOLBF && type != _IONBF) return -1; diff --git a/lib/libc/stdio/vsnprintf.c b/lib/libc/stdio/vsnprintf.c index 818cffb5..9c249fb8 100644 --- a/lib/libc/stdio/vsnprintf.c +++ b/lib/libc/stdio/vsnprintf.c @@ -6,8 +6,7 @@ #include // for vfprintf, vsnprintf, _IONBF, size_t, va_list #include // for memset -int vsnprintf(char *restrict s, size_t n, const char *restrict format, - va_list ap) +int vsnprintf(char *restrict s, size_t n, const char *restrict format, va_list ap) { int r; struct __FILE stream; diff --git a/lib/libc/stdlib/aligned_alloc.c b/lib/libc/stdlib/aligned_alloc.c index f8ab24db..be5bab4c 100644 --- a/lib/libc/stdlib/aligned_alloc.c +++ b/lib/libc/stdlib/aligned_alloc.c @@ -29,8 +29,7 @@ void *aligned_alloc(size_t alignment, size_t size) } uintptr_t raw_addr = (uintptr_t)raw_ptr; - uintptr_t aligned_addr = (raw_addr + sizeof(void *) + alignment - 1) & - ~(alignment - 1); + uintptr_t aligned_addr = (raw_addr + sizeof(void *) + alignment - 1) & ~(alignment - 1); void **orig_ptr_slot = (void **)(aligned_addr - sizeof(void *)); *orig_ptr_slot = raw_ptr; diff --git a/lib/libc/stdlib/bsearch.c b/lib/libc/stdlib/bsearch.c index b4f83d55..3d2ef896 100644 --- a/lib/libc/stdlib/bsearch.c +++ b/lib/libc/stdlib/bsearch.c @@ -67,8 +67,7 @@ is respectively less than, matching, or greater than the array member. * have to make lim 3, then halve, obtaining 1, so that we will only * look at item 3. */ -void *bsearch(const void *key, const void *base0, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)) +void *bsearch(const void *key, const void *base0, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { const char *base = (const char *)base0; int lim, cmp; diff --git a/lib/libc/stdlib/calloc.c b/lib/libc/stdlib/calloc.c index b472d446..d5762de6 100644 --- a/lib/libc/stdlib/calloc.c +++ b/lib/libc/stdlib/calloc.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include // for errno, EINVAL, ENOMEM #include // for calloc, malloc #include // for size_t, memset diff --git a/lib/libc/stdlib/heapsort.c b/lib/libc/stdlib/heapsort.c index 20922f12..b6b97430 100644 --- a/lib/libc/stdlib/heapsort.c +++ b/lib/libc/stdlib/heapsort.c @@ -68,21 +68,19 @@ * There two cases. If j == nmemb, select largest of Ki and Kj. If * j < nmemb, select largest of Ki, Kj and Kj+1. */ -#define CREATE(initval, nmemb, par_i, child_i, par, child, size, count, tmp) \ - { \ - for ((par_i) = initval; ((child_i) = (par_i) * 2) <= (nmemb); \ - (par_i) = (child_i)) { \ - (child) = base + (child_i) * (size); \ - if ((child_i) < (nmemb) && \ - compar(child, (child) + (size)) < 0) { \ - (child) += (size); \ - ++(child_i); \ - } \ - (par) = base + (par_i) * (size); \ - if (compar(child, par) <= 0) \ - break; \ - SWAP(par, child, count, size, tmp); \ - } \ +#define CREATE(initval, nmemb, par_i, child_i, par, child, size, count, tmp) \ + { \ + for ((par_i) = initval; ((child_i) = (par_i) * 2) <= (nmemb); (par_i) = (child_i)) { \ + (child) = base + (child_i) * (size); \ + if ((child_i) < (nmemb) && compar(child, (child) + (size)) < 0) { \ + (child) += (size); \ + ++(child_i); \ + } \ + (par) = base + (par_i) * (size); \ + if (compar(child, par) <= 0) \ + break; \ + SWAP(par, child, count, size, tmp); \ + } \ } /* @@ -102,30 +100,28 @@ * * XXX Don't break the #define SELECT line, below. Reiser cpp gets upset. */ -#define SELECT(par_i, child_i, nmemb, par, child, size, k, count, tmp1, tmp2) \ - { \ - for ((par_i) = 1; ((child_i) = (par_i) * 2) <= (nmemb); \ - (par_i) = (child_i)) { \ - (child) = base + (child_i) * (size); \ - if ((child_i) < (nmemb) && \ - compar(child, (child) + (size)) < 0) { \ - (child) += (size); \ - ++(child_i); \ - } \ - (par) = base + (par_i) * (size); \ - COPY(par, child, count, size, tmp1, tmp2); \ - } \ - for (;;) { \ - (child_i) = par_i; \ - (par_i) = (child_i) / 2; \ - (child) = base + (child_i) * (size); \ - (par) = base + (par_i) * (size); \ - if ((child_i) == 1 || compar(k, par) < 0) { \ - COPY(child, k, count, size, tmp1, tmp2); \ - break; \ - } \ - COPY(child, par, count, size, tmp1, tmp2); \ - } \ +#define SELECT(par_i, child_i, nmemb, par, child, size, k, count, tmp1, tmp2) \ + { \ + for ((par_i) = 1; ((child_i) = (par_i) * 2) <= (nmemb); (par_i) = (child_i)) { \ + (child) = base + (child_i) * (size); \ + if ((child_i) < (nmemb) && compar(child, (child) + (size)) < 0) { \ + (child) += (size); \ + ++(child_i); \ + } \ + (par) = base + (par_i) * (size); \ + COPY(par, child, count, size, tmp1, tmp2); \ + } \ + for (;;) { \ + (child_i) = par_i; \ + (par_i) = (child_i) / 2; \ + (child) = base + (child_i) * (size); \ + (par) = base + (par_i) * (size); \ + if ((child_i) == 1 || compar(k, par) < 0) { \ + COPY(child, k, count, size, tmp1, tmp2); \ + break; \ + } \ + COPY(child, par, count, size, tmp1, tmp2); \ + } \ } /* @@ -135,8 +131,7 @@ * a data set that will trigger the worst case is nonexistent. Heapsort's * only advantage over quicksort is that it requires little additional memory. */ -int heapsort(void *vbase, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)) +int heapsort(void *vbase, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { size_t cnt; size_t i; diff --git a/lib/libc/stdlib/heapsort_r.c b/lib/libc/stdlib/heapsort_r.c index 05c6e3ae..348d5a07 100644 --- a/lib/libc/stdlib/heapsort_r.c +++ b/lib/libc/stdlib/heapsort_r.c @@ -68,21 +68,19 @@ * There two cases. If j == nmemb, select largest of Ki and Kj. If * j < nmemb, select largest of Ki, Kj and Kj+1. */ -#define CREATE(initval, nmemb, par_i, child_i, par, child, size, count, tmp) \ - { \ - for ((par_i) = initval; ((child_i) = (par_i) * 2) <= (nmemb); \ - (par_i) = (child_i)) { \ - (child) = base + (child_i) * (size); \ - if ((child_i) < (nmemb) && \ - compar(thunk, child, (child) + (size)) < 0) { \ - (child) += (size); \ - ++(child_i); \ - } \ - (par) = base + (par_i) * (size); \ - if (compar(thunk, child, par) <= 0) \ - break; \ - SWAP(par, child, count, size, tmp); \ - } \ +#define CREATE(initval, nmemb, par_i, child_i, par, child, size, count, tmp) \ + { \ + for ((par_i) = initval; ((child_i) = (par_i) * 2) <= (nmemb); (par_i) = (child_i)) { \ + (child) = base + (child_i) * (size); \ + if ((child_i) < (nmemb) && compar(thunk, child, (child) + (size)) < 0) { \ + (child) += (size); \ + ++(child_i); \ + } \ + (par) = base + (par_i) * (size); \ + if (compar(thunk, child, par) <= 0) \ + break; \ + SWAP(par, child, count, size, tmp); \ + } \ } /* @@ -102,30 +100,28 @@ * * XXX Don't break the #define SELECT line, below. Reiser cpp gets upset. */ -#define SELECT(par_i, child_i, nmemb, par, child, size, k, count, tmp1, tmp2) \ - { \ - for ((par_i) = 1; ((child_i) = (par_i) * 2) <= (nmemb); \ - (par_i) = (child_i)) { \ - (child) = base + (child_i) * (size); \ - if ((child_i) < (nmemb) && \ - compar(thunk, child, (child) + (size)) < 0) { \ - (child) += (size); \ - ++(child_i); \ - } \ - (par) = base + (par_i) * (size); \ - COPY(par, child, count, size, tmp1, tmp2); \ - } \ - for (;;) { \ - (child_i) = par_i; \ - (par_i) = (child_i) / 2; \ - (child) = base + (child_i) * (size); \ - (par) = base + (par_i) * (size); \ - if ((child_i) == 1 || compar(thunk, k, par) < 0) { \ - COPY(child, k, count, size, tmp1, tmp2); \ - break; \ - } \ - COPY(child, par, count, size, tmp1, tmp2); \ - } \ +#define SELECT(par_i, child_i, nmemb, par, child, size, k, count, tmp1, tmp2) \ + { \ + for ((par_i) = 1; ((child_i) = (par_i) * 2) <= (nmemb); (par_i) = (child_i)) { \ + (child) = base + (child_i) * (size); \ + if ((child_i) < (nmemb) && compar(thunk, child, (child) + (size)) < 0) { \ + (child) += (size); \ + ++(child_i); \ + } \ + (par) = base + (par_i) * (size); \ + COPY(par, child, count, size, tmp1, tmp2); \ + } \ + for (;;) { \ + (child_i) = par_i; \ + (par_i) = (child_i) / 2; \ + (child) = base + (child_i) * (size); \ + (par) = base + (par_i) * (size); \ + if ((child_i) == 1 || compar(thunk, k, par) < 0) { \ + COPY(child, k, count, size, tmp1, tmp2); \ + break; \ + } \ + COPY(child, par, count, size, tmp1, tmp2); \ + } \ } /* @@ -135,8 +131,7 @@ * a data set that will trigger the worst case is nonexistent. Heapsort's * only advantage over quicksort is that it requires little additional memory. */ -int heapsort_r(void *vbase, size_t nmemb, size_t size, void *thunk, - int (*compar)(void *, const void *, const void *)) +int heapsort_r(void *vbase, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *)) { size_t cnt; size_t i; diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c index c696e64c..ff89dfa3 100644 --- a/lib/libc/stdlib/malloc.c +++ b/lib/libc/stdlib/malloc.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include // for LIBC_UNLOCK, LIBC_LOCK #include // for libc, libc::(anonymous) #include // for page, page::(anonymous), class, global_size_c... diff --git a/lib/libc/stdlib/posix_memalign.c b/lib/libc/stdlib/posix_memalign.c index f76e63fe..251512a1 100644 --- a/lib/libc/stdlib/posix_memalign.c +++ b/lib/libc/stdlib/posix_memalign.c @@ -11,8 +11,7 @@ int posix_memalign(void **memptr, size_t alignment, size_t size) *memptr = NULL; - if (alignment < sizeof(void *) || alignment % sizeof(void *) != 0 || - (alignment & (alignment - 1)) != 0) { + if (alignment < sizeof(void *) || alignment % sizeof(void *) != 0 || (alignment & (alignment - 1)) != 0) { return EINVAL; } diff --git a/lib/libc/stdlib/qsort.c b/lib/libc/stdlib/qsort.c index ab0256a5..1f78ce9a 100644 --- a/lib/libc/stdlib/qsort.c +++ b/lib/libc/stdlib/qsort.c @@ -5,8 +5,7 @@ static int wrapper(const void *a, const void *b, void *compar) return ((int (*)(const void *, const void *))compar)(a, b); } -void qsort(void *base, size_t nel, size_t width, - int (*compar)(const void *, const void *)) +void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *)) { qsort_r(base, nel, width, wrapper, compar); } diff --git a/lib/libc/stdlib/qsort_r.c b/lib/libc/stdlib/qsort_r.c index 25a3aa81..54420ebd 100644 --- a/lib/libc/stdlib/qsort_r.c +++ b/lib/libc/stdlib/qsort_r.c @@ -38,8 +38,7 @@ typedef int (*cmpfun)(const void *, const void *, void *); static inline int pntz(size_t p[2]) { int r = ntz(p[0] - 1); - if (r != 0 || - (r = 8 * sizeof(size_t) + ntz(p[1])) != 8 * sizeof(size_t)) { + if (r != 0 || (r = 8 * sizeof(size_t) + ntz(p[1])) != 8 * sizeof(size_t)) { return r; } return 0; @@ -98,8 +97,7 @@ static inline void shr(size_t p[2], int n) p[1] >>= n; } -static void sift(unsigned char *head, size_t width, cmpfun cmp, void *arg, - int pshift, size_t lp[], int max_lp_index) +static void sift(unsigned char *head, size_t width, cmpfun cmp, void *arg, int pshift, size_t lp[], int max_lp_index) { unsigned char *rt, *lf; unsigned char *ar[14 * sizeof(size_t) + 1]; @@ -129,9 +127,8 @@ static void sift(unsigned char *head, size_t width, cmpfun cmp, void *arg, cycle(width, ar, i); } -static void trinkle(unsigned char *head, size_t width, cmpfun cmp, void *arg, - size_t pp[2], int pshift, int trusty, size_t lp[], - int max_lp_index) +static void trinkle(unsigned char *head, size_t width, cmpfun cmp, void *arg, size_t pp[2], int pshift, int trusty, + size_t lp[], int max_lp_index) { unsigned char *stepson, *rt, *lf; size_t p[2]; @@ -151,12 +148,10 @@ static void trinkle(unsigned char *head, size_t width, cmpfun cmp, void *arg, if (cmp(stepson, ar[0], arg) <= 0) { break; } - if (!trusty && pshift > 1 && pshift - 2 >= 0 && - pshift - 2 <= max_lp_index) { + if (!trusty && pshift > 1 && pshift - 2 >= 0 && pshift - 2 <= max_lp_index) { rt = head - width; lf = head - width - lp[pshift - 2]; - if (cmp(rt, stepson, arg) >= 0 || - cmp(lf, stepson, arg) >= 0) { + if (cmp(rt, stepson, arg) >= 0 || cmp(lf, stepson, arg) >= 0) { break; } } @@ -191,8 +186,7 @@ void qsort_r(void *base, size_t nel, size_t width, cmpfun cmp, void *arg) high = head + size - width; /* Precompute Leonardo numbers, scaled by element width */ - for (lp[0] = lp[1] = width, i = 2; - (lp[i] = lp[i - 2] + lp[i - 1] + width) < size && i < 63; i++) + for (lp[0] = lp[1] = width, i = 2; (lp[i] = lp[i - 2] + lp[i - 1] + width) < size && i < 63; i++) ; max_lp_index = i - 1; @@ -202,13 +196,10 @@ void qsort_r(void *base, size_t nel, size_t width, cmpfun cmp, void *arg) shr(p, 2); pshift += 2; } else { - if (pshift - 1 >= 0 && pshift - 1 <= max_lp_index && - lp[pshift - 1] >= (size_t)(high - head)) { - trinkle(head, width, cmp, arg, p, pshift, 0, lp, - max_lp_index); + if (pshift - 1 >= 0 && pshift - 1 <= max_lp_index && lp[pshift - 1] >= (size_t)(high - head)) { + trinkle(head, width, cmp, arg, p, pshift, 0, lp, max_lp_index); } else { - sift(head, width, cmp, arg, pshift, lp, - max_lp_index); + sift(head, width, cmp, arg, pshift, lp, max_lp_index); } if (pshift == 1) { @@ -236,16 +227,12 @@ void qsort_r(void *base, size_t nel, size_t width, cmpfun cmp, void *arg) pshift -= 2; p[0] ^= 7; shr(p, 1); - if (pshift >= 0 && pshift <= max_lp_index && - pshift < 64) { - trinkle(head - lp[pshift] - width, width, cmp, - arg, p, pshift + 1, 1, lp, - max_lp_index); + if (pshift >= 0 && pshift <= max_lp_index && pshift < 64) { + trinkle(head - lp[pshift] - width, width, cmp, arg, p, pshift + 1, 1, lp, max_lp_index); } shl(p, 1); p[0] |= 1; - trinkle(head - width, width, cmp, arg, p, pshift, 1, lp, - max_lp_index); + trinkle(head - width, width, cmp, arg, p, pshift, 1, lp, max_lp_index); } head -= width; } diff --git a/lib/libc/string/memcpy.c b/lib/libc/string/memcpy.c index f87d95cd..83a29170 100644 --- a/lib/libc/string/memcpy.c +++ b/lib/libc/string/memcpy.c @@ -1,5 +1,6 @@ #include // for EINVAL, ERANGE #include // for NULL, errno_t +#include #include // for rsize_t, memcpy, size_t, memcpy_s #include @@ -7,12 +8,101 @@ __weak void *memcpy(void *restrict s1, const void *restrict s2, size_t n); void *memcpy(void *restrict s1, const void *restrict s2, size_t n) { - unsigned char *dest = (unsigned char *)s1; - const unsigned char *src = (const unsigned char *)s2; + unsigned char *d = (unsigned char *)s1; + const unsigned char *s = (const unsigned char *)s2; - while (n--) { - *dest++ = *src++; + if (n == 0) + return s1; + + if (n < 16) { + if (n >= 8) { + *(uint64_t *)d = *(const uint64_t *)s; + d += 8; + s += 8; + n -= 8; + } + if (n >= 4) { + *(uint32_t *)d = *(const uint32_t *)s; + d += 4; + s += 4; + n -= 4; + } + if (n >= 2) { + *(uint16_t *)d = *(const uint16_t *)s; + d += 2; + s += 2; + n -= 2; + } + if (n) + *d = *s; + return s1; + } + + uintptr_t align_mask = 15; + size_t misalign = (uintptr_t)d & align_mask; + if (misalign) { + size_t to_align = 16 - misalign; + if (to_align > n) + to_align = n; + for (size_t i = 0; i < to_align; ++i) + *d++ = *s++; + n -= to_align; + } + + while (n >= 128) { +#pragma unroll + for (int i = 0; i < 8; ++i) { + ((i128 *)d)[i] = ((const i128 *)s)[i]; + } + d += 128; + s += 128; + n -= 128; + } + while (n >= 64) { +#pragma unroll + for (int i = 0; i < 4; ++i) { + ((i128 *)d)[i] = ((const i128 *)s)[i]; + } + d += 64; + s += 64; + n -= 64; + } + while (n >= 32) { +#pragma unroll + for (int i = 0; i < 2; ++i) { + ((i128 *)d)[i] = ((const i128 *)s)[i]; + } + d += 32; + s += 32; + n -= 32; + } + while (n >= 16) { + *(i128 *)d = *(const i128 *)s; + d += 16; + s += 16; + n -= 16; + } + + if (n >= 8) { + *(uint64_t *)d = *(const uint64_t *)s; + d += 8; + s += 8; + n -= 8; + } + if (n >= 4) { + *(uint32_t *)d = *(const uint32_t *)s; + d += 4; + s += 4; + n -= 4; + } + if (n >= 2) { + *(uint16_t *)d = *(const uint16_t *)s; + d += 2; + s += 2; + n -= 2; } + if (n) + *d = *s; return s1; } diff --git a/lib/libc/string/memmem.c b/lib/libc/string/memmem.c index 4f55cf41..ab9f5398 100644 --- a/lib/libc/string/memmem.c +++ b/lib/libc/string/memmem.c @@ -2,8 +2,7 @@ #include // for memcmp, size_t, memmem -void *memmem(const void *haystack, size_t haystacklen, const void *needle, - size_t needlelen) +void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen) { const unsigned char *p1 = haystack; const unsigned char *p2 = needle; diff --git a/lib/libc/string/strcoll.c b/lib/libc/string/strcoll.c index 2a4a3473..334f470c 100644 --- a/lib/libc/string/strcoll.c +++ b/lib/libc/string/strcoll.c @@ -1,4 +1,3 @@ -#include // for __unused #include // for strcmp, locale_t, strcoll, strcoll_l #include diff --git a/lib/libc/string/strerror.c b/lib/libc/string/strerror.c index b96884ea..6607ab2e 100644 --- a/lib/libc/string/strerror.c +++ b/lib/libc/string/strerror.c @@ -1,5 +1,5 @@ +#include "stddef.h" #include // for ERANGE, E2BIG, EACCES, EADDRINUSE, EADDRNOTAVAIL -#include // for __unused #include // for memcpy, size_t, strerror, strlen, locale_t #include diff --git a/lib/libc/string/strtok_r.c b/lib/libc/string/strtok_r.c index 274f6f08..e0cb4cac 100644 --- a/lib/libc/string/strtok_r.c +++ b/lib/libc/string/strtok_r.c @@ -2,8 +2,7 @@ #include // for strchr, strtok_r -char *strtok_r(char *restrict s, const char *restrict sep, - char **restrict state) +char *strtok_r(char *restrict s, const char *restrict sep, char **restrict state) { if (s == NULL) { s = *state; diff --git a/lib/libc/strings/strcasecmp.c b/lib/libc/strings/strcasecmp.c index 476a5d8d..be8fb719 100644 --- a/lib/libc/strings/strcasecmp.c +++ b/lib/libc/strings/strcasecmp.c @@ -1,5 +1,4 @@ #include // for tolower -#include // for __unused #include // for locale_t #include diff --git a/lib/libc/strings/strncasecmp.c b/lib/libc/strings/strncasecmp.c index a36990cf..146e07ec 100644 --- a/lib/libc/strings/strncasecmp.c +++ b/lib/libc/strings/strncasecmp.c @@ -1,5 +1,4 @@ #include // for tolower -#include // for __unused #include // for locale_t #include // for size_t #include diff --git a/lib/libc/sys/eventfd/eventfd_read.c b/lib/libc/sys/eventfd/eventfd_read.c index 78d73623..a376489c 100644 --- a/lib/libc/sys/eventfd/eventfd_read.c +++ b/lib/libc/sys/eventfd/eventfd_read.c @@ -1,5 +1,4 @@ #include -#include #include int eventfd_read(int fildes, eventfd_t *value) diff --git a/lib/libc/sys/eventfd/eventfd_write.c b/lib/libc/sys/eventfd/eventfd_write.c index 9c89b388..a9aa3e0b 100644 --- a/lib/libc/sys/eventfd/eventfd_write.c +++ b/lib/libc/sys/eventfd/eventfd_write.c @@ -1,5 +1,4 @@ #include -#include #include int eventfd_write(int fildes, eventfd_t value) diff --git a/lib/libc/sys/inotify/inotify_add_watch.c b/lib/libc/sys/inotify/inotify_add_watch.c index 22ffd7b1..de2cd8ce 100644 --- a/lib/libc/sys/inotify/inotify_add_watch.c +++ b/lib/libc/sys/inotify/inotify_add_watch.c @@ -1,3 +1,4 @@ +#include #include #include diff --git a/lib/libc/sys/io_uring/io_uring_enter.c b/lib/libc/sys/io_uring/io_uring_enter.c index 5fe0773d..da63ecd8 100644 --- a/lib/libc/sys/io_uring/io_uring_enter.c +++ b/lib/libc/sys/io_uring/io_uring_enter.c @@ -1,10 +1,9 @@ #include +#include #include -int io_uring_enter(unsigned int fd, unsigned int to_submit, - unsigned int min_complete, unsigned int flags, sigset_t *sig, - size_t sz) +int io_uring_enter(unsigned int fd, unsigned int to_submit, unsigned int min_complete, unsigned int flags, + sigset_t *sig, size_t sz) { - return syscall(io_uring_enter, fd, to_submit, min_complete, flags, sig, - sz); + return syscall(io_uring_enter, fd, to_submit, min_complete, flags, sig, sz); } diff --git a/lib/libc/sys/io_uring/io_uring_register.c b/lib/libc/sys/io_uring/io_uring_register.c index bee2355f..bbbcb9ee 100644 --- a/lib/libc/sys/io_uring/io_uring_register.c +++ b/lib/libc/sys/io_uring/io_uring_register.c @@ -1,7 +1,6 @@ #include -int io_uring_register(unsigned int fd, unsigned int opcode, void *arg, - unsigned int nr_args) +int io_uring_register(unsigned int fd, unsigned int opcode, void *arg, unsigned int nr_args) { return syscall(io_uring_register, fd, opcode, arg, nr_args); } diff --git a/lib/libc/sys/io_uring/io_uring_setup.c b/lib/libc/sys/io_uring/io_uring_setup.c index 0a368a81..916efc27 100644 --- a/lib/libc/sys/io_uring/io_uring_setup.c +++ b/lib/libc/sys/io_uring/io_uring_setup.c @@ -1,6 +1,8 @@ -#include +#include "linux/io_uring.h" +#include "stddef.h" #include #include +#include #include #include @@ -21,12 +23,9 @@ int __io_uring_setup(void) if (__io_uring.fd < 0) return -1; - __io_uring.sq.ring_size = - p.sq_off.array + p.sq_entries * sizeof(unsigned int); - __io_uring.sq.ring = mmap(NULL, __io_uring.sq.ring_size, - PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_POPULATE, __io_uring.fd, - IORING_OFF_SQ_RING); + __io_uring.sq.ring_size = p.sq_off.array + p.sq_entries * sizeof(unsigned int); + __io_uring.sq.ring = mmap(NULL, __io_uring.sq.ring_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, + __io_uring.fd, IORING_OFF_SQ_RING); if (__io_uring.sq.ring == MAP_FAILED) return -1; @@ -38,27 +37,21 @@ int __io_uring_setup(void) __io_uring.sq.flags = __io_uring.sq.ring + p.sq_off.flags; __io_uring.sq.dropped = __io_uring.sq.ring + p.sq_off.dropped; __io_uring.sq.array = __io_uring.sq.ring + p.sq_off.array; - __io_uring.sq.sqes = - mmap(NULL, p.sq_entries * sizeof(struct io_uring_sqe), - PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, - __io_uring.fd, IORING_OFF_SQES); + __io_uring.sq.sqes = mmap(NULL, p.sq_entries * sizeof(struct io_uring_sqe), PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_POPULATE, __io_uring.fd, IORING_OFF_SQES); if (__io_uring.sq.sqes == MAP_FAILED) { munmap(__io_uring.sq.ring, __io_uring.sq.ring_size); return -1; } - __io_uring.cq.ring_size = - p.cq_off.cqes + p.cq_entries * sizeof(struct io_uring_cqe); - __io_uring.cq.ring = mmap(NULL, __io_uring.cq.ring_size, - PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_POPULATE, __io_uring.fd, - IORING_OFF_CQ_RING); + __io_uring.cq.ring_size = p.cq_off.cqes + p.cq_entries * sizeof(struct io_uring_cqe); + __io_uring.cq.ring = mmap(NULL, __io_uring.cq.ring_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, + __io_uring.fd, IORING_OFF_CQ_RING); if (__io_uring.cq.ring == MAP_FAILED) { munmap(__io_uring.sq.ring, __io_uring.sq.ring_size); - munmap(__io_uring.sq.sqes, - p.sq_entries * sizeof(struct io_uring_sqe)); + munmap(__io_uring.sq.sqes, p.sq_entries * sizeof(struct io_uring_sqe)); return -1; } @@ -66,8 +59,7 @@ int __io_uring_setup(void) if (__io_uring.eventfd < 0) return -1; - io_uring_register(__io_uring.fd, IORING_REGISTER_EVENTFD, - &__io_uring.eventfd, 1); + io_uring_register(__io_uring.fd, IORING_REGISTER_EVENTFD, &__io_uring.eventfd, 1); __io_uring.cq.head = __io_uring.cq.ring + p.cq_off.head; __io_uring.cq.tail = __io_uring.cq.ring + p.cq_off.tail; diff --git a/lib/libc/sys/mount.c b/lib/libc/sys/mount.c index 75532cdf..6cd77f1b 100644 --- a/lib/libc/sys/mount.c +++ b/lib/libc/sys/mount.c @@ -2,8 +2,8 @@ #include // for mount #include // for __syscall_5, syscall -int mount(const char *source, const char *target, const char *filesystemtype, - unsigned long mountflags, const void *_Nullable data) +int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, + const void *_Nullable data) { return syscall(mount, source, target, filesystemtype, mountflags, data); } diff --git a/lib/libc/sys/mqueue/mq_getattr.c b/lib/libc/sys/mqueue/mq_getattr.c index f5ca62de..2087a5b9 100644 --- a/lib/libc/sys/mqueue/mq_getattr.c +++ b/lib/libc/sys/mqueue/mq_getattr.c @@ -1,5 +1,4 @@ #include -#include int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat) { diff --git a/lib/libc/sys/mqueue/mq_notify.c b/lib/libc/sys/mqueue/mq_notify.c index 6011f567..0652da12 100644 --- a/lib/libc/sys/mqueue/mq_notify.c +++ b/lib/libc/sys/mqueue/mq_notify.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include #include #include diff --git a/lib/libc/sys/mqueue/mq_receive.c b/lib/libc/sys/mqueue/mq_receive.c index 98d3cd9e..a33ef0ae 100644 --- a/lib/libc/sys/mqueue/mq_receive.c +++ b/lib/libc/sys/mqueue/mq_receive.c @@ -1,7 +1,7 @@ #include +#include -ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, - unsigned *msg_prio) +ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio) { return mq_timedreceive(mqdes, msg_ptr, msg_len, msg_prio, 0); } diff --git a/lib/libc/sys/mqueue/mq_setattr.c b/lib/libc/sys/mqueue/mq_setattr.c index be2a3b3d..a1bde88b 100644 --- a/lib/libc/sys/mqueue/mq_setattr.c +++ b/lib/libc/sys/mqueue/mq_setattr.c @@ -1,8 +1,7 @@ #include #include -int mq_setattr(mqd_t mqdes, const struct mq_attr *restrict mqstat, - struct mq_attr *restrict omqstat) +int mq_setattr(mqd_t mqdes, const struct mq_attr *restrict mqstat, struct mq_attr *restrict omqstat) { return syscall(mq_getsetattr, mqdes, mqstat, omqstat); } diff --git a/lib/libc/sys/mqueue/mq_timedreceive.c b/lib/libc/sys/mqueue/mq_timedreceive.c index bf877fa5..53328862 100644 --- a/lib/libc/sys/mqueue/mq_timedreceive.c +++ b/lib/libc/sys/mqueue/mq_timedreceive.c @@ -1,10 +1,10 @@ #include +#include #include +#include -ssize_t mq_timedreceive(mqd_t mqdes, char *restrict msg_ptr, size_t msg_len, - unsigned *restrict msg_prio, +ssize_t mq_timedreceive(mqd_t mqdes, char *restrict msg_ptr, size_t msg_len, unsigned *restrict msg_prio, const struct timespec *restrict abstime) { - return syscall(mq_timedreceive, mqdes, msg_ptr, msg_len, msg_prio, - abstime); + return syscall(mq_timedreceive, mqdes, msg_ptr, msg_len, msg_prio, abstime); } diff --git a/lib/libc/sys/mqueue/mq_timedsend.c b/lib/libc/sys/mqueue/mq_timedsend.c index 228a5d06..3f533095 100644 --- a/lib/libc/sys/mqueue/mq_timedsend.c +++ b/lib/libc/sys/mqueue/mq_timedsend.c @@ -1,9 +1,9 @@ #include +#include #include +#include -int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, - unsigned msg_prio, const struct timespec *abstime) +int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abstime) { - return syscall(mq_timedsend, mqdes, msg_ptr, msg_len, msg_prio, - abstime); + return syscall(mq_timedsend, mqdes, msg_ptr, msg_len, msg_prio, abstime); } diff --git a/lib/libc/termios/tcsendbreak.c b/lib/libc/termios/tcsendbreak.c index a064e7bb..2d5abbca 100644 --- a/lib/libc/termios/tcsendbreak.c +++ b/lib/libc/termios/tcsendbreak.c @@ -1,5 +1,5 @@ +#include "sys/cdefs.h" #include -#include #include #include diff --git a/lib/libc/thread/thrd_create.c b/lib/libc/thread/thrd_create.c index e5b7405c..fa7ada78 100644 --- a/lib/libc/thread/thrd_create.c +++ b/lib/libc/thread/thrd_create.c @@ -1,15 +1,13 @@ +#include "stddef.h" +#include "sys/cdefs.h" #include <__thread.h> -#include -#include #include -#include #include -#include +#include #include #include #include #include -#include struct thread_start { struct __thread_self *self; diff --git a/lib/libc/thread/thrd_detach.c b/lib/libc/thread/thrd_detach.c index b315a20a..1cbe7627 100644 --- a/lib/libc/thread/thrd_detach.c +++ b/lib/libc/thread/thrd_detach.c @@ -1,9 +1,8 @@ +#include "stddef.h" #include <__thread.h> -#include #include #include #include -#include int thrd_detach(thrd_t thr) { diff --git a/lib/libc/thread/thrd_join.c b/lib/libc/thread/thrd_join.c index 7ec38c4a..5a36f597 100644 --- a/lib/libc/thread/thrd_join.c +++ b/lib/libc/thread/thrd_join.c @@ -1,3 +1,4 @@ +#include "stddef.h" #include <__thread.h> #include #include diff --git a/lib/libc/time/asctime.c b/lib/libc/time/asctime.c index 0bf76cb2..d878288a 100644 --- a/lib/libc/time/asctime.c +++ b/lib/libc/time/asctime.c @@ -3,16 +3,15 @@ char *asctime(const struct tm *timeptr) { - static char wday_name[][4] = { "Sun", "Mon", "Tue", "Wed", - "Thu", "Fri", "Sat" }; - static char mon_name[][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; + static char wday_name[][4] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; + static char mon_name[][4] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" + }; static char result[26]; - snprintf(result, sizeof(result), "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", - wday_name[timeptr->tm_wday], mon_name[timeptr->tm_mon], - timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, - timeptr->tm_sec, 1900 + timeptr->tm_year); + snprintf(result, sizeof(result), "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", wday_name[timeptr->tm_wday], + mon_name[timeptr->tm_mon], timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, + 1900 + timeptr->tm_year); return result; } diff --git a/lib/libc/time/clock.c b/lib/libc/time/clock.c index 50cc4a6e..f7961f8f 100644 --- a/lib/libc/time/clock.c +++ b/lib/libc/time/clock.c @@ -8,8 +8,7 @@ clock_t clock(void) if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts)) return -1; - if (ts.tv_sec > LONG_MAX / 1000000 || - ts.tv_nsec / 1000 > LONG_MAX - 1000000 * ts.tv_sec) + if (ts.tv_sec > LONG_MAX / 1000000 || ts.tv_nsec / 1000 > LONG_MAX - 1000000 * ts.tv_sec) return -1; return ts.tv_sec * 1000000 + ts.tv_nsec / 1000; diff --git a/lib/libc/time/clock_gettime.c b/lib/libc/time/clock_gettime.c index 1cf1cdaa..424d916a 100644 --- a/lib/libc/time/clock_gettime.c +++ b/lib/libc/time/clock_gettime.c @@ -3,7 +3,7 @@ #include extern void __libc_init_vdso(void); -void *__libc_force_vdso_init = (void *) __libc_init_vdso; +void *__libc_force_vdso_init = (void *)__libc_init_vdso; int clock_gettime(clockid_t clock_id, struct timespec *tp) { diff --git a/lib/libc/time/gmtime_r.c b/lib/libc/time/gmtime_r.c index 47dbd105..cb66e6cf 100644 --- a/lib/libc/time/gmtime_r.c +++ b/lib/libc/time/gmtime_r.c @@ -26,9 +26,7 @@ struct tm *gmtime_r(const time_t *timer, struct tm *result) long z = days + 719468; long era = (z >= 0 ? z : z - 146096) / 146097; long day_of_era = z - era * 146097; - long yoe = (day_of_era - day_of_era / 1460 + day_of_era / 36524 - - day_of_era / 146096) / - 365; + long yoe = (day_of_era - day_of_era / 1460 + day_of_era / 36524 - day_of_era / 146096) / 365; year = (int)(yoe + era * 400); long doy = day_of_era - (365 * yoe + yoe / 4 - yoe / 100); result->tm_yday = (int)doy; diff --git a/lib/libc/time/strftime.c b/lib/libc/time/strftime.c index b1763380..f6feb5c6 100644 --- a/lib/libc/time/strftime.c +++ b/lib/libc/time/strftime.c @@ -1,4 +1,3 @@ -#include // for __unused #include // for strlcpy, strlen #include #include // for tm, size_t, locale_t, strftime, strftime_l diff --git a/lib/libc/time/time.c b/lib/libc/time/time.c index 27e5a06f..49fb6e21 100644 --- a/lib/libc/time/time.c +++ b/lib/libc/time/time.c @@ -2,7 +2,7 @@ #include extern void __libc_init_vdso(void); -void *__libc_force_vdso_init = (void *) __libc_init_vdso; +void *__libc_force_vdso_init = (void *)__libc_init_vdso; time_t time(time_t *tloc) { diff --git a/lib/libc/time/tzset.c b/lib/libc/time/tzset.c index eeb1d247..ca54c46e 100644 --- a/lib/libc/time/tzset.c +++ b/lib/libc/time/tzset.c @@ -24,8 +24,7 @@ void tzset(void) static char stdname[8]; int i = 0; - while (*p && !isdigit((unsigned char)*p) && *p != '+' && *p != '-' && - i < 7) { + while (*p && !isdigit((unsigned char)*p) && *p != '+' && *p != '-' && i < 7) { stdname[i++] = *p++; } diff --git a/lib/libc/time/utimes.c b/lib/libc/time/utimes.c index af644481..65d63b6c 100644 --- a/lib/libc/time/utimes.c +++ b/lib/libc/time/utimes.c @@ -10,8 +10,7 @@ int utimes(const char *path, const struct timeval times[2]) struct timespec ts[2]; if (times) { - if (times[0].tv_usec >= 1000000L || - times[1].tv_usec >= 1000000L) { + if (times[0].tv_usec >= 1000000L || times[1].tv_usec >= 1000000L) { errno = EINVAL; return -1; } diff --git a/lib/libc/unistd/execvp.c b/lib/libc/unistd/execvp.c index 26934a76..9865aa1b 100644 --- a/lib/libc/unistd/execvp.c +++ b/lib/libc/unistd/execvp.c @@ -31,31 +31,26 @@ int execvp(const char *file, char *const argv[]) ptr = strchr(path, ':'); if (ptr == NULL) { - if (snprintf(buf, PATH_MAX, "%s/%s", path, - file) >= PATH_MAX) { + if (snprintf(buf, PATH_MAX, "%s/%s", path, file) >= PATH_MAX) { errno = ENAMETOOLONG; return -1; } /* Validate path doesn't contain dangerous * characters */ - if (strstr(buf, "..") == NULL && - strchr(buf, '\0') == buf + strlen(buf)) { + if (strstr(buf, "..") == NULL && strchr(buf, '\0') == buf + strlen(buf)) { execv(buf, argv); } break; } - if (snprintf(buf, PATH_MAX, "%.*s/%s", - (int)(ptr - path), path, - file) >= PATH_MAX) { + if (snprintf(buf, PATH_MAX, "%.*s/%s", (int)(ptr - path), path, file) >= PATH_MAX) { errno = ENAMETOOLONG; return -1; } /* Validate path doesn't contain dangerous characters */ - if (strstr(buf, "..") == NULL && - strchr(buf, '\0') == buf + strlen(buf)) { + if (strstr(buf, "..") == NULL && strchr(buf, '\0') == buf + strlen(buf)) { execv(buf, argv); } path = ptr + 1; diff --git a/lib/libc/unistd/getopt.c b/lib/libc/unistd/getopt.c index c942da56..4cfca00e 100644 --- a/lib/libc/unistd/getopt.c +++ b/lib/libc/unistd/getopt.c @@ -95,8 +95,7 @@ int getopt(int argc, char *const argv[], const char *optstring) iov[0].iov_base = argv[0]; iov[0].iov_len = strlen(argv[0]); - iov[1].iov_base = - ": option requires an argument -- "; + iov[1].iov_base = ": option requires an argument -- "; iov[1].iov_len = 33; iov[2].iov_base = opt_char; iov[2].iov_len = 1; diff --git a/lib/libc/unistd/readlinkat.c b/lib/libc/unistd/readlinkat.c index b4fbcb39..47161cff 100644 --- a/lib/libc/unistd/readlinkat.c +++ b/lib/libc/unistd/readlinkat.c @@ -4,8 +4,7 @@ #include // for __syscall_4, syscall #include // for readlinkat, size_t, ssize_t -ssize_t readlinkat(int fd, const char *restrict path, char *restrict buf, - size_t bufsize) +ssize_t readlinkat(int fd, const char *restrict path, char *restrict buf, size_t bufsize) { return syscall(readlinkat, fd, path, buf, bufsize); } diff --git a/lib/libc/unistd/write.c b/lib/libc/unistd/write.c index 9e8ce260..3be27fa5 100644 --- a/lib/libc/unistd/write.c +++ b/lib/libc/unistd/write.c @@ -1,3 +1,4 @@ +#include #include #include diff --git a/lib/libm/__cos.c b/lib/libm/__cos.c index a55d0eba..1ead64ed 100644 --- a/lib/libm/__cos.c +++ b/lib/libm/__cos.c @@ -54,11 +54,11 @@ static const double C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ - C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ - C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ - C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ - C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ - C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ + C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ + C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ + C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ + C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ + C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ double __cos(double x, double y) { diff --git a/lib/libm/__cosdf.c b/lib/libm/__cosdf.c index d5469271..0b158223 100644 --- a/lib/libm/__cosdf.c +++ b/lib/libm/__cosdf.c @@ -20,9 +20,9 @@ /* |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]). */ static const double C0 = -0x1ffffffd0c5e81.0p-54, /* -0.499999997251031003120 */ - C1 = 0x155553e1053a42.0p-57, /* 0.0416666233237390631894 */ - C2 = -0x16c087e80f1e27.0p-62, /* -0.00138867637746099294692 */ - C3 = 0x199342e0ee5069.0p-68; /* 0.0000243904487962774090654 */ + C1 = 0x155553e1053a42.0p-57, /* 0.0416666233237390631894 */ + C2 = -0x16c087e80f1e27.0p-62, /* -0.00138867637746099294692 */ + C3 = 0x199342e0ee5069.0p-68; /* 0.0000243904487962774090654 */ float __cosdf(double x) { diff --git a/lib/libm/__cosl.c b/lib/libm/__cosl.c index 18858e6b..89978d9a 100644 --- a/lib/libm/__cosl.c +++ b/lib/libm/__cosl.c @@ -44,21 +44,15 @@ * almost for free from the complications needed to search for the best * higher coefficients. */ -static const long double C1 = - 0.0416666666666666666136L; /* 0xaaaaaaaaaaaaaa9b.0p-68 - */ -static const double C2 = -0.0013888888888888874, /* -0x16c16c16c16c10.0p-62 */ - C3 = 0.000024801587301571716, /* 0x1a01a01a018e22.0p-68 */ - C4 = -0.00000027557319215507120, /* -0x127e4fb7602f22.0p-74 */ - C5 = 0.0000000020876754400407278, /* 0x11eed8caaeccf1.0p-81 */ - C6 = -1.1470297442401303e-11, /* -0x19393412bd1529.0p-89 */ - C7 = 4.7383039476436467e-14; /* 0x1aac9d9af5c43e.0p-97 */ -#define POLY(z) \ - ((z) * \ - (C1 + \ - (z) * (C2 + \ - (z) * (C3 + \ - (z) * (C4 + (z) * (C5 + (z) * (C6 + (z) * C7))))))) +static const long double C1 = 0.0416666666666666666136L; /* 0xaaaaaaaaaaaaaa9b.0p-68 + */ +static const double C2 = -0.0013888888888888874, /* -0x16c16c16c16c10.0p-62 */ + C3 = 0.000024801587301571716, /* 0x1a01a01a018e22.0p-68 */ + C4 = -0.00000027557319215507120, /* -0x127e4fb7602f22.0p-74 */ + C5 = 0.0000000020876754400407278, /* 0x11eed8caaeccf1.0p-81 */ + C6 = -1.1470297442401303e-11, /* -0x19393412bd1529.0p-89 */ + C7 = 4.7383039476436467e-14; /* 0x1aac9d9af5c43e.0p-97 */ +#define POLY(z) ((z) * (C1 + (z) * (C2 + (z) * (C3 + (z) * (C4 + (z) * (C5 + (z) * (C6 + (z) * C7))))))) #elif LDBL_MANT_DIG == 113 /* * ld128 version of __cos.c. See __cos.c for most comments. @@ -83,18 +77,10 @@ static const double C8 = -0.1561920696721507929516718307820958119868e-15, C9 = 0.4110317413744594971475941557607804508039e-18, C10 = -0.8896592467191938803288521958313920156409e-21, C11 = 0.1601061435794535138244346256065192782581e-23; -#define POLY(z) \ - (z * \ - (C1 + \ - z * (C2 + \ - z * (C3 + \ - z * (C4 + \ - z * (C5 + \ - z * (C6 + \ - z * (C7 + \ - z * (C8 + \ - z * (C9 + z * (C10 + \ - z * C11))))))))))) +#define POLY(z) \ + (z * (C1 + \ + z * (C2 + \ + z * (C3 + z * (C4 + z * (C5 + z * (C6 + z * (C7 + z * (C8 + z * (C9 + z * (C10 + z * C11))))))))))) #endif long double __cosl(long double x, long double y) diff --git a/lib/libm/__invtrigl.c b/lib/libm/__invtrigl.c index 8e8273ae..eed13971 100644 --- a/lib/libm/__invtrigl.c +++ b/lib/libm/__invtrigl.c @@ -3,18 +3,12 @@ #include // for LDBL_MANT_DIG, LDBL_MAX_EXP #if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 -static const long double pS0 = 1.66666666666666666631e-01L, - pS1 = -4.16313987993683104320e-01L, - pS2 = 3.69068046323246813704e-01L, - pS3 = -1.36213932016738603108e-01L, - pS4 = 1.78324189708471965733e-02L, - pS5 = -2.19216428382605211588e-04L, - pS6 = -7.10526623669075243183e-06L, - qS1 = -2.94788392796209867269e+00L, - qS2 = 3.27309890266528636716e+00L, - qS3 = -1.68285799854822427013e+00L, - qS4 = 3.90699412641738801874e-01L, - qS5 = -3.14365703596053263322e-02L; +static const long double pS0 = 1.66666666666666666631e-01L, pS1 = -4.16313987993683104320e-01L, + pS2 = 3.69068046323246813704e-01L, pS3 = -1.36213932016738603108e-01L, + pS4 = 1.78324189708471965733e-02L, pS5 = -2.19216428382605211588e-04L, + pS6 = -7.10526623669075243183e-06L, qS1 = -2.94788392796209867269e+00L, + qS2 = 3.27309890266528636716e+00L, qS3 = -1.68285799854822427013e+00L, + qS4 = 3.90699412641738801874e-01L, qS5 = -3.14365703596053263322e-02L; const long double pio2_hi = 1.57079632679489661926L; const long double pio2_lo = -2.50827880633416601173e-20L; @@ -24,9 +18,7 @@ const long double pio2_lo = -2.50827880633416601173e-20L; long double __invtrigl_R(long double z) { long double p, q; - p = z * (pS0 + - z * (pS1 + - z * (pS2 + z * (pS3 + z * (pS4 + z * (pS5 + z * pS6)))))); + p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * (pS5 + z * pS6)))))); q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * (qS4 + z * qS5)))); return p / q; } @@ -57,23 +49,11 @@ const long double pio2_lo = 4.33590506506189051239852201302167613e-35L; long double __invtrigl_R(long double z) { long double p, q; - p = z * (pS0 + - z * (pS1 + - z * (pS2 + - z * (pS3 + - z * (pS4 + - z * (pS5 + - z * (pS6 + - z * (pS7 + - z * (pS8 + z * pS9))))))))); + p = z * + (pS0 + + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * (pS5 + z * (pS6 + z * (pS7 + z * (pS8 + z * pS9))))))))); q = 1.0 + - z * (qS1 + - z * (qS2 + - z * (qS3 + - z * (qS4 + - z * (qS5 + - z * (qS6 + - z * (qS7 + z * (qS8 + z * qS9)))))))); + z * (qS1 + z * (qS2 + z * (qS3 + z * (qS4 + z * (qS5 + z * (qS6 + z * (qS7 + z * (qS8 + z * qS9)))))))); return p / q; } #endif diff --git a/lib/libm/__rem_pio2.c b/lib/libm/__rem_pio2.c index 1d81061f..822b729f 100644 --- a/lib/libm/__rem_pio2.c +++ b/lib/libm/__rem_pio2.c @@ -38,9 +38,9 @@ * pio2_3: third 33 bit of pi/2 * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) */ -static const double toint = 1.5 / EPS, pio4 = 0x1.921fb54442d18p-1, - invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, - 0x6DC9C883 */ +static const double toint = 1.5 / EPS, pio4 = 0x1.921fb54442d18p-1, invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, + 0x6DC9C883 + */ pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ @@ -64,8 +64,8 @@ int __rem_pio2(double x, double *y) ix = u.i >> 32 & 0x7fffffff; if (ix <= 0x400f6a7a) { /* |x| ~<= 5pi/4 */ if ((ix & 0xfffff) == 0x921fb) /* |x| ~= pi/2 or 2pi/2 */ - goto medium; /* cancellation -- use medium case */ - if (ix <= 0x4002d97c) { /* |x| ~<= 3pi/4 */ + goto medium; /* cancellation -- use medium case */ + if (ix <= 0x4002d97c) { /* |x| ~<= 3pi/4 */ if (!sign) { z = x - pio2_1; /* one round good to 85 bits */ y[0] = z - pio2_1t; diff --git a/lib/libm/__rem_pio2_large.c b/lib/libm/__rem_pio2_large.c index 8b97a6f6..f7df00d4 100644 --- a/lib/libm/__rem_pio2_large.c +++ b/lib/libm/__rem_pio2_large.c @@ -143,108 +143,71 @@ static const int init_jk[] = { 3, 4, 4, 6 }; /* initial value for jk */ * For quad precision (e0 <= 16360, jk = 6), this is 686. */ static const int32_t ipio2[] = { - 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, - 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, - 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, - 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, - 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, - 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, - 0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, - 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08, - 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, - 0x73A8C9, 0x60E27B, 0xC08C6B, + 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, + 0x246E3A, 0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, + 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, + 0x8B5A0A, 0x6D1F6D, 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, 0xF17B3D, 0x0739F7, + 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, + 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, #if LDBL_MAX_EXP > 1024 - 0x47C419, 0xC367CD, 0xDCE809, 0x2A8359, 0xC4768B, 0x961CA6, 0xDDAF44, - 0xD15719, 0x053EA5, 0xFF0705, 0x3F7E33, 0xE832C2, 0xDE4F98, 0x327DBB, - 0xC33D26, 0xEF6B1E, 0x5EF89F, 0x3A1F35, 0xCAF27F, 0x1D87F1, 0x21907C, - 0x7C246A, 0xFA6ED5, 0x772D30, 0x433B15, 0xC614B5, 0x9D19C3, 0xC2C4AD, - 0x414D2C, 0x5D000C, 0x467D86, 0x2D71E3, 0x9AC69B, 0x006233, 0x7CD2B4, - 0x97A7B4, 0xD55537, 0xF63ED7, 0x1810A3, 0xFC764D, 0x2A9D64, 0xABD770, - 0xF87C63, 0x57B07A, 0xE71517, 0x5649C0, 0xD9D63B, 0x3884A7, 0xCB2324, - 0x778AD6, 0x23545A, 0xB91F00, 0x1B0AF1, 0xDFCE19, 0xFF319F, 0x6A1E66, - 0x615799, 0x47FBAC, 0xD87F7E, 0xB76522, 0x89E832, 0x60BFE6, 0xCDC4EF, - 0x09366C, 0xD43F5D, 0xD7DE16, 0xDE3B58, 0x929BDE, 0x2822D2, 0xE88628, - 0x4D58E2, 0x32CAC6, 0x16E308, 0xCB7DE0, 0x50C017, 0xA71DF3, 0x5BE018, - 0x34132E, 0x621283, 0x014883, 0x5B8EF5, 0x7FB0AD, 0xF2E91E, 0x434A48, - 0xD36710, 0xD8DDAA, 0x425FAE, 0xCE616A, 0xA4280A, 0xB499D3, 0xF2A606, - 0x7F775C, 0x83C2A3, 0x883C61, 0x78738A, 0x5A8CAF, 0xBDD76F, 0x63A62D, - 0xCBBFF4, 0xEF818D, 0x67C126, 0x45CA55, 0x36D9CA, 0xD2A828, 0x8D61C2, - 0x77C912, 0x142604, 0x9B4612, 0xC459C4, 0x44C5C8, 0x91B24D, 0xF31700, - 0xAD43D4, 0xE54929, 0x10D5FD, 0xFCBE00, 0xCC941E, 0xEECE70, 0xF53E13, - 0x80F1EC, 0xC3E7B3, 0x28F8C7, 0x940593, 0x3E71C1, 0xB3092E, 0xF3450B, - 0x9C1288, 0x7B20AB, 0x9FB52E, 0xC29247, 0x2F327B, 0x6D550C, 0x90A772, - 0x1FE76B, 0x96CB31, 0x4A1679, 0xE27941, 0x89DFF4, 0x9794E8, 0x84E6E2, - 0x973199, 0x6BED88, 0x365F5F, 0x0EFDBB, 0xB49A48, 0x6CA467, 0x427271, - 0x325D8D, 0xB8159F, 0x09E5BC, 0x25318D, 0x3974F7, 0x1C0530, 0x010C0D, - 0x68084B, 0x58EE2C, 0x90AA47, 0x02E774, 0x24D6BD, 0xA67DF7, 0x72486E, - 0xEF169F, 0xA6948E, 0xF691B4, 0x5153D1, 0xF20ACF, 0x339820, 0x7E4BF5, - 0x6863B2, 0x5F3EDD, 0x035D40, 0x7F8985, 0x295255, 0xC06437, 0x10D86D, - 0x324832, 0x754C5B, 0xD4714E, 0x6E5445, 0xC1090B, 0x69F52A, 0xD56614, - 0x9D0727, 0x50045D, 0xDB3BB4, 0xC576EA, 0x17F987, 0x7D6B49, 0xBA271D, - 0x296996, 0xACCCC6, 0x5414AD, 0x6AE290, 0x89D988, 0x50722C, 0xBEA404, - 0x940777, 0x7030F3, 0x27FC00, 0xA871EA, 0x49C266, 0x3DE064, 0x83DD97, - 0x973FA3, 0xFD9443, 0x8C860D, 0xDE4131, 0x9D3992, 0x8C70DD, 0xE7B717, - 0x3BDF08, 0x2B3715, 0xA0805C, 0x93805A, 0x921110, 0xD8E80F, 0xAF806C, - 0x4BFFDB, 0x0F9038, 0x761859, 0x15A562, 0xBBCB61, 0xB989C7, 0xBD4010, - 0x04F2D2, 0x277549, 0xF6B6EB, 0xBB22DB, 0xAA140A, 0x2F2689, 0x768364, - 0x333B09, 0x1A940E, 0xAA3A51, 0xC2A31D, 0xAEEDAF, 0x12265C, 0x4DC26D, - 0x9C7A2D, 0x9756C0, 0x833F03, 0xF6F009, 0x8C402B, 0x99316D, 0x07B439, - 0x15200C, 0x5BC3D8, 0xC492F5, 0x4BADC6, 0xA5CA4E, 0xCD37A7, 0x36A9E6, - 0x9492AB, 0x6842DD, 0xDE6319, 0xEF8C76, 0x528B68, 0x37DBFC, 0xABA1AE, - 0x3115DF, 0xA1AE00, 0xDAFB0C, 0x664D64, 0xB705ED, 0x306529, 0xBF5657, - 0x3AFF47, 0xB9F96A, 0xF3BE75, 0xDF9328, 0x3080AB, 0xF68C66, 0x15CB04, - 0x0622FA, 0x1DE4D9, 0xA4B33D, 0x8F1B57, 0x09CD36, 0xE9424E, 0xA4BE13, - 0xB52333, 0x1AAAF0, 0xA8654F, 0xA5C1D2, 0x0F3F0B, 0xCD785B, 0x76F923, - 0x048B7B, 0x721789, 0x53A6C6, 0xE26E6F, 0x00EBEF, 0x584A9B, 0xB7DAC4, - 0xBA66AA, 0xCFCF76, 0x1D02D1, 0x2DF1B1, 0xC1998C, 0x77ADC3, 0xDA4886, - 0xA05DF7, 0xF480C6, 0x2FF0AC, 0x9AECDD, 0xBC5C3F, 0x6DDED0, 0x1FC790, - 0xB6DB2A, 0x3A25A3, 0x9AAF00, 0x9353AD, 0x0457B6, 0xB42D29, 0x7E804B, - 0xA707DA, 0x0EAA76, 0xA1597B, 0x2A1216, 0x2DB7DC, 0xFDE5FA, 0xFEDB89, - 0xFDBE89, 0x6C76E4, 0xFCA906, 0x70803E, 0x156E85, 0xFF87FD, 0x073E28, - 0x336761, 0x86182A, 0xEABD4D, 0xAFE7B3, 0x6E6D8F, 0x396795, 0x5BBF31, - 0x48D784, 0x16DF30, 0x432DC7, 0x356125, 0xCE70C9, 0xB8CB30, 0xFD6CBF, - 0xA200A4, 0xE46C05, 0xA0DD5A, 0x476F21, 0xD21262, 0x845CB9, 0x496170, - 0xE0566B, 0x015299, 0x375550, 0xB7D51E, 0xC4F133, 0x5F6E13, 0xE4305D, - 0xA92E85, 0xC3B21D, 0x3632A1, 0xA4B708, 0xD4B1EA, 0x21F716, 0xE4698F, - 0x77FF27, 0x80030C, 0x2D408D, 0xA0CD4F, 0x99A520, 0xD3A2B3, 0x0A5D2F, - 0x42F9B4, 0xCBDA11, 0xD0BE7D, 0xC1DB9B, 0xBD17AB, 0x81A2CA, 0x5C6A08, - 0x17552E, 0x550027, 0xF0147F, 0x8607E1, 0x640B14, 0x8D4196, 0xDEBE87, - 0x2AFDDA, 0xB6256B, 0x34897B, 0xFEF305, 0x9EBFB9, 0x4F6A68, 0xA82A4A, - 0x5AC44F, 0xBCF82D, 0x985AD7, 0x95C7F4, 0x8D4D0D, 0xA63A20, 0x5F57A4, - 0xB13F14, 0x953880, 0x0120CC, 0x86DD71, 0xB6DEC9, 0xF560BF, 0x11654D, - 0x6B0701, 0xACB08C, 0xD0C0B2, 0x485551, 0x0EFB1E, 0xC37295, 0x3B06A3, - 0x3540C0, 0x7BDC06, 0xCC45E0, 0xFA294E, 0xC8CAD6, 0x41F3E8, 0xDE647C, - 0xD8649B, 0x31BED9, 0xC397A4, 0xD45877, 0xC5E369, 0x13DAF0, 0x3C3ABA, - 0x461846, 0x5F7555, 0xF5BDD2, 0xC6926E, 0x5D2EAC, 0xED440E, 0x423E1C, - 0x87C461, 0xE9FD29, 0xF3D6E7, 0xCA7C22, 0x35916F, 0xC5E008, 0x8DD7FF, - 0xE26A6E, 0xC6FDB0, 0xC10893, 0x745D7C, 0xB2AD6B, 0x9D6ECD, 0x7B723E, - 0x6A11C6, 0xA9CFF7, 0xDF7329, 0xBAC9B5, 0x5100B7, 0x0DB2E2, 0x24BA74, - 0x607DE5, 0x8AD874, 0x2C150D, 0x0C1881, 0x94667E, 0x162901, 0x767A9F, - 0xBEFDFD, 0xEF4556, 0x367ED9, 0x13D9EC, 0xB9BA8B, 0xFC97C4, 0x27A831, - 0xC36EF1, 0x36C594, 0x56A8D8, 0xB5A8B4, 0x0ECCCF, 0x2D8912, 0x34576F, - 0x89562C, 0xE3CE99, 0xB920D6, 0xAA5E6B, 0x9C2A3E, 0xCC5F11, 0x4A0BFD, - 0xFBF4E1, 0x6D3B8E, 0x2C86E2, 0x84D4E9, 0xA9B4FC, 0xD1EEEF, 0xC9352E, - 0x61392F, 0x442138, 0xC8D91B, 0x0AFC81, 0x6A4AFB, 0xD81C2F, 0x84B453, - 0x8C994E, 0xCC2254, 0xDC552A, 0xD6C6C0, 0x96190B, 0xB8701A, 0x649569, - 0x605A26, 0xEE523F, 0x0F117F, 0x11B5F4, 0xF5CBFC, 0x2DBC34, 0xEEBC34, - 0xCC5DE8, 0x605EDD, 0x9B8E67, 0xEF3392, 0xB817C9, 0x9B5861, 0xBC57E1, - 0xC68351, 0x103ED8, 0x4871DD, 0xDD1C2D, 0xA118AF, 0x462C21, 0xD7F359, - 0x987AD9, 0xC0549E, 0xFA864F, 0xFC0656, 0xAE79E5, 0x362289, 0x22AD38, - 0xDC9367, 0xAAE855, 0x382682, 0x9BE7CA, 0xA40D51, 0xB13399, 0x0ED7A9, - 0x480569, 0xF0B265, 0xA7887F, 0x974C88, 0x36D1F9, 0xB39221, 0x4A827B, - 0x21CF98, 0xDC9F40, 0x5547DC, 0x3A74E1, 0x42EB67, 0xDF9DFE, 0x5FD45E, - 0xA4677B, 0x7AACBA, 0xA2F655, 0x23882B, 0x55BA41, 0x086E59, 0x862A21, - 0x834739, 0xE6E389, 0xD49EE5, 0x40FB49, 0xE956FF, 0xCA0F1C, 0x8A59C5, - 0x2BFA94, 0xC5C1D3, 0xCFC50F, 0xAE5ADB, 0x86C547, 0x624385, 0x3B8621, - 0x94792C, 0x876110, 0x7B4C2A, 0x1A2C80, 0x12BF43, 0x902688, 0x893C78, - 0xE4C4A8, 0x7BDBE5, 0xC23AC4, 0xEAF426, 0x8A67F7, 0xBF920D, 0x2BA365, - 0xB1933D, 0x0B7CBD, 0xDC51A4, 0x63DD27, 0xDDE169, 0x19949A, 0x9529A8, - 0x28CE68, 0xB4ED09, 0x209F44, 0xCA984E, 0x638270, 0x237C7E, 0x32B90F, - 0x8EF5A7, 0xE75614, 0x08F121, 0x2A9DB5, 0x4D7E6F, 0x5119A5, 0xABF9B5, - 0xD6DF82, 0x61DD96, 0x023616, 0x9F3AC4, 0xA1A283, 0x6DED72, 0x7A8D39, - 0xA9B882, 0x5C326B, 0x5B2746, 0xED3400, 0x7700D2, 0x55F4FC, 0x4D5901, - 0x8071E0, + 0x47C419, 0xC367CD, 0xDCE809, 0x2A8359, 0xC4768B, 0x961CA6, 0xDDAF44, 0xD15719, 0x053EA5, 0xFF0705, 0x3F7E33, + 0xE832C2, 0xDE4F98, 0x327DBB, 0xC33D26, 0xEF6B1E, 0x5EF89F, 0x3A1F35, 0xCAF27F, 0x1D87F1, 0x21907C, 0x7C246A, + 0xFA6ED5, 0x772D30, 0x433B15, 0xC614B5, 0x9D19C3, 0xC2C4AD, 0x414D2C, 0x5D000C, 0x467D86, 0x2D71E3, 0x9AC69B, + 0x006233, 0x7CD2B4, 0x97A7B4, 0xD55537, 0xF63ED7, 0x1810A3, 0xFC764D, 0x2A9D64, 0xABD770, 0xF87C63, 0x57B07A, + 0xE71517, 0x5649C0, 0xD9D63B, 0x3884A7, 0xCB2324, 0x778AD6, 0x23545A, 0xB91F00, 0x1B0AF1, 0xDFCE19, 0xFF319F, + 0x6A1E66, 0x615799, 0x47FBAC, 0xD87F7E, 0xB76522, 0x89E832, 0x60BFE6, 0xCDC4EF, 0x09366C, 0xD43F5D, 0xD7DE16, + 0xDE3B58, 0x929BDE, 0x2822D2, 0xE88628, 0x4D58E2, 0x32CAC6, 0x16E308, 0xCB7DE0, 0x50C017, 0xA71DF3, 0x5BE018, + 0x34132E, 0x621283, 0x014883, 0x5B8EF5, 0x7FB0AD, 0xF2E91E, 0x434A48, 0xD36710, 0xD8DDAA, 0x425FAE, 0xCE616A, + 0xA4280A, 0xB499D3, 0xF2A606, 0x7F775C, 0x83C2A3, 0x883C61, 0x78738A, 0x5A8CAF, 0xBDD76F, 0x63A62D, 0xCBBFF4, + 0xEF818D, 0x67C126, 0x45CA55, 0x36D9CA, 0xD2A828, 0x8D61C2, 0x77C912, 0x142604, 0x9B4612, 0xC459C4, 0x44C5C8, + 0x91B24D, 0xF31700, 0xAD43D4, 0xE54929, 0x10D5FD, 0xFCBE00, 0xCC941E, 0xEECE70, 0xF53E13, 0x80F1EC, 0xC3E7B3, + 0x28F8C7, 0x940593, 0x3E71C1, 0xB3092E, 0xF3450B, 0x9C1288, 0x7B20AB, 0x9FB52E, 0xC29247, 0x2F327B, 0x6D550C, + 0x90A772, 0x1FE76B, 0x96CB31, 0x4A1679, 0xE27941, 0x89DFF4, 0x9794E8, 0x84E6E2, 0x973199, 0x6BED88, 0x365F5F, + 0x0EFDBB, 0xB49A48, 0x6CA467, 0x427271, 0x325D8D, 0xB8159F, 0x09E5BC, 0x25318D, 0x3974F7, 0x1C0530, 0x010C0D, + 0x68084B, 0x58EE2C, 0x90AA47, 0x02E774, 0x24D6BD, 0xA67DF7, 0x72486E, 0xEF169F, 0xA6948E, 0xF691B4, 0x5153D1, + 0xF20ACF, 0x339820, 0x7E4BF5, 0x6863B2, 0x5F3EDD, 0x035D40, 0x7F8985, 0x295255, 0xC06437, 0x10D86D, 0x324832, + 0x754C5B, 0xD4714E, 0x6E5445, 0xC1090B, 0x69F52A, 0xD56614, 0x9D0727, 0x50045D, 0xDB3BB4, 0xC576EA, 0x17F987, + 0x7D6B49, 0xBA271D, 0x296996, 0xACCCC6, 0x5414AD, 0x6AE290, 0x89D988, 0x50722C, 0xBEA404, 0x940777, 0x7030F3, + 0x27FC00, 0xA871EA, 0x49C266, 0x3DE064, 0x83DD97, 0x973FA3, 0xFD9443, 0x8C860D, 0xDE4131, 0x9D3992, 0x8C70DD, + 0xE7B717, 0x3BDF08, 0x2B3715, 0xA0805C, 0x93805A, 0x921110, 0xD8E80F, 0xAF806C, 0x4BFFDB, 0x0F9038, 0x761859, + 0x15A562, 0xBBCB61, 0xB989C7, 0xBD4010, 0x04F2D2, 0x277549, 0xF6B6EB, 0xBB22DB, 0xAA140A, 0x2F2689, 0x768364, + 0x333B09, 0x1A940E, 0xAA3A51, 0xC2A31D, 0xAEEDAF, 0x12265C, 0x4DC26D, 0x9C7A2D, 0x9756C0, 0x833F03, 0xF6F009, + 0x8C402B, 0x99316D, 0x07B439, 0x15200C, 0x5BC3D8, 0xC492F5, 0x4BADC6, 0xA5CA4E, 0xCD37A7, 0x36A9E6, 0x9492AB, + 0x6842DD, 0xDE6319, 0xEF8C76, 0x528B68, 0x37DBFC, 0xABA1AE, 0x3115DF, 0xA1AE00, 0xDAFB0C, 0x664D64, 0xB705ED, + 0x306529, 0xBF5657, 0x3AFF47, 0xB9F96A, 0xF3BE75, 0xDF9328, 0x3080AB, 0xF68C66, 0x15CB04, 0x0622FA, 0x1DE4D9, + 0xA4B33D, 0x8F1B57, 0x09CD36, 0xE9424E, 0xA4BE13, 0xB52333, 0x1AAAF0, 0xA8654F, 0xA5C1D2, 0x0F3F0B, 0xCD785B, + 0x76F923, 0x048B7B, 0x721789, 0x53A6C6, 0xE26E6F, 0x00EBEF, 0x584A9B, 0xB7DAC4, 0xBA66AA, 0xCFCF76, 0x1D02D1, + 0x2DF1B1, 0xC1998C, 0x77ADC3, 0xDA4886, 0xA05DF7, 0xF480C6, 0x2FF0AC, 0x9AECDD, 0xBC5C3F, 0x6DDED0, 0x1FC790, + 0xB6DB2A, 0x3A25A3, 0x9AAF00, 0x9353AD, 0x0457B6, 0xB42D29, 0x7E804B, 0xA707DA, 0x0EAA76, 0xA1597B, 0x2A1216, + 0x2DB7DC, 0xFDE5FA, 0xFEDB89, 0xFDBE89, 0x6C76E4, 0xFCA906, 0x70803E, 0x156E85, 0xFF87FD, 0x073E28, 0x336761, + 0x86182A, 0xEABD4D, 0xAFE7B3, 0x6E6D8F, 0x396795, 0x5BBF31, 0x48D784, 0x16DF30, 0x432DC7, 0x356125, 0xCE70C9, + 0xB8CB30, 0xFD6CBF, 0xA200A4, 0xE46C05, 0xA0DD5A, 0x476F21, 0xD21262, 0x845CB9, 0x496170, 0xE0566B, 0x015299, + 0x375550, 0xB7D51E, 0xC4F133, 0x5F6E13, 0xE4305D, 0xA92E85, 0xC3B21D, 0x3632A1, 0xA4B708, 0xD4B1EA, 0x21F716, + 0xE4698F, 0x77FF27, 0x80030C, 0x2D408D, 0xA0CD4F, 0x99A520, 0xD3A2B3, 0x0A5D2F, 0x42F9B4, 0xCBDA11, 0xD0BE7D, + 0xC1DB9B, 0xBD17AB, 0x81A2CA, 0x5C6A08, 0x17552E, 0x550027, 0xF0147F, 0x8607E1, 0x640B14, 0x8D4196, 0xDEBE87, + 0x2AFDDA, 0xB6256B, 0x34897B, 0xFEF305, 0x9EBFB9, 0x4F6A68, 0xA82A4A, 0x5AC44F, 0xBCF82D, 0x985AD7, 0x95C7F4, + 0x8D4D0D, 0xA63A20, 0x5F57A4, 0xB13F14, 0x953880, 0x0120CC, 0x86DD71, 0xB6DEC9, 0xF560BF, 0x11654D, 0x6B0701, + 0xACB08C, 0xD0C0B2, 0x485551, 0x0EFB1E, 0xC37295, 0x3B06A3, 0x3540C0, 0x7BDC06, 0xCC45E0, 0xFA294E, 0xC8CAD6, + 0x41F3E8, 0xDE647C, 0xD8649B, 0x31BED9, 0xC397A4, 0xD45877, 0xC5E369, 0x13DAF0, 0x3C3ABA, 0x461846, 0x5F7555, + 0xF5BDD2, 0xC6926E, 0x5D2EAC, 0xED440E, 0x423E1C, 0x87C461, 0xE9FD29, 0xF3D6E7, 0xCA7C22, 0x35916F, 0xC5E008, + 0x8DD7FF, 0xE26A6E, 0xC6FDB0, 0xC10893, 0x745D7C, 0xB2AD6B, 0x9D6ECD, 0x7B723E, 0x6A11C6, 0xA9CFF7, 0xDF7329, + 0xBAC9B5, 0x5100B7, 0x0DB2E2, 0x24BA74, 0x607DE5, 0x8AD874, 0x2C150D, 0x0C1881, 0x94667E, 0x162901, 0x767A9F, + 0xBEFDFD, 0xEF4556, 0x367ED9, 0x13D9EC, 0xB9BA8B, 0xFC97C4, 0x27A831, 0xC36EF1, 0x36C594, 0x56A8D8, 0xB5A8B4, + 0x0ECCCF, 0x2D8912, 0x34576F, 0x89562C, 0xE3CE99, 0xB920D6, 0xAA5E6B, 0x9C2A3E, 0xCC5F11, 0x4A0BFD, 0xFBF4E1, + 0x6D3B8E, 0x2C86E2, 0x84D4E9, 0xA9B4FC, 0xD1EEEF, 0xC9352E, 0x61392F, 0x442138, 0xC8D91B, 0x0AFC81, 0x6A4AFB, + 0xD81C2F, 0x84B453, 0x8C994E, 0xCC2254, 0xDC552A, 0xD6C6C0, 0x96190B, 0xB8701A, 0x649569, 0x605A26, 0xEE523F, + 0x0F117F, 0x11B5F4, 0xF5CBFC, 0x2DBC34, 0xEEBC34, 0xCC5DE8, 0x605EDD, 0x9B8E67, 0xEF3392, 0xB817C9, 0x9B5861, + 0xBC57E1, 0xC68351, 0x103ED8, 0x4871DD, 0xDD1C2D, 0xA118AF, 0x462C21, 0xD7F359, 0x987AD9, 0xC0549E, 0xFA864F, + 0xFC0656, 0xAE79E5, 0x362289, 0x22AD38, 0xDC9367, 0xAAE855, 0x382682, 0x9BE7CA, 0xA40D51, 0xB13399, 0x0ED7A9, + 0x480569, 0xF0B265, 0xA7887F, 0x974C88, 0x36D1F9, 0xB39221, 0x4A827B, 0x21CF98, 0xDC9F40, 0x5547DC, 0x3A74E1, + 0x42EB67, 0xDF9DFE, 0x5FD45E, 0xA4677B, 0x7AACBA, 0xA2F655, 0x23882B, 0x55BA41, 0x086E59, 0x862A21, 0x834739, + 0xE6E389, 0xD49EE5, 0x40FB49, 0xE956FF, 0xCA0F1C, 0x8A59C5, 0x2BFA94, 0xC5C1D3, 0xCFC50F, 0xAE5ADB, 0x86C547, + 0x624385, 0x3B8621, 0x94792C, 0x876110, 0x7B4C2A, 0x1A2C80, 0x12BF43, 0x902688, 0x893C78, 0xE4C4A8, 0x7BDBE5, + 0xC23AC4, 0xEAF426, 0x8A67F7, 0xBF920D, 0x2BA365, 0xB1933D, 0x0B7CBD, 0xDC51A4, 0x63DD27, 0xDDE169, 0x19949A, + 0x9529A8, 0x28CE68, 0xB4ED09, 0x209F44, 0xCA984E, 0x638270, 0x237C7E, 0x32B90F, 0x8EF5A7, 0xE75614, 0x08F121, + 0x2A9DB5, 0x4D7E6F, 0x5119A5, 0xABF9B5, 0xD6DF82, 0x61DD96, 0x023616, 0x9F3AC4, 0xA1A283, 0x6DED72, 0x7A8D39, + 0xA9B882, 0x5C326B, 0x5B2746, 0xED3400, 0x7700D2, 0x55F4FC, 0x4D5901, 0x8071E0, #endif }; diff --git a/lib/libm/__rem_pio2f.c b/lib/libm/__rem_pio2f.c index 6316b60a..04326777 100644 --- a/lib/libm/__rem_pio2f.c +++ b/lib/libm/__rem_pio2f.c @@ -37,9 +37,8 @@ * pio2_1: first 25 bits of pi/2 * pio2_1t: pi/2 - pio2_1 */ -static const double toint = 1.5 / EPS, pio4 = 0x1.921fb6p-1, - invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, - 0x6DC9C883 */ +static const double toint = 1.5 / EPS, pio4 = 0x1.921fb6p-1, invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, + 0x6DC9C883 */ pio2_1 = 1.57079631090164184570e+00, /* 0x3FF921FB, 0x50000000 */ pio2_1t = 1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */ diff --git a/lib/libm/__rem_pio2l.c b/lib/libm/__rem_pio2l.c index f5d28dde..7c980ba4 100644 --- a/lib/libm/__rem_pio2l.c +++ b/lib/libm/__rem_pio2l.c @@ -27,9 +27,7 @@ static const long double toint = 1.5 / LDBL_EPSILON; #if LDBL_MANT_DIG == 64 /* u ~< 0x1p25*pi/2 */ -#define SMALL(u) \ - ((((u).i.se & 0x7fffU) << 16 | (u).i.m >> 48) < \ - ((0x3fff + 25) << 16 | 0x921f >> 1 | 0x8000)) +#define SMALL(u) ((((u).i.se & 0x7fffU) << 16 | (u).i.m >> 48) < ((0x3fff + 25) << 16 | 0x921f >> 1 | 0x8000)) #define QUOBITS(x) ((uint32_t)(int32_t)(x) & 0x7fffffff) #define ROUND1 22 #define ROUND2 61 @@ -46,47 +44,37 @@ static const long double toint = 1.5 / LDBL_EPSILON; */ static const double pio2_1 = 1.57079632679597125389e+00, /* 0x3FF921FB, 0x54444000 */ - pio2_2 = -1.07463465549783099519e-12, /* -0x12e7b967674000.0p-92 */ - pio2_3 = 6.36831716351370313614e-25; /* 0x18a2e037074000.0p-133 */ -static const long double - pio4 = 0x1.921fb54442d1846ap-1L, - invpio2 = 6.36619772367581343076e-01L, /* 0xa2f9836e4e44152a.0p-64 - */ - pio2_1t = -1.07463465549719416346e-12L, /* -0x973dcb3b399d747f.0p-103 */ - pio2_2t = 6.36831716351095013979e-25L, /* 0xc51701b839a25205.0p-144 */ - pio2_3t = -2.75299651904407171810e-37L; /* -0xbb5bf6c7ddd660ce.0p-185 */ + pio2_2 = -1.07463465549783099519e-12, /* -0x12e7b967674000.0p-92 */ + pio2_3 = 6.36831716351370313614e-25; /* 0x18a2e037074000.0p-133 */ +static const long double pio4 = 0x1.921fb54442d1846ap-1L, + invpio2 = 6.36619772367581343076e-01L, /* 0xa2f9836e4e44152a.0p-64 + */ + pio2_1t = -1.07463465549719416346e-12L, /* -0x973dcb3b399d747f.0p-103 */ + pio2_2t = 6.36831716351095013979e-25L, /* 0xc51701b839a25205.0p-144 */ + pio2_3t = -2.75299651904407171810e-37L; /* -0xbb5bf6c7ddd660ce.0p-185 */ #elif LDBL_MANT_DIG == 113 /* u ~< 0x1p45*pi/2 */ -#define SMALL(u) \ - (((u.i.se & 0x7fffU) << 16 | u.i.top) < ((0x3fff + 45) << 16 | 0x921f)) +#define SMALL(u) (((u.i.se & 0x7fffU) << 16 | u.i.top) < ((0x3fff + 45) << 16 | 0x921f)) #define QUOBITS(x) ((uint32_t)(int64_t)x & 0x7fffffff) #define ROUND1 51 #define ROUND2 119 #define NX 5 #define NY 3 -static const long double - pio4 = 0x1.921fb54442d18469898cc51701b8p-1L, - invpio2 = - 6.3661977236758134307553505349005747e-01L, /* 0x145f306dc9c882a53f84eafa3ea6a.0p-113 - */ - pio2_1 = - 1.5707963267948966192292994253909555e+00L, /* 0x1921fb54442d18469800000000000.0p-112 - */ - pio2_1t = - 2.0222662487959507323996846200947577e-21L, /* 0x13198a2e03707344a4093822299f3.0p-181 - */ - pio2_2 = - 2.0222662487959507323994779168837751e-21L, /* 0x13198a2e03707344a400000000000.0p-181 - */ - pio2_2t = - 2.0670321098263988236496903051604844e-43L, /* 0x127044533e63a0105df531d89cd91.0p-254 - */ - pio2_3 = - 2.0670321098263988236499468110329591e-43L, /* 0x127044533e63a0105e00000000000.0p-254 - */ - pio2_3t = - -2.5650587247459238361625433492959285e-65L; /* -0x159c4ec64ddaeb5f78671cbfb2210.0p-327 - */ +static const long double pio4 = 0x1.921fb54442d18469898cc51701b8p-1L, + invpio2 = 6.3661977236758134307553505349005747e-01L, /* 0x145f306dc9c882a53f84eafa3ea6a.0p-113 + */ + pio2_1 = 1.5707963267948966192292994253909555e+00L, /* 0x1921fb54442d18469800000000000.0p-112 + */ + pio2_1t = 2.0222662487959507323996846200947577e-21L, /* 0x13198a2e03707344a4093822299f3.0p-181 + */ + pio2_2 = 2.0222662487959507323994779168837751e-21L, /* 0x13198a2e03707344a400000000000.0p-181 + */ + pio2_2t = 2.0670321098263988236496903051604844e-43L, /* 0x127044533e63a0105df531d89cd91.0p-254 + */ + pio2_3 = 2.0670321098263988236499468110329591e-43L, /* 0x127044533e63a0105e00000000000.0p-254 + */ + pio2_3t = -2.5650587247459238361625433492959285e-65L; /* -0x159c4ec64ddaeb5f78671cbfb2210.0p-327 + */ #endif int __rem_pio2l(long double x, long double *y) @@ -131,8 +119,8 @@ int __rem_pio2l(long double x, long double *y) ey = u.i.se & 0x7fff; if (ex - ey > ROUND2) { /* 3rd iteration, good to 180/316 bits */ - t = r; /* will cover all possible cases (not - verified for ld128) */ + t = r; /* will cover all possible cases (not + verified for ld128) */ w = fn * pio2_3; r = t - w; w = fn * pio2_3t - ((t - r) - w); diff --git a/lib/libm/__sin.c b/lib/libm/__sin.c index e44c66e7..53b71c59 100644 --- a/lib/libm/__sin.c +++ b/lib/libm/__sin.c @@ -45,11 +45,11 @@ static const double S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ - S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ - S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ - S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ - S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ - S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ + S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ + S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ + S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ + S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ double __sin(double x, double y, int iy) { diff --git a/lib/libm/__sindf.c b/lib/libm/__sindf.c index b6b9cf42..ad67f804 100644 --- a/lib/libm/__sindf.c +++ b/lib/libm/__sindf.c @@ -20,9 +20,9 @@ /* |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]). */ static const double S1 = -0x15555554cbac77.0p-55, /* -0.166666666416265235595 */ - S2 = 0x111110896efbb2.0p-59, /* 0.0083333293858894631756 */ - S3 = -0x1a00f9e2cae774.0p-65, /* -0.000198393348360966317347 */ - S4 = 0x16cd878c3b46a7.0p-71; /* 0.0000027183114939898219064 */ + S2 = 0x111110896efbb2.0p-59, /* 0.0083333293858894631756 */ + S3 = -0x1a00f9e2cae774.0p-65, /* -0.000198393348360966317347 */ + S4 = 0x16cd878c3b46a7.0p-71; /* 0.0000027183114939898219064 */ float __sindf(double x) { diff --git a/lib/libm/__sinl.c b/lib/libm/__sinl.c index ecc23a1a..465b7500 100644 --- a/lib/libm/__sinl.c +++ b/lib/libm/__sinl.c @@ -27,20 +27,16 @@ * * See __cosl.c for more details about the polynomial. */ -static const long double S1 = - -0.166666666666666666671L; /* -0xaaaaaaaaaaaaaaab.0p-66 - */ -static const double S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */ - S3 = -0.00019841269841269427, /* -0x1a01a01a019f81.0p-65 */ - S4 = 0.0000027557319223597490, /* 0x171de3a55560f7.0p-71 */ - S5 = -0.000000025052108218074604, /* -0x1ae64564f16cad.0p-78 */ - S6 = 1.6059006598854211e-10, /* 0x161242b90243b5.0p-85 */ - S7 = -7.6429779983024564e-13, /* -0x1ae42ebd1b2e00.0p-93 */ - S8 = 2.6174587166648325e-15; /* 0x179372ea0b3f64.0p-101 */ -#define POLY(z) \ - (S2 + \ - (z) * (S3 + \ - (z) * (S4 + (z) * (S5 + (z) * (S6 + (z) * (S7 + (z) * S8)))))) +static const long double S1 = -0.166666666666666666671L; /* -0xaaaaaaaaaaaaaaab.0p-66 + */ +static const double S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */ + S3 = -0.00019841269841269427, /* -0x1a01a01a019f81.0p-65 */ + S4 = 0.0000027557319223597490, /* 0x171de3a55560f7.0p-71 */ + S5 = -0.000000025052108218074604, /* -0x1ae64564f16cad.0p-78 */ + S6 = 1.6059006598854211e-10, /* 0x161242b90243b5.0p-85 */ + S7 = -7.6429779983024564e-13, /* -0x1ae42ebd1b2e00.0p-93 */ + S8 = 2.6174587166648325e-15; /* 0x179372ea0b3f64.0p-101 */ +#define POLY(z) (S2 + (z) * (S3 + (z) * (S4 + (z) * (S5 + (z) * (S6 + (z) * (S7 + (z) * S8)))))) #elif LDBL_MANT_DIG == 113 /* * ld128 version of __sin.c. See __sin.c for most comments. @@ -51,31 +47,21 @@ static const double S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */ * * See __cosl.c for more details about the polynomial. */ -static const long double - S1 = -0.16666666666666666666666666666666666606732416116558L, - S2 = 0.0083333333333333333333333333333331135404851288270047L, - S3 = -0.00019841269841269841269841269839935785325638310428717L, - S4 = 0.27557319223985890652557316053039946268333231205686e-5L, - S5 = -0.25052108385441718775048214826384312253862930064745e-7L, - S6 = 0.16059043836821614596571832194524392581082444805729e-9L, - S7 = -0.76471637318198151807063387954939213287488216303768e-12L, - S8 = 0.28114572543451292625024967174638477283187397621303e-14L; -static const double - S9 = -0.82206352458348947812512122163446202498005154296863e-17, - S10 = 0.19572940011906109418080609928334380560135358385256e-19, - S11 = -0.38680813379701966970673724299207480965452616911420e-22, - S12 = 0.64038150078671872796678569586315881020659912139412e-25; -#define POLY(z) \ - (S2 + \ - z * (S3 + \ - z * (S4 + \ - z * (S5 + \ - z * (S6 + \ - z * (S7 + \ - z * (S8 + \ - z * (S9 + \ - z * (S10 + \ - z * (S11 + z * S12)))))))))) +static const long double S1 = -0.16666666666666666666666666666666666606732416116558L, + S2 = 0.0083333333333333333333333333333331135404851288270047L, + S3 = -0.00019841269841269841269841269839935785325638310428717L, + S4 = 0.27557319223985890652557316053039946268333231205686e-5L, + S5 = -0.25052108385441718775048214826384312253862930064745e-7L, + S6 = 0.16059043836821614596571832194524392581082444805729e-9L, + S7 = -0.76471637318198151807063387954939213287488216303768e-12L, + S8 = 0.28114572543451292625024967174638477283187397621303e-14L; +static const double S9 = -0.82206352458348947812512122163446202498005154296863e-17, + S10 = 0.19572940011906109418080609928334380560135358385256e-19, + S11 = -0.38680813379701966970673724299207480965452616911420e-22, + S12 = 0.64038150078671872796678569586315881020659912139412e-25; +#define POLY(z) \ + (S2 + \ + z * (S3 + z * (S4 + z * (S5 + z * (S6 + z * (S7 + z * (S8 + z * (S9 + z * (S10 + z * (S11 + z * S12)))))))))) #endif long double __sinl(long double x, long double y, int iy) diff --git a/lib/libm/__tan.c b/lib/libm/__tan.c index 9abfff35..4f0e6279 100644 --- a/lib/libm/__tan.c +++ b/lib/libm/__tan.c @@ -92,11 +92,8 @@ double __tan(double x, double y, int odd) * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) */ - r = T[1] + - w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); - v = z * - (T[2] + - w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); + r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); + v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); s = z * x; r = y + z * (s * (r + v) + y) + s * T[0]; w = x + r; diff --git a/lib/libm/__tanl.c b/lib/libm/__tanl.c index 28167d02..a7d0dce0 100644 --- a/lib/libm/__tanl.c +++ b/lib/libm/__tanl.c @@ -27,38 +27,27 @@ * * See __cosl.c for more details about the polynomial. */ -static const long double - T3 = 0.333333333333333333180L, /* 0xaaaaaaaaaaaaaaa5.0p-65 - */ - T5 = 0.133333333333333372290L, /* 0x88888888888893c3.0p-66 */ - T7 = 0.0539682539682504975744L, /* 0xdd0dd0dd0dc13ba2.0p-68 */ - pio4 = 0.785398163397448309628L, /* 0xc90fdaa22168c235.0p-64 */ - pio4lo = -1.25413940316708300586e-20L; /* -0xece675d1fc8f8cbb.0p-130 */ -static const double T9 = 0.021869488536312216, /* 0x1664f4882cc1c2.0p-58 */ - T11 = 0.0088632355256619590, /* 0x1226e355c17612.0p-59 */ - T13 = 0.0035921281113786528, /* 0x1d6d3d185d7ff8.0p-61 */ - T15 = 0.0014558334756312418, /* 0x17da354aa3f96b.0p-62 */ - T17 = 0.00059003538700862256, /* 0x13559358685b83.0p-63 */ - T19 = 0.00023907843576635544, /* 0x1f56242026b5be.0p-65 */ - T21 = 0.000097154625656538905, /* 0x1977efc26806f4.0p-66 */ - T23 = 0.000038440165747303162, /* 0x14275a09b3ceac.0p-67 */ - T25 = 0.000018082171885432524, /* 0x12f5e563e5487e.0p-68 */ - T27 = 0.0000024196006108814377, /* 0x144c0d80cc6896.0p-71 */ - T29 = 0.0000078293456938132840, /* 0x106b59141a6cb3.0p-69 */ - T31 = -0.0000032609076735050182, /* -0x1b5abef3ba4b59.0p-71 */ - T33 = 0.0000023261313142559411; /* 0x13835436c0c87f.0p-71 */ -#define RPOLY(w) \ - (T5 + \ - (w) * (T9 + (w) * (T13 + \ - (w) * (T17 + \ - (w) * (T21 + \ - (w) * (T25 + \ - (w) * (T29 + (w) * T33))))))) -#define VPOLY(w) \ - (T7 + \ - (w) * (T11 + \ - (w) * (T15 + \ - (w) * (T19 + (w) * (T23 + (w) * (T27 + (w) * T31)))))) +static const long double T3 = 0.333333333333333333180L, /* 0xaaaaaaaaaaaaaaa5.0p-65 + */ + T5 = 0.133333333333333372290L, /* 0x88888888888893c3.0p-66 */ + T7 = 0.0539682539682504975744L, /* 0xdd0dd0dd0dc13ba2.0p-68 */ + pio4 = 0.785398163397448309628L, /* 0xc90fdaa22168c235.0p-64 */ + pio4lo = -1.25413940316708300586e-20L; /* -0xece675d1fc8f8cbb.0p-130 */ +static const double T9 = 0.021869488536312216, /* 0x1664f4882cc1c2.0p-58 */ + T11 = 0.0088632355256619590, /* 0x1226e355c17612.0p-59 */ + T13 = 0.0035921281113786528, /* 0x1d6d3d185d7ff8.0p-61 */ + T15 = 0.0014558334756312418, /* 0x17da354aa3f96b.0p-62 */ + T17 = 0.00059003538700862256, /* 0x13559358685b83.0p-63 */ + T19 = 0.00023907843576635544, /* 0x1f56242026b5be.0p-65 */ + T21 = 0.000097154625656538905, /* 0x1977efc26806f4.0p-66 */ + T23 = 0.000038440165747303162, /* 0x14275a09b3ceac.0p-67 */ + T25 = 0.000018082171885432524, /* 0x12f5e563e5487e.0p-68 */ + T27 = 0.0000024196006108814377, /* 0x144c0d80cc6896.0p-71 */ + T29 = 0.0000078293456938132840, /* 0x106b59141a6cb3.0p-69 */ + T31 = -0.0000032609076735050182, /* -0x1b5abef3ba4b59.0p-71 */ + T33 = 0.0000023261313142559411; /* 0x13835436c0c87f.0p-71 */ +#define RPOLY(w) (T5 + (w) * (T9 + (w) * (T13 + (w) * (T17 + (w) * (T21 + (w) * (T25 + (w) * (T29 + (w) * T33))))))) +#define VPOLY(w) (T7 + (w) * (T11 + (w) * (T15 + (w) * (T19 + (w) * (T23 + (w) * (T27 + (w) * T31)))))) #elif LDBL_MANT_DIG == 113 /* * ld128 version of __tan.c. See __tan.c for most comments. @@ -69,66 +58,45 @@ static const double T9 = 0.021869488536312216, /* 0x1664f4882cc1c2.0p-58 */ * * See __cosl.c for more details about the polynomial. */ -static const long double T3 = 0x1.5555555555555555555555555553p-2L, - T5 = 0x1.1111111111111111111111111eb5p-3L, - T7 = 0x1.ba1ba1ba1ba1ba1ba1ba1b694cd6p-5L, - T9 = 0x1.664f4882c10f9f32d6bbe09d8bcdp-6L, - T11 = 0x1.226e355e6c23c8f5b4f5762322eep-7L, - T13 = 0x1.d6d3d0e157ddfb5fed8e84e27b37p-9L, - T15 = 0x1.7da36452b75e2b5fce9ee7c2c92ep-10L, - T17 = 0x1.355824803674477dfcf726649efep-11L, - T19 = 0x1.f57d7734d1656e0aceb716f614c2p-13L, - T21 = 0x1.967e18afcb180ed942dfdc518d6cp-14L, - T23 = 0x1.497d8eea21e95bc7e2aa79b9f2cdp-15L, - T25 = 0x1.0b132d39f055c81be49eff7afd50p-16L, - T27 = 0x1.b0f72d33eff7bfa2fbc1059d90b6p-18L, - T29 = 0x1.5ef2daf21d1113df38d0fbc00267p-19L, - T31 = 0x1.1c77d6eac0234988cdaa04c96626p-20L, - T33 = 0x1.cd2a5a292b180e0bdd701057dfe3p-22L, - T35 = 0x1.75c7357d0298c01a31d0a6f7d518p-23L, - T37 = 0x1.2f3190f4718a9a520f98f50081fcp-24L, - pio4 = 0x1.921fb54442d18469898cc51701b8p-1L, - pio4lo = 0x1.cd129024e088a67cc74020bbea60p-116L; +static const long double T3 = 0x1.5555555555555555555555555553p-2L, T5 = 0x1.1111111111111111111111111eb5p-3L, + T7 = 0x1.ba1ba1ba1ba1ba1ba1ba1b694cd6p-5L, T9 = 0x1.664f4882c10f9f32d6bbe09d8bcdp-6L, + T11 = 0x1.226e355e6c23c8f5b4f5762322eep-7L, T13 = 0x1.d6d3d0e157ddfb5fed8e84e27b37p-9L, + T15 = 0x1.7da36452b75e2b5fce9ee7c2c92ep-10L, T17 = 0x1.355824803674477dfcf726649efep-11L, + T19 = 0x1.f57d7734d1656e0aceb716f614c2p-13L, T21 = 0x1.967e18afcb180ed942dfdc518d6cp-14L, + T23 = 0x1.497d8eea21e95bc7e2aa79b9f2cdp-15L, T25 = 0x1.0b132d39f055c81be49eff7afd50p-16L, + T27 = 0x1.b0f72d33eff7bfa2fbc1059d90b6p-18L, T29 = 0x1.5ef2daf21d1113df38d0fbc00267p-19L, + T31 = 0x1.1c77d6eac0234988cdaa04c96626p-20L, T33 = 0x1.cd2a5a292b180e0bdd701057dfe3p-22L, + T35 = 0x1.75c7357d0298c01a31d0a6f7d518p-23L, T37 = 0x1.2f3190f4718a9a520f98f50081fcp-24L, + pio4 = 0x1.921fb54442d18469898cc51701b8p-1L, pio4lo = 0x1.cd129024e088a67cc74020bbea60p-116L; static const double T39 = 0.000000028443389121318352, /* 0x1e8a7592977938.0p-78 */ - T41 = 0.000000011981013102001973, /* 0x19baa1b1223219.0p-79 */ - T43 = 0.0000000038303578044958070, /* 0x107385dfb24529.0p-80 */ - T45 = 0.0000000034664378216909893, /* 0x1dc6c702a05262.0p-81 */ - T47 = -0.0000000015090641701997785, /* -0x19ecef3569ebb6.0p-82 */ - T49 = 0.0000000029449552300483952, /* 0x194c0668da786a.0p-81 */ - T51 = -0.0000000022006995706097711, /* -0x12e763b8845268.0p-81 */ - T53 = 0.0000000015468200913196612, /* 0x1a92fc98c29554.0p-82 */ - T55 = -0.00000000061311613386849674, /* -0x151106cbc779a9.0p-83 */ - T57 = 1.4912469681508012e-10; /* 0x147edbdba6f43a.0p-85 */ -#define RPOLY(w) \ - (T5 + \ - w * (T9 + \ - w * (T13 + \ - w * (T17 + \ - w * (T21 + \ - w * (T25 + \ - w * (T29 + \ - w * (T33 + \ - w * (T37 + \ - w * (T41 + \ - w * (T45 + \ - w * (T49 + \ - w * (T53 + \ - w * T57))))))))))))) -#define VPOLY(w) \ - (T7 + \ - w * (T11 + \ - w * (T15 + \ - w * (T19 + \ - w * (T23 + \ - w * (T27 + \ - w * (T31 + \ - w * (T35 + \ - w * (T39 + \ - w * (T43 + \ - w * (T47 + \ - w * (T51 + \ - w * T55)))))))))))) + T41 = 0.000000011981013102001973, /* 0x19baa1b1223219.0p-79 */ + T43 = 0.0000000038303578044958070, /* 0x107385dfb24529.0p-80 */ + T45 = 0.0000000034664378216909893, /* 0x1dc6c702a05262.0p-81 */ + T47 = -0.0000000015090641701997785, /* -0x19ecef3569ebb6.0p-82 */ + T49 = 0.0000000029449552300483952, /* 0x194c0668da786a.0p-81 */ + T51 = -0.0000000022006995706097711, /* -0x12e763b8845268.0p-81 */ + T53 = 0.0000000015468200913196612, /* 0x1a92fc98c29554.0p-82 */ + T55 = -0.00000000061311613386849674, /* -0x151106cbc779a9.0p-83 */ + T57 = 1.4912469681508012e-10; /* 0x147edbdba6f43a.0p-85 */ +#define RPOLY(w) \ + (T5 + \ + w * (T9 + \ + w * (T13 + \ + w * (T17 + \ + w * (T21 + \ + w * (T25 + \ + w * (T29 + \ + w * (T33 + \ + w * (T37 + w * (T41 + w * (T45 + w * (T49 + w * (T53 + w * T57))))))))))))) +#define VPOLY(w) \ + (T7 + \ + w * (T11 + \ + w * (T15 + \ + w * (T19 + \ + w * (T23 + \ + w * (T27 + \ + w * (T31 + w * (T35 + w * (T39 + w * (T43 + w * (T47 + w * (T51 + w * T55)))))))))))) #endif long double __tanl(long double x, long double y, int odd) diff --git a/lib/libm/acos.c b/lib/libm/acos.c index 67c059af..ade05239 100644 --- a/lib/libm/acos.c +++ b/lib/libm/acos.c @@ -40,17 +40,17 @@ static const double pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ - pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ - pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ - pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ - pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ - pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ - pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ - pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ - qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ - qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ - qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ - qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ + pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ + pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ + pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ + pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ + pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ + pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ + qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ + qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ + qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ + qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ static double R(double z) { diff --git a/lib/libm/acosf.c b/lib/libm/acosf.c index 51e5c5ea..31b987e0 100644 --- a/lib/libm/acosf.c +++ b/lib/libm/acosf.c @@ -20,8 +20,7 @@ static const float pio2_hi = 1.5707962513e+00, /* 0x3fc90fda */ pio2_lo = 7.5497894159e-08, /* 0x33a22168 */ - pS0 = 1.6666586697e-01, pS1 = -4.2743422091e-02, - pS2 = -8.6563630030e-03, qS1 = -7.0662963390e-01; + pS0 = 1.6666586697e-01, pS1 = -4.2743422091e-02, pS2 = -8.6563630030e-03, qS1 = -7.0662963390e-01; static float R(float z) { diff --git a/lib/libm/asin.c b/lib/libm/asin.c index eb669b87..8fdc1b19 100644 --- a/lib/libm/asin.c +++ b/lib/libm/asin.c @@ -46,7 +46,7 @@ static const double pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ - pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ + pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ /* coefficients for R(x^2) */ pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ @@ -102,8 +102,7 @@ double asin(double x) f = s; SET_LOW_WORD(f, 0); c = (z - f * f) / (s + f); - x = 0.5 * pio2_hi - - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f)); + x = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f)); } if (hx >> 31) return -x; diff --git a/lib/libm/asinf.c b/lib/libm/asinf.c index 0175f4d5..6e26e646 100644 --- a/lib/libm/asinf.c +++ b/lib/libm/asinf.c @@ -22,8 +22,7 @@ static const double pio2 = 1.570796326794896558e+00; static const float /* coefficients for R(x^2) */ pS0 = 1.6666586697e-01, - pS1 = -4.2743422091e-02, pS2 = -8.6563630030e-03, - qS1 = -7.0662963390e-01; + pS1 = -4.2743422091e-02, pS2 = -8.6563630030e-03, qS1 = -7.0662963390e-01; static float R(float z) { diff --git a/lib/libm/asinl.c b/lib/libm/asinl.c index 7a5f6710..da0120b9 100644 --- a/lib/libm/asinl.c +++ b/lib/libm/asinl.c @@ -68,8 +68,7 @@ long double asinl(long double x) CLEARBOTTOM(u); f = u.f; c = (z - f * f) / (s + f); - x = 0.5 * pio2_hi - - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f)); + x = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * f)); } return sign ? -x : x; } diff --git a/lib/libm/atan.c b/lib/libm/atan.c index 36d10d73..2346d21c 100644 --- a/lib/libm/atan.c +++ b/lib/libm/atan.c @@ -109,9 +109,7 @@ double atan(double x) z = x * x; w = z * z; /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ - s1 = z * (aT[0] + - w * (aT[2] + - w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); + s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); if (id < 0) return x - x * (s1 + s2); diff --git a/lib/libm/atanf.c b/lib/libm/atanf.c index 74881a92..c46b970f 100644 --- a/lib/libm/atanf.c +++ b/lib/libm/atanf.c @@ -33,8 +33,7 @@ static const float atanlo[] = { }; static const float aT[] = { - 3.3333328366e-01, -1.9999158382e-01, 1.4253635705e-01, - -1.0648017377e-01, 6.1687607318e-02, + 3.3333328366e-01, -1.9999158382e-01, 1.4253635705e-01, -1.0648017377e-01, 6.1687607318e-02, }; float atanf(float x) diff --git a/lib/libm/atanl.c b/lib/libm/atanl.c index 1f1bff44..4a59fb40 100644 --- a/lib/libm/atanl.c +++ b/lib/libm/atanl.c @@ -44,28 +44,21 @@ static const long double atanlo[] = { }; static const long double aT[] = { - 3.33333333333333333017e-01L, -1.99999999999999632011e-01L, - 1.42857142857046531280e-01L, -1.11111111100562372733e-01L, - 9.09090902935647302252e-02L, -7.69230552476207730353e-02L, - 6.66661718042406260546e-02L, -5.88158892835030888692e-02L, - 5.25499891539726639379e-02L, -4.70119845393155721494e-02L, - 4.03539201366454414072e-02L, -2.91303858419364158725e-02L, + 3.33333333333333333017e-01L, -1.99999999999999632011e-01L, 1.42857142857046531280e-01L, + -1.11111111100562372733e-01L, 9.09090902935647302252e-02L, -7.69230552476207730353e-02L, + 6.66661718042406260546e-02L, -5.88158892835030888692e-02L, 5.25499891539726639379e-02L, + -4.70119845393155721494e-02L, 4.03539201366454414072e-02L, -2.91303858419364158725e-02L, 1.24822046299269234080e-02L, }; static long double T_even(long double x) { - return aT[0] + - x * (aT[2] + - x * (aT[4] + x * (aT[6] + x * (aT[8] + x * (aT[10] + - x * aT[12]))))); + return aT[0] + x * (aT[2] + x * (aT[4] + x * (aT[6] + x * (aT[8] + x * (aT[10] + x * aT[12]))))); } static long double T_odd(long double x) { - return aT[1] + - x * (aT[3] + - x * (aT[5] + x * (aT[7] + x * (aT[9] + x * aT[11])))); + return aT[1] + x * (aT[3] + x * (aT[5] + x * (aT[7] + x * (aT[9] + x * aT[11])))); } #elif LDBL_MANT_DIG == 113 #define EXPMAN(u) ((u.i.se & 0x7fff) << 8 | u.i.top >> 8) @@ -85,30 +78,18 @@ static const long double atanlo[] = { }; static const long double aT[] = { - 3.33333333333333333333333333333333125e-01L, - -1.99999999999999999999999999999180430e-01L, - 1.42857142857142857142857142125269827e-01L, - -1.11111111111111111111110834490810169e-01L, - 9.09090909090909090908522355708623681e-02L, - -7.69230769230769230696553844935357021e-02L, - 6.66666666666666660390096773046256096e-02L, - -5.88235294117646671706582985209643694e-02L, - 5.26315789473666478515847092020327506e-02L, - -4.76190476189855517021024424991436144e-02L, - 4.34782608678695085948531993458097026e-02L, - -3.99999999632663469330634215991142368e-02L, - 3.70370363987423702891250829918659723e-02L, - -3.44827496515048090726669907612335954e-02L, - 3.22579620681420149871973710852268528e-02L, - -3.03020767654269261041647570626778067e-02L, - 2.85641979882534783223403715930946138e-02L, - -2.69824879726738568189929461383741323e-02L, - 2.54194698498808542954187110873675769e-02L, - -2.35083879708189059926183138130183215e-02L, - 2.04832358998165364349957325067131428e-02L, - -1.54489555488544397858507248612362957e-02L, - 8.64492360989278761493037861575248038e-03L, - -2.58521121597609872727919154569765469e-03L, + 3.33333333333333333333333333333333125e-01L, -1.99999999999999999999999999999180430e-01L, + 1.42857142857142857142857142125269827e-01L, -1.11111111111111111111110834490810169e-01L, + 9.09090909090909090908522355708623681e-02L, -7.69230769230769230696553844935357021e-02L, + 6.66666666666666660390096773046256096e-02L, -5.88235294117646671706582985209643694e-02L, + 5.26315789473666478515847092020327506e-02L, -4.76190476189855517021024424991436144e-02L, + 4.34782608678695085948531993458097026e-02L, -3.99999999632663469330634215991142368e-02L, + 3.70370363987423702891250829918659723e-02L, -3.44827496515048090726669907612335954e-02L, + 3.22579620681420149871973710852268528e-02L, -3.03020767654269261041647570626778067e-02L, + 2.85641979882534783223403715930946138e-02L, -2.69824879726738568189929461383741323e-02L, + 2.54194698498808542954187110873675769e-02L, -2.35083879708189059926183138130183215e-02L, + 2.04832358998165364349957325067131428e-02L, -1.54489555488544397858507248612362957e-02L, + 8.64492360989278761493037861575248038e-03L, -2.58521121597609872727919154569765469e-03L, }; static long double T_even(long double x) @@ -121,10 +102,7 @@ static long double T_even(long double x) x * (aT[10] + x * (aT[12] + x * (aT[14] + - x * (aT[16] + - x * (aT[18] + - x * (aT[20] + - x * aT[22]))))))))))); + x * (aT[16] + x * (aT[18] + x * (aT[20] + x * aT[22]))))))))))); } static long double T_odd(long double x) @@ -137,10 +115,7 @@ static long double T_odd(long double x) x * (aT[11] + x * (aT[13] + x * (aT[15] + - x * (aT[17] + - x * (aT[19] + - x * (aT[21] + - x * aT[23]))))))))))); + x * (aT[17] + x * (aT[19] + x * (aT[21] + x * aT[23]))))))))))); } #endif @@ -172,7 +147,7 @@ long double atanl(long double x) id = -1; } else { x = fabsl(x); - if (expman < (0x3fff << 8) + 0x30) { /* |x| < 1.1875 */ + if (expman < (0x3fff << 8) + 0x30) { /* |x| < 1.1875 */ if (expman < ((0x3fff - 1) << 8) + 0x60) { /* 7/16 <= |x| < 11/16 */ diff --git a/lib/libm/atomic.h b/lib/libm/atomic.h index 44d659b7..b0a406ea 100644 --- a/lib/libm/atomic.h +++ b/lib/libm/atomic.h @@ -246,8 +246,7 @@ static inline void a_or_64(volatile uint64_t *p, uint64_t v) #endif #ifndef a_cas_p -typedef char a_cas_p_undefined_but_pointer_not_32bit - [-sizeof(char) == 0xffffffff ? 1 : -1]; +typedef char a_cas_p_undefined_but_pointer_not_32bit[-sizeof(char) == 0xffffffff ? 1 : -1]; #define a_cas_p a_cas_p static inline void *a_cas_p(volatile void *p, void *t, void *s) { @@ -281,10 +280,8 @@ static inline int a_ctz_32(uint32_t x) #ifdef a_clz_32 return 31 - a_clz_32(x & -x); #else - static const char debruijn32[32] = { 0, 1, 23, 2, 29, 24, 19, 3, - 30, 27, 25, 11, 20, 8, 4, 13, - 31, 22, 28, 18, 26, 10, 7, 12, - 21, 17, 9, 6, 16, 5, 15, 14 }; + static const char debruijn32[32] = { 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, + 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 }; return debruijn32[(x & -x) * 0x076be629 >> 27]; #endif } @@ -294,12 +291,10 @@ static inline int a_ctz_32(uint32_t x) #define a_ctz_64 a_ctz_64 static inline int a_ctz_64(uint64_t x) { - static const char debruijn64[64] = { - 0, 1, 2, 53, 3, 7, 54, 27, 4, 38, 41, 8, 34, 55, 48, 28, - 62, 5, 39, 46, 44, 42, 22, 9, 24, 35, 59, 56, 49, 18, 29, 11, - 63, 52, 6, 26, 37, 40, 33, 47, 61, 45, 43, 21, 23, 58, 17, 10, - 51, 25, 36, 32, 60, 20, 57, 16, 50, 31, 19, 15, 30, 14, 13, 12 - }; + static const char debruijn64[64] = { 0, 1, 2, 53, 3, 7, 54, 27, 4, 38, 41, 8, 34, 55, 48, 28, + 62, 5, 39, 46, 44, 42, 22, 9, 24, 35, 59, 56, 49, 18, 29, 11, + 63, 52, 6, 26, 37, 40, 33, 47, 61, 45, 43, 21, 23, 58, 17, 10, + 51, 25, 36, 32, 60, 20, 57, 16, 50, 31, 19, 15, 30, 14, 13, 12 }; if (sizeof(long) < 8) { uint32_t y = x; if (!y) { diff --git a/lib/libm/cbrt.c b/lib/libm/cbrt.c index d583b062..2ef082fb 100644 --- a/lib/libm/cbrt.c +++ b/lib/libm/cbrt.c @@ -20,7 +20,7 @@ static const uint32_t B1 = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */ - B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ + B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ static const double P0 = 1.87595182427177009643, /* 0x3ffe03e6, 0x0f61e692 */ diff --git a/lib/libm/cbrtf.c b/lib/libm/cbrtf.c index f35aae33..ec32a5b1 100644 --- a/lib/libm/cbrtf.c +++ b/lib/libm/cbrtf.c @@ -22,7 +22,7 @@ static const unsigned B1 = 709958130, /* B1 = (127-127.0/3-0.03306235651)*2**23 */ - B2 = 642849266; /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */ + B2 = 642849266; /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */ float cbrtf(float x) { diff --git a/lib/libm/csinhl.c b/lib/libm/csinhl.c index a8a2e4f3..3bede995 100644 --- a/lib/libm/csinhl.c +++ b/lib/libm/csinhl.c @@ -8,6 +8,5 @@ long double complex csinhl(long double complex z) x = creall(z); y = cimagl(z); - return sinhl(x) * cosl(y) + - (coshl(x) * sinl(y)) * (long double complex)I; + return sinhl(x) * cosl(y) + (coshl(x) * sinl(y)) * (long double complex)I; } diff --git a/lib/libm/csinl.c b/lib/libm/csinl.c index 9793d4ad..245d609f 100644 --- a/lib/libm/csinl.c +++ b/lib/libm/csinl.c @@ -7,6 +7,5 @@ long double complex csinl(long double complex z) { long double ch, sh; cchshl(cimagl(z), &ch, &sh); - return sinl(creall(z)) * ch + - (cosl(creall(z)) * sh) * (long double complex)I; + return sinl(creall(z)) * ch + (cosl(creall(z)) * sh) * (long double complex)I; } diff --git a/lib/libm/ctan.c b/lib/libm/ctan.c index b06e60a6..8be23bb7 100644 --- a/lib/libm/ctan.c +++ b/lib/libm/ctan.c @@ -51,6 +51,5 @@ double complex ctan(double complex z) return HUGE_VAL + HUGE_VAL * (double complex)I; } - return sin(2.0 * creal(z)) / d + - (sinh(2.0 * cimag(z)) / d) * (double complex)I; + return sin(2.0 * creal(z)) / d + (sinh(2.0 * cimag(z)) / d) * (double complex)I; } diff --git a/lib/libm/ctanhl.c b/lib/libm/ctanhl.c index 1c9b9b81..2aa2323d 100644 --- a/lib/libm/ctanhl.c +++ b/lib/libm/ctanhl.c @@ -9,6 +9,5 @@ long double complex ctanhl(long double complex z) y = cimagl(z); d = coshl(2.0L * x) + cosl(2.0L * y); - return sinhl(2.0L * x) / d + - (sinl(2.0L * y) / d) * (long double complex)I; + return sinhl(2.0L * x) / d + (sinl(2.0L * y) / d) * (long double complex)I; } diff --git a/lib/libm/ctanl.c b/lib/libm/ctanl.c index 65a9c2a5..1402d52e 100644 --- a/lib/libm/ctanl.c +++ b/lib/libm/ctanl.c @@ -15,6 +15,5 @@ long double complex ctanl(long double complex z) return HUGE_VALL + HUGE_VALL * (long double complex)I; } - return sinl(2.0L * creall(z)) / d + - (sinhl(2.0L * cimagl(z)) / d) * (long double complex)I; + return sinl(2.0L * creall(z)) / d + (sinhl(2.0L * cimagl(z)) / d) * (long double complex)I; } diff --git a/lib/libm/erf.c b/lib/libm/erf.c index e95fb98c..25980189 100644 --- a/lib/libm/erf.c +++ b/lib/libm/erf.c @@ -182,10 +182,8 @@ static double erfc1(double x) double_t s, P, Q; s = fabs(x) - 1; - P = pa0 + - s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6))))); - Q = 1 + - s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6))))); + P = pa0 + s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6))))); + Q = 1 + s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6))))); return 1 - erx - P / Q; } @@ -200,31 +198,11 @@ static double erfc2(uint32_t ix, double x) x = fabs(x); s = 1 / (x * x); if (ix < 0x4006db6d) { /* |x| < 1/.35 ~ 2.85714 */ - R = ra0 + - s * (ra1 + - s * (ra2 + - s * (ra3 + - s * (ra4 + - s * (ra5 + s * (ra6 + s * ra7)))))); - S = 1.0 + - s * (sa1 + - s * (sa2 + - s * (sa3 + - s * (sa4 + - s * (sa5 + - s * (sa6 + - s * (sa7 + s * sa8))))))); + R = ra0 + s * (ra1 + s * (ra2 + s * (ra3 + s * (ra4 + s * (ra5 + s * (ra6 + s * ra7)))))); + S = 1.0 + s * (sa1 + s * (sa2 + s * (sa3 + s * (sa4 + s * (sa5 + s * (sa6 + s * (sa7 + s * sa8))))))); } else { /* |x| > 1/.35 */ - R = rb0 + - s * (rb1 + - s * (rb2 + - s * (rb3 + s * (rb4 + s * (rb5 + s * rb6))))); - S = 1.0 + - s * (sb1 + - s * (sb2 + - s * (sb3 + - s * (sb4 + - s * (sb5 + s * (sb6 + s * sb7)))))); + R = rb0 + s * (rb1 + s * (rb2 + s * (rb3 + s * (rb4 + s * (rb5 + s * rb6))))); + S = 1.0 + s * (sb1 + s * (sb2 + s * (sb3 + s * (sb4 + s * (sb5 + s * (sb6 + s * sb7)))))); } z = x; SET_LOW_WORD(z, 0); @@ -251,8 +229,7 @@ double erf(double x) } z = x * x; r = pp0 + z * (pp1 + z * (pp2 + z * (pp3 + z * pp4))); - s = 1.0 + - z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); + s = 1.0 + z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); y = r / s; return x + x * y; } @@ -281,8 +258,7 @@ double erfc(double x) return 1.0 - x; z = x * x; r = pp0 + z * (pp1 + z * (pp2 + z * (pp3 + z * pp4))); - s = 1.0 + - z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); + s = 1.0 + z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); y = r / s; if (sign || ix < 0x3fd00000) { /* x < 1/4 */ return 1.0 - (x + x * y); diff --git a/lib/libm/erff.c b/lib/libm/erff.c index 2bf5d39e..dde5dc64 100644 --- a/lib/libm/erff.c +++ b/lib/libm/erff.c @@ -91,10 +91,8 @@ static float erfc1(float x) float_t s, P, Q; s = fabsf(x) - 1; - P = pa0 + - s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6))))); - Q = 1 + - s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6))))); + P = pa0 + s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6))))); + Q = 1 + s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6))))); return 1 - erx - P / Q; } @@ -109,31 +107,11 @@ static float erfc2(uint32_t ix, float x) x = fabsf(x); s = 1 / (x * x); if (ix < 0x4036db6d) { /* |x| < 1/0.35 */ - R = ra0 + - s * (ra1 + - s * (ra2 + - s * (ra3 + - s * (ra4 + - s * (ra5 + s * (ra6 + s * ra7)))))); - S = 1.0f + - s * (sa1 + - s * (sa2 + - s * (sa3 + - s * (sa4 + - s * (sa5 + - s * (sa6 + - s * (sa7 + s * sa8))))))); + R = ra0 + s * (ra1 + s * (ra2 + s * (ra3 + s * (ra4 + s * (ra5 + s * (ra6 + s * ra7)))))); + S = 1.0f + s * (sa1 + s * (sa2 + s * (sa3 + s * (sa4 + s * (sa5 + s * (sa6 + s * (sa7 + s * sa8))))))); } else { /* |x| >= 1/0.35 */ - R = rb0 + - s * (rb1 + - s * (rb2 + - s * (rb3 + s * (rb4 + s * (rb5 + s * rb6))))); - S = 1.0f + - s * (sb1 + - s * (sb2 + - s * (sb3 + - s * (sb4 + - s * (sb5 + s * (sb6 + s * sb7)))))); + R = rb0 + s * (rb1 + s * (rb2 + s * (rb3 + s * (rb4 + s * (rb5 + s * rb6))))); + S = 1.0f + s * (sb1 + s * (sb2 + s * (sb3 + s * (sb4 + s * (sb5 + s * (sb6 + s * sb7)))))); } GET_FLOAT_WORD(ix, x); SET_FLOAT_WORD(z, ix & 0xffffe000); @@ -190,8 +168,7 @@ float erfcf(float x) return 1.0f - x; z = x * x; r = pp0 + z * (pp1 + z * (pp2 + z * (pp3 + z * pp4))); - s = 1.0f + - z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); + s = 1.0f + z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5)))); y = r / s; if (sign || ix < 0x3e800000) /* x < 1/4 */ return 1.0f - (x + x * y); diff --git a/lib/libm/erfl.c b/lib/libm/erfl.c index bb571734..143f6035 100644 --- a/lib/libm/erfl.c +++ b/lib/libm/erfl.c @@ -247,17 +247,8 @@ static long double erfc1(long double x) long double s, P, Q; s = fabsl(x) - 1; - P = pa[0] + - s * (pa[1] + - s * (pa[2] + - s * (pa[3] + - s * (pa[4] + - s * (pa[5] + s * (pa[6] + s * pa[7])))))); - Q = qa[0] + - s * (qa[1] + - s * (qa[2] + - s * (qa[3] + - s * (qa[4] + s * (qa[5] + s * (qa[6] + s)))))); + P = pa[0] + s * (pa[1] + s * (pa[2] + s * (pa[3] + s * (pa[4] + s * (pa[5] + s * (pa[6] + s * pa[7])))))); + Q = qa[0] + s * (qa[1] + s * (qa[2] + s * (qa[3] + s * (qa[4] + s * (qa[5] + s * (qa[6] + s)))))); return 1 - erx - P / Q; } @@ -274,41 +265,18 @@ static long double erfc2(uint32_t ix, long double x) if (ix < 0x4000b6db) { /* 1.25 <= |x| < 2.857 ~ 1/.35 */ R = ra[0] + s * (ra[1] + - s * (ra[2] + - s * (ra[3] + - s * (ra[4] + - s * (ra[5] + - s * (ra[6] + - s * (ra[7] + s * ra[8]))))))); + s * (ra[2] + s * (ra[3] + s * (ra[4] + s * (ra[5] + s * (ra[6] + s * (ra[7] + s * ra[8]))))))); S = sa[0] + s * (sa[1] + s * (sa[2] + - s * (sa[3] + - s * (sa[4] + - s * (sa[5] + - s * (sa[6] + - s * (sa[7] + - s * (sa[8] + s)))))))); + s * (sa[3] + s * (sa[4] + s * (sa[5] + s * (sa[6] + s * (sa[7] + s * (sa[8] + s)))))))); } else if (ix < 0x4001d555) { /* 2.857 <= |x| < 6.6666259765625 */ R = rb[0] + - s * (rb[1] + - s * (rb[2] + - s * (rb[3] + - s * (rb[4] + - s * (rb[5] + - s * (rb[6] + s * rb[7])))))); - S = sb[0] + - s * (sb[1] + - s * (sb[2] + - s * (sb[3] + - s * (sb[4] + - s * (sb[5] + s * (sb[6] + s)))))); + s * (rb[1] + s * (rb[2] + s * (rb[3] + s * (rb[4] + s * (rb[5] + s * (rb[6] + s * rb[7])))))); + S = sb[0] + s * (sb[1] + s * (sb[2] + s * (sb[3] + s * (sb[4] + s * (sb[5] + s * (sb[6] + s)))))); } else { /* 6.666 <= |x| < 107 (erfc only) */ - R = rc[0] + - s * (rc[1] + - s * (rc[2] + s * (rc[3] + s * (rc[4] + s * rc[5])))); - S = sc[0] + - s * (sc[1] + s * (sc[2] + s * (sc[3] + s * (sc[4] + s)))); + R = rc[0] + s * (rc[1] + s * (rc[2] + s * (rc[3] + s * (rc[4] + s * rc[5])))); + S = sc[0] + s * (sc[1] + s * (sc[2] + s * (sc[3] + s * (sc[4] + s)))); } u.f = x; u.i.m &= -1ULL << 40; @@ -331,13 +299,8 @@ long double erfl(long double x) return 0.125 * (8 * x + efx8 * x); /* avoid underflow */ } z = x * x; - r = pp[0] + - z * (pp[1] + - z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5])))); - s = qq[0] + - z * (qq[1] + - z * (qq[2] + - z * (qq[3] + z * (qq[4] + z * (qq[5] + z))))); + r = pp[0] + z * (pp[1] + z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5])))); + s = qq[0] + z * (qq[1] + z * (qq[2] + z * (qq[3] + z * (qq[4] + z * (qq[5] + z))))); y = r / s; return x + x * y; } @@ -362,13 +325,8 @@ long double erfcl(long double x) if (ix < 0x3fbe0000) /* |x| < 2**-65 */ return 1.0 - x; z = x * x; - r = pp[0] + - z * (pp[1] + - z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5])))); - s = qq[0] + - z * (qq[1] + - z * (qq[2] + - z * (qq[3] + z * (qq[4] + z * (qq[5] + z))))); + r = pp[0] + z * (pp[1] + z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5])))); + s = qq[0] + z * (qq[1] + z * (qq[2] + z * (qq[3] + z * (qq[4] + z * (qq[5] + z))))); y = r / s; if (ix < 0x3ffd8000) /* x < 1/4 */ return 1.0 - (x + x * y); diff --git a/lib/libm/exp.c b/lib/libm/exp.c index 088a0cbb..21619f6d 100644 --- a/lib/libm/exp.c +++ b/lib/libm/exp.c @@ -79,8 +79,7 @@ double exp(double x) double_t kd, z, r, r2, scale, tail, tmp; abstop = top12(x) & 0x7ff; - if (predict_false(abstop - top12(0x1p-54) >= - top12(512.0) - top12(0x1p-54))) { + if (predict_false(abstop - top12(0x1p-54) >= top12(512.0) - top12(0x1p-54))) { if (abstop - top12(0x1p-54) >= 0x80000000) /* Avoid spurious underflow for tiny x. */ /* Note: 0 is common input. */ diff --git a/lib/libm/exp10.c b/lib/libm/exp10.c index deed9dcb..06130c80 100644 --- a/lib/libm/exp10.c +++ b/lib/libm/exp10.c @@ -6,12 +6,9 @@ double exp10(double x) { - static const double p10[] = { 1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, - 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, - 1e-3, 1e-2, 1e-1, 1, 1e1, 1e2, - 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15 }; + static const double p10[] = { 1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, + 1e-4, 1e-3, 1e-2, 1e-1, 1, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15 }; double n, y = modf(x, &n); union { double f; diff --git a/lib/libm/exp10f.c b/lib/libm/exp10f.c index a9cde41d..d4e322b4 100644 --- a/lib/libm/exp10f.c +++ b/lib/libm/exp10f.c @@ -6,9 +6,8 @@ float exp10f(float x) { - static const float p10[] = { 1e-7f, 1e-6f, 1e-5f, 1e-4f, 1e-3f, - 1e-2f, 1e-1f, 1, 1e1, 1e2, - 1e3, 1e4, 1e5, 1e6, 1e7 }; + static const float p10[] = { 1e-7f, 1e-6f, 1e-5f, 1e-4f, 1e-3f, 1e-2f, 1e-1f, 1, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7 }; float n, y = modff(x, &n); union { float f; diff --git a/lib/libm/exp10l.c b/lib/libm/exp10l.c index f0bf23d9..ba522faf 100644 --- a/lib/libm/exp10l.c +++ b/lib/libm/exp10l.c @@ -12,12 +12,10 @@ long double exp10l(long double x) #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384 long double exp10l(long double x) { - static const long double p10[] = { - 1e-15L, 1e-14L, 1e-13L, 1e-12L, 1e-11L, 1e-10L, 1e-9L, 1e-8L, - 1e-7L, 1e-6L, 1e-5L, 1e-4L, 1e-3L, 1e-2L, 1e-1L, 1, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15 - }; + static const long double p10[] = { 1e-15L, 1e-14L, 1e-13L, 1e-12L, 1e-11L, 1e-10L, 1e-9L, 1e-8L, + 1e-7L, 1e-6L, 1e-5L, 1e-4L, 1e-3L, 1e-2L, 1e-1L, 1, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15 }; long double n, y = modfl(x, &n); union ldshape u = { n }; /* fabsl(n) < 16 without raising invalid on nan */ diff --git a/lib/libm/exp2.c b/lib/libm/exp2.c index b94232fa..57acec22 100644 --- a/lib/libm/exp2.c +++ b/lib/libm/exp2.c @@ -76,8 +76,7 @@ double exp2(double x) double_t kd, r, r2, scale, tail, tmp; abstop = top12(x) & 0x7ff; - if (predict_false(abstop - top12(0x1p-54) >= - top12(512.0) - top12(0x1p-54))) { + if (predict_false(abstop - top12(0x1p-54) >= top12(512.0) - top12(0x1p-54))) { if (abstop - top12(0x1p-54) >= 0x80000000) /* Avoid spurious underflow for tiny x. */ /* Note: 0 is common input. */ diff --git a/lib/libm/exp2l.c b/lib/libm/exp2l.c index d5899e2d..6c7fa21f 100644 --- a/lib/libm/exp2l.c +++ b/lib/libm/exp2l.c @@ -41,9 +41,8 @@ long double exp2l(long double x) #define TBLBITS 7 #define TBLSIZE (1 << TBLBITS) -static const double redux = 0x1.8p63 / TBLSIZE, P1 = 0x1.62e42fefa39efp-1, - P2 = 0x1.ebfbdff82c58fp-3, P3 = 0x1.c6b08d7049fap-5, - P4 = 0x1.3b2ab6fba4da5p-7, P5 = 0x1.5d8804780a736p-10, +static const double redux = 0x1.8p63 / TBLSIZE, P1 = 0x1.62e42fefa39efp-1, P2 = 0x1.ebfbdff82c58fp-3, + P3 = 0x1.c6b08d7049fap-5, P4 = 0x1.3b2ab6fba4da5p-7, P5 = 0x1.5d8804780a736p-10, P6 = 0x1.430918835e33dp-13; static const double tbl[TBLSIZE * 2] = { @@ -378,10 +377,7 @@ long double exp2l(long double x) long double t_hi = tbl[2 * i0]; long double t_lo = tbl[2 * i0 + 1]; /* XXX This gives > 1 ulp errors outside of FE_TONEAREST mode */ - r = t_lo + - (t_hi + t_lo) * z * - (P1 + z * (P2 + z * (P3 + z * (P4 + z * (P5 + z * P6))))) + - t_hi; + r = t_lo + (t_hi + t_lo) * z * (P1 + z * (P2 + z * (P3 + z * (P4 + z * (P5 + z * P6))))) + t_hi; return scalbnl(r, k.i); } @@ -389,181 +385,100 @@ long double exp2l(long double x) #define TBLBITS 7 #define TBLSIZE (1 << TBLBITS) -static const long double P1 = 0x1.62e42fefa39ef35793c7673007e6p-1L, - P2 = 0x1.ebfbdff82c58ea86f16b06ec9736p-3L, - P3 = 0x1.c6b08d704a0bf8b33a762bad3459p-5L, - P4 = 0x1.3b2ab6fba4e7729ccbbe0b4f3fc2p-7L, - P5 = 0x1.5d87fe78a67311071dee13fd11d9p-10L, - P6 = 0x1.430912f86c7876f4b663b23c5fe5p-13L; +static const long double P1 = 0x1.62e42fefa39ef35793c7673007e6p-1L, P2 = 0x1.ebfbdff82c58ea86f16b06ec9736p-3L, + P3 = 0x1.c6b08d704a0bf8b33a762bad3459p-5L, P4 = 0x1.3b2ab6fba4e7729ccbbe0b4f3fc2p-7L, + P5 = 0x1.5d87fe78a67311071dee13fd11d9p-10L, P6 = 0x1.430912f86c7876f4b663b23c5fe5p-13L; -static const double P7 = 0x1.ffcbfc588b041p-17, P8 = 0x1.62c0223a5c7c7p-20, - P9 = 0x1.b52541ff59713p-24, P10 = 0x1.e4cf56a391e22p-28, - redux = 0x1.8p112 / TBLSIZE; +static const double P7 = 0x1.ffcbfc588b041p-17, P8 = 0x1.62c0223a5c7c7p-20, P9 = 0x1.b52541ff59713p-24, + P10 = 0x1.e4cf56a391e22p-28, redux = 0x1.8p112 / TBLSIZE; static const long double tbl[TBLSIZE] = { - 0x1.6a09e667f3bcc908b2fb1366dfeap-1L, - 0x1.6c012750bdabeed76a99800f4edep-1L, - 0x1.6dfb23c651a2ef220e2cbe1bc0d4p-1L, - 0x1.6ff7df9519483cf87e1b4f3e1e98p-1L, - 0x1.71f75e8ec5f73dd2370f2ef0b148p-1L, - 0x1.73f9a48a58173bd5c9a4e68ab074p-1L, - 0x1.75feb564267c8bf6e9aa33a489a8p-1L, - 0x1.780694fde5d3f619ae02808592a4p-1L, - 0x1.7a11473eb0186d7d51023f6ccb1ap-1L, - 0x1.7c1ed0130c1327c49334459378dep-1L, - 0x1.7e2f336cf4e62105d02ba1579756p-1L, - 0x1.80427543e1a11b60de67649a3842p-1L, - 0x1.82589994cce128acf88afab34928p-1L, - 0x1.8471a4623c7acce52f6b97c6444cp-1L, - 0x1.868d99b4492ec80e41d90ac2556ap-1L, - 0x1.88ac7d98a669966530bcdf2d4cc0p-1L, - 0x1.8ace5422aa0db5ba7c55a192c648p-1L, - 0x1.8cf3216b5448bef2aa1cd161c57ap-1L, - 0x1.8f1ae991577362b982745c72eddap-1L, - 0x1.9145b0b91ffc588a61b469f6b6a0p-1L, - 0x1.93737b0cdc5e4f4501c3f2540ae8p-1L, - 0x1.95a44cbc8520ee9b483695a0e7fep-1L, - 0x1.97d829fde4e4f8b9e920f91e8eb6p-1L, - 0x1.9a0f170ca07b9ba3109b8c467844p-1L, - 0x1.9c49182a3f0901c7c46b071f28dep-1L, - 0x1.9e86319e323231824ca78e64c462p-1L, - 0x1.a0c667b5de564b29ada8b8cabbacp-1L, - 0x1.a309bec4a2d3358c171f770db1f4p-1L, - 0x1.a5503b23e255c8b424491caf88ccp-1L, - 0x1.a799e1330b3586f2dfb2b158f31ep-1L, - 0x1.a9e6b5579fdbf43eb243bdff53a2p-1L, - 0x1.ac36bbfd3f379c0db966a3126988p-1L, - 0x1.ae89f995ad3ad5e8734d17731c80p-1L, - 0x1.b0e07298db66590842acdfc6fb4ep-1L, - 0x1.b33a2b84f15faf6bfd0e7bd941b0p-1L, - 0x1.b59728de559398e3881111648738p-1L, - 0x1.b7f76f2fb5e46eaa7b081ab53ff6p-1L, - 0x1.ba5b030a10649840cb3c6af5b74cp-1L, - 0x1.bcc1e904bc1d2247ba0f45b3d06cp-1L, - 0x1.bf2c25bd71e088408d7025190cd0p-1L, - 0x1.c199bdd85529c2220cb12a0916bap-1L, - 0x1.c40ab5fffd07a6d14df820f17deap-1L, - 0x1.c67f12e57d14b4a2137fd20f2a26p-1L, - 0x1.c8f6d9406e7b511acbc48805c3f6p-1L, - 0x1.cb720dcef90691503cbd1e949d0ap-1L, - 0x1.cdf0b555dc3f9c44f8958fac4f12p-1L, - 0x1.d072d4a07897b8d0f22f21a13792p-1L, - 0x1.d2f87080d89f18ade123989ea50ep-1L, - 0x1.d5818dcfba48725da05aeb66dff8p-1L, - 0x1.d80e316c98397bb84f9d048807a0p-1L, - 0x1.da9e603db3285708c01a5b6d480cp-1L, - 0x1.dd321f301b4604b695de3c0630c0p-1L, - 0x1.dfc97337b9b5eb968cac39ed284cp-1L, - 0x1.e264614f5a128a12761fa17adc74p-1L, - 0x1.e502ee78b3ff6273d130153992d0p-1L, - 0x1.e7a51fbc74c834b548b2832378a4p-1L, - 0x1.ea4afa2a490d9858f73a18f5dab4p-1L, - 0x1.ecf482d8e67f08db0312fb949d50p-1L, - 0x1.efa1bee615a27771fd21a92dabb6p-1L, - 0x1.f252b376bba974e8696fc3638f24p-1L, - 0x1.f50765b6e4540674f84b762861a6p-1L, - 0x1.f7bfdad9cbe138913b4bfe72bd78p-1L, - 0x1.fa7c1819e90d82e90a7e74b26360p-1L, - 0x1.fd3c22b8f71f10975ba4b32bd006p-1L, - 0x1.0000000000000000000000000000p+0L, - 0x1.0163da9fb33356d84a66ae336e98p+0L, - 0x1.02c9a3e778060ee6f7caca4f7a18p+0L, - 0x1.04315e86e7f84bd738f9a20da442p+0L, - 0x1.059b0d31585743ae7c548eb68c6ap+0L, - 0x1.0706b29ddf6ddc6dc403a9d87b1ep+0L, - 0x1.0874518759bc808c35f25d942856p+0L, - 0x1.09e3ecac6f3834521e060c584d5cp+0L, - 0x1.0b5586cf9890f6298b92b7184200p+0L, - 0x1.0cc922b7247f7407b705b893dbdep+0L, - 0x1.0e3ec32d3d1a2020742e4f8af794p+0L, - 0x1.0fb66affed31af232091dd8a169ep+0L, - 0x1.11301d0125b50a4ebbf1aed9321cp+0L, - 0x1.12abdc06c31cbfb92bad324d6f84p+0L, - 0x1.1429aaea92ddfb34101943b2588ep+0L, - 0x1.15a98c8a58e512480d573dd562aep+0L, - 0x1.172b83c7d517adcdf7c8c50eb162p+0L, - 0x1.18af9388c8de9bbbf70b9a3c269cp+0L, - 0x1.1a35beb6fcb753cb698f692d2038p+0L, - 0x1.1bbe084045cd39ab1e72b442810ep+0L, - 0x1.1d4873168b9aa7805b8028990be8p+0L, - 0x1.1ed5022fcd91cb8819ff61121fbep+0L, - 0x1.2063b88628cd63b8eeb0295093f6p+0L, - 0x1.21f49917ddc962552fd29294bc20p+0L, - 0x1.2387a6e75623866c1fadb1c159c0p+0L, - 0x1.251ce4fb2a63f3582ab7de9e9562p+0L, - 0x1.26b4565e27cdd257a673281d3068p+0L, - 0x1.284dfe1f5638096cf15cf03c9fa0p+0L, - 0x1.29e9df51fdee12c25d15f5a25022p+0L, - 0x1.2b87fd0dad98ffddea46538fca24p+0L, - 0x1.2d285a6e4030b40091d536d0733ep+0L, - 0x1.2ecafa93e2f5611ca0f45d5239a4p+0L, - 0x1.306fe0a31b7152de8d5a463063bep+0L, - 0x1.32170fc4cd8313539cf1c3009330p+0L, - 0x1.33c08b26416ff4c9c8610d96680ep+0L, - 0x1.356c55f929ff0c94623476373be4p+0L, - 0x1.371a7373aa9caa7145502f45452ap+0L, - 0x1.38cae6d05d86585a9cb0d9bed530p+0L, - 0x1.3a7db34e59ff6ea1bc9299e0a1fep+0L, - 0x1.3c32dc313a8e484001f228b58cf0p+0L, - 0x1.3dea64c12342235b41223e13d7eep+0L, - 0x1.3fa4504ac801ba0bf701aa417b9cp+0L, - 0x1.4160a21f72e29f84325b8f3dbacap+0L, - 0x1.431f5d950a896dc704439410b628p+0L, - 0x1.44e086061892d03136f409df0724p+0L, - 0x1.46a41ed1d005772512f459229f0ap+0L, - 0x1.486a2b5c13cd013c1a3b69062f26p+0L, - 0x1.4a32af0d7d3de672d8bcf46f99b4p+0L, - 0x1.4bfdad5362a271d4397afec42e36p+0L, - 0x1.4dcb299fddd0d63b36ef1a9e19dep+0L, - 0x1.4f9b2769d2ca6ad33d8b69aa0b8cp+0L, - 0x1.516daa2cf6641c112f52c84d6066p+0L, - 0x1.5342b569d4f81df0a83c49d86bf4p+0L, - 0x1.551a4ca5d920ec52ec620243540cp+0L, - 0x1.56f4736b527da66ecb004764e61ep+0L, - 0x1.58d12d497c7fd252bc2b7343d554p+0L, - 0x1.5ab07dd48542958c93015191e9a8p+0L, - 0x1.5c9268a5946b701c4b1b81697ed4p+0L, - 0x1.5e76f15ad21486e9be4c20399d12p+0L, - 0x1.605e1b976dc08b076f592a487066p+0L, - 0x1.6247eb03a5584b1f0fa06fd2d9eap+0L, - 0x1.6434634ccc31fc76f8714c4ee122p+0L, - 0x1.66238825522249127d9e29b92ea2p+0L, - 0x1.68155d44ca973081c57227b9f69ep+0L, + 0x1.6a09e667f3bcc908b2fb1366dfeap-1L, 0x1.6c012750bdabeed76a99800f4edep-1L, + 0x1.6dfb23c651a2ef220e2cbe1bc0d4p-1L, 0x1.6ff7df9519483cf87e1b4f3e1e98p-1L, + 0x1.71f75e8ec5f73dd2370f2ef0b148p-1L, 0x1.73f9a48a58173bd5c9a4e68ab074p-1L, + 0x1.75feb564267c8bf6e9aa33a489a8p-1L, 0x1.780694fde5d3f619ae02808592a4p-1L, + 0x1.7a11473eb0186d7d51023f6ccb1ap-1L, 0x1.7c1ed0130c1327c49334459378dep-1L, + 0x1.7e2f336cf4e62105d02ba1579756p-1L, 0x1.80427543e1a11b60de67649a3842p-1L, + 0x1.82589994cce128acf88afab34928p-1L, 0x1.8471a4623c7acce52f6b97c6444cp-1L, + 0x1.868d99b4492ec80e41d90ac2556ap-1L, 0x1.88ac7d98a669966530bcdf2d4cc0p-1L, + 0x1.8ace5422aa0db5ba7c55a192c648p-1L, 0x1.8cf3216b5448bef2aa1cd161c57ap-1L, + 0x1.8f1ae991577362b982745c72eddap-1L, 0x1.9145b0b91ffc588a61b469f6b6a0p-1L, + 0x1.93737b0cdc5e4f4501c3f2540ae8p-1L, 0x1.95a44cbc8520ee9b483695a0e7fep-1L, + 0x1.97d829fde4e4f8b9e920f91e8eb6p-1L, 0x1.9a0f170ca07b9ba3109b8c467844p-1L, + 0x1.9c49182a3f0901c7c46b071f28dep-1L, 0x1.9e86319e323231824ca78e64c462p-1L, + 0x1.a0c667b5de564b29ada8b8cabbacp-1L, 0x1.a309bec4a2d3358c171f770db1f4p-1L, + 0x1.a5503b23e255c8b424491caf88ccp-1L, 0x1.a799e1330b3586f2dfb2b158f31ep-1L, + 0x1.a9e6b5579fdbf43eb243bdff53a2p-1L, 0x1.ac36bbfd3f379c0db966a3126988p-1L, + 0x1.ae89f995ad3ad5e8734d17731c80p-1L, 0x1.b0e07298db66590842acdfc6fb4ep-1L, + 0x1.b33a2b84f15faf6bfd0e7bd941b0p-1L, 0x1.b59728de559398e3881111648738p-1L, + 0x1.b7f76f2fb5e46eaa7b081ab53ff6p-1L, 0x1.ba5b030a10649840cb3c6af5b74cp-1L, + 0x1.bcc1e904bc1d2247ba0f45b3d06cp-1L, 0x1.bf2c25bd71e088408d7025190cd0p-1L, + 0x1.c199bdd85529c2220cb12a0916bap-1L, 0x1.c40ab5fffd07a6d14df820f17deap-1L, + 0x1.c67f12e57d14b4a2137fd20f2a26p-1L, 0x1.c8f6d9406e7b511acbc48805c3f6p-1L, + 0x1.cb720dcef90691503cbd1e949d0ap-1L, 0x1.cdf0b555dc3f9c44f8958fac4f12p-1L, + 0x1.d072d4a07897b8d0f22f21a13792p-1L, 0x1.d2f87080d89f18ade123989ea50ep-1L, + 0x1.d5818dcfba48725da05aeb66dff8p-1L, 0x1.d80e316c98397bb84f9d048807a0p-1L, + 0x1.da9e603db3285708c01a5b6d480cp-1L, 0x1.dd321f301b4604b695de3c0630c0p-1L, + 0x1.dfc97337b9b5eb968cac39ed284cp-1L, 0x1.e264614f5a128a12761fa17adc74p-1L, + 0x1.e502ee78b3ff6273d130153992d0p-1L, 0x1.e7a51fbc74c834b548b2832378a4p-1L, + 0x1.ea4afa2a490d9858f73a18f5dab4p-1L, 0x1.ecf482d8e67f08db0312fb949d50p-1L, + 0x1.efa1bee615a27771fd21a92dabb6p-1L, 0x1.f252b376bba974e8696fc3638f24p-1L, + 0x1.f50765b6e4540674f84b762861a6p-1L, 0x1.f7bfdad9cbe138913b4bfe72bd78p-1L, + 0x1.fa7c1819e90d82e90a7e74b26360p-1L, 0x1.fd3c22b8f71f10975ba4b32bd006p-1L, + 0x1.0000000000000000000000000000p+0L, 0x1.0163da9fb33356d84a66ae336e98p+0L, + 0x1.02c9a3e778060ee6f7caca4f7a18p+0L, 0x1.04315e86e7f84bd738f9a20da442p+0L, + 0x1.059b0d31585743ae7c548eb68c6ap+0L, 0x1.0706b29ddf6ddc6dc403a9d87b1ep+0L, + 0x1.0874518759bc808c35f25d942856p+0L, 0x1.09e3ecac6f3834521e060c584d5cp+0L, + 0x1.0b5586cf9890f6298b92b7184200p+0L, 0x1.0cc922b7247f7407b705b893dbdep+0L, + 0x1.0e3ec32d3d1a2020742e4f8af794p+0L, 0x1.0fb66affed31af232091dd8a169ep+0L, + 0x1.11301d0125b50a4ebbf1aed9321cp+0L, 0x1.12abdc06c31cbfb92bad324d6f84p+0L, + 0x1.1429aaea92ddfb34101943b2588ep+0L, 0x1.15a98c8a58e512480d573dd562aep+0L, + 0x1.172b83c7d517adcdf7c8c50eb162p+0L, 0x1.18af9388c8de9bbbf70b9a3c269cp+0L, + 0x1.1a35beb6fcb753cb698f692d2038p+0L, 0x1.1bbe084045cd39ab1e72b442810ep+0L, + 0x1.1d4873168b9aa7805b8028990be8p+0L, 0x1.1ed5022fcd91cb8819ff61121fbep+0L, + 0x1.2063b88628cd63b8eeb0295093f6p+0L, 0x1.21f49917ddc962552fd29294bc20p+0L, + 0x1.2387a6e75623866c1fadb1c159c0p+0L, 0x1.251ce4fb2a63f3582ab7de9e9562p+0L, + 0x1.26b4565e27cdd257a673281d3068p+0L, 0x1.284dfe1f5638096cf15cf03c9fa0p+0L, + 0x1.29e9df51fdee12c25d15f5a25022p+0L, 0x1.2b87fd0dad98ffddea46538fca24p+0L, + 0x1.2d285a6e4030b40091d536d0733ep+0L, 0x1.2ecafa93e2f5611ca0f45d5239a4p+0L, + 0x1.306fe0a31b7152de8d5a463063bep+0L, 0x1.32170fc4cd8313539cf1c3009330p+0L, + 0x1.33c08b26416ff4c9c8610d96680ep+0L, 0x1.356c55f929ff0c94623476373be4p+0L, + 0x1.371a7373aa9caa7145502f45452ap+0L, 0x1.38cae6d05d86585a9cb0d9bed530p+0L, + 0x1.3a7db34e59ff6ea1bc9299e0a1fep+0L, 0x1.3c32dc313a8e484001f228b58cf0p+0L, + 0x1.3dea64c12342235b41223e13d7eep+0L, 0x1.3fa4504ac801ba0bf701aa417b9cp+0L, + 0x1.4160a21f72e29f84325b8f3dbacap+0L, 0x1.431f5d950a896dc704439410b628p+0L, + 0x1.44e086061892d03136f409df0724p+0L, 0x1.46a41ed1d005772512f459229f0ap+0L, + 0x1.486a2b5c13cd013c1a3b69062f26p+0L, 0x1.4a32af0d7d3de672d8bcf46f99b4p+0L, + 0x1.4bfdad5362a271d4397afec42e36p+0L, 0x1.4dcb299fddd0d63b36ef1a9e19dep+0L, + 0x1.4f9b2769d2ca6ad33d8b69aa0b8cp+0L, 0x1.516daa2cf6641c112f52c84d6066p+0L, + 0x1.5342b569d4f81df0a83c49d86bf4p+0L, 0x1.551a4ca5d920ec52ec620243540cp+0L, + 0x1.56f4736b527da66ecb004764e61ep+0L, 0x1.58d12d497c7fd252bc2b7343d554p+0L, + 0x1.5ab07dd48542958c93015191e9a8p+0L, 0x1.5c9268a5946b701c4b1b81697ed4p+0L, + 0x1.5e76f15ad21486e9be4c20399d12p+0L, 0x1.605e1b976dc08b076f592a487066p+0L, + 0x1.6247eb03a5584b1f0fa06fd2d9eap+0L, 0x1.6434634ccc31fc76f8714c4ee122p+0L, + 0x1.66238825522249127d9e29b92ea2p+0L, 0x1.68155d44ca973081c57227b9f69ep+0L, }; static const float eps[TBLSIZE] = { - -0x1.5c50p-101, -0x1.5d00p-106, 0x1.8e90p-102, -0x1.5340p-103, - 0x1.1bd0p-102, -0x1.4600p-105, -0x1.7a40p-104, 0x1.d590p-102, - -0x1.d590p-101, 0x1.b100p-103, -0x1.0d80p-105, 0x1.6b00p-103, - -0x1.9f00p-105, 0x1.c400p-103, 0x1.e120p-103, -0x1.c100p-104, - -0x1.9d20p-103, 0x1.a800p-108, 0x1.4c00p-106, -0x1.9500p-106, - 0x1.6900p-105, -0x1.29d0p-100, 0x1.4c60p-103, 0x1.13a0p-102, - -0x1.5b60p-103, -0x1.1c40p-103, 0x1.db80p-102, 0x1.91a0p-102, - 0x1.dc00p-105, 0x1.44c0p-104, 0x1.9710p-102, 0x1.8760p-103, - -0x1.a720p-103, 0x1.ed20p-103, -0x1.49c0p-102, -0x1.e000p-111, - 0x1.86a0p-103, 0x1.2b40p-103, -0x1.b400p-108, 0x1.1280p-99, - -0x1.02d8p-102, -0x1.e3d0p-103, -0x1.b080p-105, -0x1.f100p-107, - -0x1.16c0p-105, -0x1.1190p-103, -0x1.a7d2p-100, 0x1.3450p-103, - -0x1.67c0p-105, 0x1.4b80p-104, -0x1.c4e0p-103, 0x1.6000p-108, - -0x1.3f60p-105, 0x1.93f0p-104, 0x1.5fe0p-105, 0x1.6f80p-107, - -0x1.7600p-106, 0x1.21e0p-106, -0x1.3a40p-106, -0x1.40c0p-104, - -0x1.9860p-105, -0x1.5d40p-108, -0x1.1d70p-106, 0x1.2760p-105, - 0x0.0000p+0, 0x1.21e2p-104, -0x1.9520p-108, -0x1.5720p-106, - -0x1.4810p-106, -0x1.be00p-109, 0x1.0080p-105, -0x1.5780p-108, - -0x1.d460p-105, -0x1.6140p-105, 0x1.4630p-104, 0x1.ad50p-103, - 0x1.82e0p-105, 0x1.1d3cp-101, 0x1.6100p-107, 0x1.ec30p-104, - 0x1.f200p-108, 0x1.0b40p-103, 0x1.3660p-102, 0x1.d9d0p-103, - -0x1.02d0p-102, 0x1.b070p-103, 0x1.b9c0p-104, -0x1.01c0p-103, - -0x1.dfe0p-103, 0x1.1b60p-104, -0x1.ae94p-101, -0x1.3340p-104, - 0x1.b3d8p-102, -0x1.6e40p-105, -0x1.3670p-103, 0x1.c140p-104, - 0x1.1840p-101, 0x1.1ab0p-102, -0x1.a400p-104, 0x1.1f00p-104, - -0x1.7180p-103, 0x1.4ce0p-102, 0x1.9200p-107, -0x1.54c0p-103, - 0x1.1b80p-105, -0x1.1828p-101, 0x1.5720p-102, -0x1.a060p-100, - 0x1.9160p-102, 0x1.a280p-104, 0x1.3400p-107, 0x1.2b20p-102, - 0x1.7800p-108, 0x1.cfd0p-101, 0x1.2ef0p-102, -0x1.2760p-99, - 0x1.b380p-104, 0x1.0048p-101, -0x1.60b0p-102, 0x1.a1ccp-100, - -0x1.a640p-104, -0x1.08a0p-101, 0x1.7e60p-102, 0x1.22c0p-103, - -0x1.7200p-106, 0x1.f0f0p-102, 0x1.eb4ep-99, 0x1.c6e0p-103, + -0x1.5c50p-101, -0x1.5d00p-106, 0x1.8e90p-102, -0x1.5340p-103, 0x1.1bd0p-102, -0x1.4600p-105, -0x1.7a40p-104, + 0x1.d590p-102, -0x1.d590p-101, 0x1.b100p-103, -0x1.0d80p-105, 0x1.6b00p-103, -0x1.9f00p-105, 0x1.c400p-103, + 0x1.e120p-103, -0x1.c100p-104, -0x1.9d20p-103, 0x1.a800p-108, 0x1.4c00p-106, -0x1.9500p-106, 0x1.6900p-105, + -0x1.29d0p-100, 0x1.4c60p-103, 0x1.13a0p-102, -0x1.5b60p-103, -0x1.1c40p-103, 0x1.db80p-102, 0x1.91a0p-102, + 0x1.dc00p-105, 0x1.44c0p-104, 0x1.9710p-102, 0x1.8760p-103, -0x1.a720p-103, 0x1.ed20p-103, -0x1.49c0p-102, + -0x1.e000p-111, 0x1.86a0p-103, 0x1.2b40p-103, -0x1.b400p-108, 0x1.1280p-99, -0x1.02d8p-102, -0x1.e3d0p-103, + -0x1.b080p-105, -0x1.f100p-107, -0x1.16c0p-105, -0x1.1190p-103, -0x1.a7d2p-100, 0x1.3450p-103, -0x1.67c0p-105, + 0x1.4b80p-104, -0x1.c4e0p-103, 0x1.6000p-108, -0x1.3f60p-105, 0x1.93f0p-104, 0x1.5fe0p-105, 0x1.6f80p-107, + -0x1.7600p-106, 0x1.21e0p-106, -0x1.3a40p-106, -0x1.40c0p-104, -0x1.9860p-105, -0x1.5d40p-108, -0x1.1d70p-106, + 0x1.2760p-105, 0x0.0000p+0, 0x1.21e2p-104, -0x1.9520p-108, -0x1.5720p-106, -0x1.4810p-106, -0x1.be00p-109, + 0x1.0080p-105, -0x1.5780p-108, -0x1.d460p-105, -0x1.6140p-105, 0x1.4630p-104, 0x1.ad50p-103, 0x1.82e0p-105, + 0x1.1d3cp-101, 0x1.6100p-107, 0x1.ec30p-104, 0x1.f200p-108, 0x1.0b40p-103, 0x1.3660p-102, 0x1.d9d0p-103, + -0x1.02d0p-102, 0x1.b070p-103, 0x1.b9c0p-104, -0x1.01c0p-103, -0x1.dfe0p-103, 0x1.1b60p-104, -0x1.ae94p-101, + -0x1.3340p-104, 0x1.b3d8p-102, -0x1.6e40p-105, -0x1.3670p-103, 0x1.c140p-104, 0x1.1840p-101, 0x1.1ab0p-102, + -0x1.a400p-104, 0x1.1f00p-104, -0x1.7180p-103, 0x1.4ce0p-102, 0x1.9200p-107, -0x1.54c0p-103, 0x1.1b80p-105, + -0x1.1828p-101, 0x1.5720p-102, -0x1.a060p-100, 0x1.9160p-102, 0x1.a280p-104, 0x1.3400p-107, 0x1.2b20p-102, + 0x1.7800p-108, 0x1.cfd0p-101, 0x1.2ef0p-102, -0x1.2760p-99, 0x1.b380p-104, 0x1.0048p-101, -0x1.60b0p-102, + 0x1.a1ccp-100, -0x1.a640p-104, -0x1.08a0p-101, 0x1.7e60p-102, 0x1.22c0p-103, -0x1.7200p-106, 0x1.f0f0p-102, + 0x1.eb4ep-99, 0x1.c6e0p-103, }; /* @@ -650,15 +565,7 @@ long double exp2l(long double x) r = t + t * z * (P1 + - z * (P2 + - z * (P3 + - z * (P4 + - z * (P5 + - z * (P6 + - z * (P7 + - z * (P8 + - z * (P9 + - z * P10))))))))); + z * (P2 + z * (P3 + z * (P4 + z * (P5 + z * (P6 + z * (P7 + z * (P8 + z * (P9 + z * P10))))))))); return scalbnl(r, k.i); } diff --git a/lib/libm/expl.c b/lib/libm/expl.c index 5499a3f3..222b43ef 100644 --- a/lib/libm/expl.c +++ b/lib/libm/expl.c @@ -88,8 +88,7 @@ static const long double Q[4] = { 2.2726554820815502876593E-1L, 2.0000000000000000000897E0L, }; -static const long double LN2HI = 6.9314575195312500000000E-1L, - LN2LO = 1.4286068203094172321215E-6L, +static const long double LN2HI = 6.9314575195312500000000E-1L, LN2LO = 1.4286068203094172321215E-6L, LOG2E = 1.4426950408889634073599E0L; long double expl(long double x) diff --git a/lib/libm/expm1.c b/lib/libm/expm1.c index c4022188..6411cb2d 100644 --- a/lib/libm/expm1.c +++ b/lib/libm/expm1.c @@ -111,9 +111,9 @@ static const double o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ - ln2_hi = 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ - ln2_lo = 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ - invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ + ln2_hi = 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ + ln2_lo = 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ + invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = x*x/2: */ Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ diff --git a/lib/libm/expm1l.c b/lib/libm/expm1l.c index e26e19c5..f779aecf 100644 --- a/lib/libm/expm1l.c +++ b/lib/libm/expm1l.c @@ -72,8 +72,7 @@ static const long double P0 = -1.586135578666346600772998894928250240826E4L, Q4 = -4.002027679107076077238836622982900945173E1L, /* Q5 = 1.000000000000000000000000000000000000000E0 */ /* C1 + C2 = ln 2 */ - C1 = 6.93145751953125E-1L, - C2 = 1.428606820309417232121458176568075500134E-6L, + C1 = 6.93145751953125E-1L, C2 = 1.428606820309417232121458176568075500134E-6L, /* ln 2^-65 */ minarg = -4.5054566736396445112120088E1L, /* ln 2^16384 */ diff --git a/lib/libm/fma.c b/lib/libm/fma.c index 77bc7b3c..4d354020 100644 --- a/lib/libm/fma.c +++ b/lib/libm/fma.c @@ -86,8 +86,7 @@ double fma(double x, double y, double z) d -= 64; if (d == 0) { } else if (d < 64) { - rlo = rhi << (64 - d) | rlo >> d | - !!(rlo << (64 - d)); + rlo = rhi << (64 - d) | rlo >> d | !!(rlo << (64 - d)); rhi = rhi >> d; } else { rlo = 1; @@ -162,16 +161,14 @@ double fma(double x, double y, double z) on arch behaviour which can be imitated by a double to float conversion */ - float fltmin = (float)(0x0.ffffff8p-63) * - FLT_MIN * (float)r; + float fltmin = (float)(0x0.ffffff8p-63) * FLT_MIN * (float)r; return DBL_MIN / FLT_MIN * fltmin; } /* one bit is lost when scaled, add another top bit to only round once at conversion if it is inexact */ if (rhi << 53) { - i = (int64_t)(rhi >> 1 | (rhi & 1) | - 1ull << 62); + i = (int64_t)(rhi >> 1 | (rhi & 1) | 1ull << 62); if (sign) i = -i; r = (double)i; diff --git a/lib/libm/fmaf.c b/lib/libm/fmaf.c index fb7508a3..48b6caa5 100644 --- a/lib/libm/fmaf.c +++ b/lib/libm/fmaf.c @@ -63,8 +63,7 @@ float fmaf(float x, float y, float z) fmaf(0x1p-120f, 0x1p-120f, 0x1p-149f) */ #if defined(FE_INEXACT) && defined(FE_UNDERFLOW) - if (e < 0x3ff - 126 && e >= 0x3ff - 149 && - fetestexcept(FE_INEXACT)) { + if (e < 0x3ff - 126 && e >= 0x3ff - 149 && fetestexcept(FE_INEXACT)) { feclearexcept(FE_INEXACT); /* TODO: gcc and clang bug workaround */ volatile float vz = z; diff --git a/lib/libm/fmal.c b/lib/libm/fmal.c index 11097f0e..0bf3221a 100644 --- a/lib/libm/fmal.c +++ b/lib/libm/fmal.c @@ -101,8 +101,7 @@ static inline long double add_adjusted(long double a, long double b) * that the result will be subnormal, and care is taken to ensure that * double rounding does not occur. */ -static inline long double add_and_denormalize(long double a, long double b, - int scale) +static inline long double add_and_denormalize(long double a, long double b, int scale) { struct dd sum; int bits_lost; diff --git a/lib/libm/j0.c b/lib/libm/j0.c index 52d3f483..b466c1ad 100644 --- a/lib/libm/j0.c +++ b/lib/libm/j0.c @@ -63,7 +63,7 @@ static double pzero(double), qzero(double); static const double invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ - tpi = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ + tpi = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ /* common method when |x|>=2 */ static double common(uint32_t ix, double x, int y0) @@ -103,13 +103,13 @@ static double common(uint32_t ix, double x, int y0) /* R0/S0 on [0, 2.00] */ static const double R02 = 1.56249999999999947958e-02, /* 0x3F8FFFFF, 0xFFFFFFFD */ - R03 = -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */ - R04 = 1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */ - R05 = -4.61832688532103189199e-09, /* 0xBE33D5E7, 0x73D63FCE */ - S01 = 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */ - S02 = 1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */ - S03 = 5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */ - S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ + R03 = -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */ + R04 = 1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */ + R05 = -4.61832688532103189199e-09, /* 0xBE33D5E7, 0x73D63FCE */ + S01 = 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */ + S02 = 1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */ + S03 = 5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */ + S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ double j0(double x) { @@ -148,16 +148,16 @@ double j0(double x) static const double u00 = -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */ - u01 = 1.76666452509181115538e-01, /* 0x3FC69D01, 0x9DE9E3FC */ - u02 = -1.38185671945596898896e-02, /* 0xBF8C4CE8, 0xB16CFA97 */ - u03 = 3.47453432093683650238e-04, /* 0x3F36C54D, 0x20B29B6B */ - u04 = -3.81407053724364161125e-06, /* 0xBECFFEA7, 0x73D25CAD */ - u05 = 1.95590137035022920206e-08, /* 0x3E550057, 0x3B4EABD4 */ - u06 = -3.98205194132103398453e-11, /* 0xBDC5E43D, 0x693FB3C8 */ - v01 = 1.27304834834123699328e-02, /* 0x3F8A1270, 0x91C9C71A */ - v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */ - v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ - v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ + u01 = 1.76666452509181115538e-01, /* 0x3FC69D01, 0x9DE9E3FC */ + u02 = -1.38185671945596898896e-02, /* 0xBF8C4CE8, 0xB16CFA97 */ + u03 = 3.47453432093683650238e-04, /* 0x3F36C54D, 0x20B29B6B */ + u04 = -3.81407053724364161125e-06, /* 0xBECFFEA7, 0x73D25CAD */ + u05 = 1.95590137035022920206e-08, /* 0x3E550057, 0x3B4EABD4 */ + u06 = -3.98205194132103398453e-11, /* 0xBDC5E43D, 0x693FB3C8 */ + v01 = 1.27304834834123699328e-02, /* 0x3F8A1270, 0x91C9C71A */ + v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */ + v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ + v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ double y0(double x) { @@ -183,10 +183,7 @@ double y0(double x) if (ix >= 0x3e400000) { /* x >= 2**-27 */ /* large ulp error near the first zero, x ~= 0.89 */ z = x * x; - u = u00 + - z * (u01 + - z * (u02 + - z * (u03 + z * (u04 + z * (u05 + z * u06))))); + u = u00 + z * (u01 + z * (u02 + z * (u03 + z * (u04 + z * (u05 + z * u06))))); v = 1.0 + z * (v01 + z * (v02 + z * (v03 + z * v04))); return u / v + tpi * (j0(x) * log(x)); } @@ -401,8 +398,6 @@ static double qzero(double x) } z = 1.0 / (x * x); r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); - s = 1.0 + - z * (q[0] + - z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); return (-.125 + r / s) / x; } diff --git a/lib/libm/j0f.c b/lib/libm/j0f.c index 46ffc758..476281a7 100644 --- a/lib/libm/j0f.c +++ b/lib/libm/j0f.c @@ -120,10 +120,7 @@ float y0f(float x) if (ix >= 0x39000000) { /* x >= 2**-13 */ /* large ulp error at x ~= 0.89 */ z = x * x; - u = u00 + - z * (u01 + - z * (u02 + - z * (u03 + z * (u04 + z * (u05 + z * u06))))); + u = u00 + z * (u01 + z * (u02 + z * (u03 + z * (u04 + z * (u05 + z * u06))))); v = 1 + z * (v01 + z * (v02 + z * (v03 + z * v04))); return u / v + tpi * (j0f(x) * logf(x)); } @@ -337,8 +334,6 @@ static float qzerof(float x) } z = 1.0f / (x * x); r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); - s = 1.0f + - z * (q[0] + - z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + s = 1.0f + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); return (-.125f + r / s) / x; } diff --git a/lib/libm/j1.c b/lib/libm/j1.c index 839160c4..211c78bf 100644 --- a/lib/libm/j1.c +++ b/lib/libm/j1.c @@ -63,7 +63,7 @@ static double pone(double), qone(double); static const double invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ - tpi = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ + tpi = 6.36619772367581382433e-01; /* 0x3FE45F30, 0x6DC9C883 */ static double common(uint32_t ix, double x, int y1, int sign) { @@ -104,14 +104,14 @@ static double common(uint32_t ix, double x, int y1, int sign) /* R0/S0 on [0,2] */ static const double r00 = -6.25000000000000000000e-02, /* 0xBFB00000, 0x00000000 */ - r01 = 1.40705666955189706048e-03, /* 0x3F570D9F, 0x98472C61 */ - r02 = -1.59955631084035597520e-05, /* 0xBEF0C5C6, 0xBA169668 */ - r03 = 4.96727999609584448412e-08, /* 0x3E6AAAFA, 0x46CA0BD9 */ - s01 = 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */ - s02 = 1.85946785588630915560e-04, /* 0x3F285F56, 0xB9CDF664 */ - s03 = 1.17718464042623683263e-06, /* 0x3EB3BFF8, 0x333F8498 */ - s04 = 5.04636257076217042715e-09, /* 0x3E35AC88, 0xC97DFF2C */ - s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ + r01 = 1.40705666955189706048e-03, /* 0x3F570D9F, 0x98472C61 */ + r02 = -1.59955631084035597520e-05, /* 0xBEF0C5C6, 0xBA169668 */ + r03 = 4.96727999609584448412e-08, /* 0x3E6AAAFA, 0x46CA0BD9 */ + s01 = 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */ + s02 = 1.85946785588630915560e-04, /* 0x3F285F56, 0xB9CDF664 */ + s03 = 1.17718464042623683263e-06, /* 0x3EB3BFF8, 0x333F8498 */ + s04 = 5.04636257076217042715e-09, /* 0x3E35AC88, 0xC97DFF2C */ + s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ double j1(double x) { @@ -172,8 +172,7 @@ double y1(double x) return -tpi / x; z = x * x; u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * U0[4]))); - v = 1 + - z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); + v = 1 + z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); return x * (u / v) + tpi * (j1(x) * log(x) - 1 / x); } @@ -385,8 +384,6 @@ static double qone(double x) } z = 1.0 / (x * x); r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); - s = 1.0 + - z * (q[0] + - z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); return (.375 + r / s) / x; } diff --git a/lib/libm/j1f.c b/lib/libm/j1f.c index 6415ae14..b1bb6226 100644 --- a/lib/libm/j1f.c +++ b/lib/libm/j1f.c @@ -118,8 +118,7 @@ float y1f(float x) return -tpi / x; z = x * x; u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * U0[4]))); - v = 1.0f + - z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); + v = 1.0f + z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); return x * (u / v) + tpi * (j1f(x) * logf(x) - 1.0f / x); } @@ -331,8 +330,6 @@ static float qonef(float x) } z = 1.0f / (x * x); r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5])))); - s = 1.0f + - z * (q[0] + - z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); + s = 1.0f + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); return (.375f + r / s) / x; } diff --git a/lib/libm/lgamma_r.c b/lib/libm/lgamma_r.c index d3f901ae..a6345f11 100644 --- a/lib/libm/lgamma_r.c +++ b/lib/libm/lgamma_r.c @@ -85,20 +85,20 @@ static const double pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ - a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */ - a1 = 3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */ - a2 = 6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */ - a3 = 2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */ - a4 = 7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */ - a5 = 2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */ - a6 = 1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */ - a7 = 5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */ - a8 = 2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */ - a9 = 1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */ - a10 = 2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */ - a11 = 4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */ - tc = 1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */ - tf = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */ + a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */ + a1 = 3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */ + a2 = 6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */ + a3 = 2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */ + a4 = 7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */ + a5 = 2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */ + a6 = 1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */ + a7 = 5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */ + a8 = 2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */ + a9 = 1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */ + a10 = 2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */ + a11 = 4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */ + tc = 1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */ + tf = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */ /* tt = -(tail of tf) */ tt = -3.63867699703950536541e-18, /* 0xBC50C7CA, 0xA48A971F */ t0 = 4.83836122723810047042e-01, /* 0x3FDEF72B, 0xC8EE38A2 */ @@ -242,48 +242,32 @@ double __lgamma_r(double x, int *signgamp) switch (i) { case 0: z = y * y; - p1 = a0 + - z * (a2 + - z * (a4 + z * (a6 + z * (a8 + z * a10)))); - p2 = z * - (a1 + - z * (a3 + - z * (a5 + z * (a7 + z * (a9 + z * a11))))); + p1 = a0 + z * (a2 + z * (a4 + z * (a6 + z * (a8 + z * a10)))); + p2 = z * (a1 + z * (a3 + z * (a5 + z * (a7 + z * (a9 + z * a11))))); p = y * p1 + p2; r += (p - 0.5 * y); break; case 1: z = y * y; w = z * y; - p1 = t0 + - w * (t3 + - w * (t6 + w * (t9 + w * t12))); /* parallel - comp - */ + p1 = t0 + w * (t3 + w * (t6 + w * (t9 + w * t12))); /* parallel + comp + */ p2 = t1 + w * (t4 + w * (t7 + w * (t10 + w * t13))); p3 = t2 + w * (t5 + w * (t8 + w * (t11 + w * t14))); p = z * p1 - (tt - w * (p2 + y * p3)); r += tf + p; break; case 2: - p1 = y * - (u0 + - y * (u1 + - y * (u2 + y * (u3 + y * (u4 + y * u5))))); - p2 = 1.0 + - y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5)))); + p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * u5))))); + p2 = 1.0 + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5)))); r += -0.5 * y + p1 / p2; } } else if (ix < 0x40200000) { /* x < 8.0 */ i = (int)x; y = x - (double)i; - p = y * - (s0 + - y * (s1 + - y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); - q = 1.0 + - y * (r1 + - y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6))))); + p = y * (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); + q = 1.0 + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6))))); r = 0.5 * y + p / q; z = 1.0; /* lgamma(1+s) = log(s) + lgamma(s) */ switch (i) { @@ -304,9 +288,7 @@ double __lgamma_r(double x, int *signgamp) t = log(x); z = 1.0 / x; y = z * z; - w = w0 + - z * (w1 + - y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6))))); + w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6))))); r = (x - 0.5) * (t - 1.0) + w; } else /* 2**58 <= x <= inf */ r = x * (log(x) - 1.0); diff --git a/lib/libm/lgammaf_r.c b/lib/libm/lgammaf_r.c index 7cb25578..4db28bf4 100644 --- a/lib/libm/lgammaf_r.c +++ b/lib/libm/lgammaf_r.c @@ -176,48 +176,32 @@ float __lgammaf_r(float x, int *signgamp) switch (i) { case 0: z = y * y; - p1 = a0 + - z * (a2 + - z * (a4 + z * (a6 + z * (a8 + z * a10)))); - p2 = z * - (a1 + - z * (a3 + - z * (a5 + z * (a7 + z * (a9 + z * a11))))); + p1 = a0 + z * (a2 + z * (a4 + z * (a6 + z * (a8 + z * a10)))); + p2 = z * (a1 + z * (a3 + z * (a5 + z * (a7 + z * (a9 + z * a11))))); p = y * p1 + p2; r += p - 0.5f * y; break; case 1: z = y * y; w = z * y; - p1 = t0 + - w * (t3 + - w * (t6 + w * (t9 + w * t12))); /* parallel - comp - */ + p1 = t0 + w * (t3 + w * (t6 + w * (t9 + w * t12))); /* parallel + comp + */ p2 = t1 + w * (t4 + w * (t7 + w * (t10 + w * t13))); p3 = t2 + w * (t5 + w * (t8 + w * (t11 + w * t14))); p = z * p1 - (tt - w * (p2 + y * p3)); r += (tf + p); break; case 2: - p1 = y * - (u0 + - y * (u1 + - y * (u2 + y * (u3 + y * (u4 + y * u5))))); - p2 = 1.0f + - y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5)))); + p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * u5))))); + p2 = 1.0f + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5)))); r += -0.5f * y + p1 / p2; } } else if (ix < 0x41000000) { /* x < 8.0 */ i = (int)x; y = x - (float)i; - p = y * - (s0 + - y * (s1 + - y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); - q = 1.0f + - y * (r1 + - y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6))))); + p = y * (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); + q = 1.0f + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6))))); r = 0.5f * y + p / q; z = 1.0f; /* lgamma(1+s) = log(s) + lgamma(s) */ switch (i) { @@ -238,9 +222,7 @@ float __lgammaf_r(float x, int *signgamp) t = logf(x); z = 1.0f / x; y = z * z; - w = w0 + - z * (w1 + - y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6))))); + w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6))))); r = (x - 0.5f) * (t - 1.0f) + w; } else /* 2**58 <= x <= inf */ r = x * (logf(x) - 1.0f); diff --git a/lib/libm/lgammal.c b/lib/libm/lgammal.c index 6c137e20..4bb58d09 100644 --- a/lib/libm/lgammal.c +++ b/lib/libm/lgammal.c @@ -104,17 +104,12 @@ static const long double /* lgam(1+x) = 0.5 x + x a(x)/b(x) -0.268402099609375 <= x <= 0 peak relative error 6.6e-22 */ - a0 = -6.343246574721079391729402781192128239938E2L, - a1 = 1.856560238672465796768677717168371401378E3L, - a2 = 2.404733102163746263689288466865843408429E3L, - a3 = 8.804188795790383497379532868917517596322E2L, - a4 = 1.135361354097447729740103745999661157426E2L, - a5 = 3.766956539107615557608581581190400021285E0L, + a0 = -6.343246574721079391729402781192128239938E2L, a1 = 1.856560238672465796768677717168371401378E3L, + a2 = 2.404733102163746263689288466865843408429E3L, a3 = 8.804188795790383497379532868917517596322E2L, + a4 = 1.135361354097447729740103745999661157426E2L, a5 = 3.766956539107615557608581581190400021285E0L, - b0 = 8.214973713960928795704317259806842490498E3L, - b1 = 1.026343508841367384879065363925870888012E4L, - b2 = 4.553337477045763320522762343132210919277E3L, - b3 = 8.506975785032585797446253359230031874803E2L, + b0 = 8.214973713960928795704317259806842490498E3L, b1 = 1.026343508841367384879065363925870888012E4L, + b2 = 4.553337477045763320522762343132210919277E3L, b3 = 8.506975785032585797446253359230031874803E2L, b4 = 6.042447899703295436820744186992189445813E1L, /* b5 = 1.000000000000000000000000000000000000000E0 */ @@ -130,58 +125,40 @@ static const long double -0.230003726999612341262659542325721328468 <= x <= 0.2699962730003876587373404576742786715318 peak relative error 2.1e-21 */ - g0 = 3.645529916721223331888305293534095553827E-18L, - g1 = 5.126654642791082497002594216163574795690E3L, - g2 = 8.828603575854624811911631336122070070327E3L, - g3 = 5.464186426932117031234820886525701595203E3L, - g4 = 1.455427403530884193180776558102868592293E3L, - g5 = 1.541735456969245924860307497029155838446E2L, + g0 = 3.645529916721223331888305293534095553827E-18L, g1 = 5.126654642791082497002594216163574795690E3L, + g2 = 8.828603575854624811911631336122070070327E3L, g3 = 5.464186426932117031234820886525701595203E3L, + g4 = 1.455427403530884193180776558102868592293E3L, g5 = 1.541735456969245924860307497029155838446E2L, g6 = 4.335498275274822298341872707453445815118E0L, - h0 = 1.059584930106085509696730443974495979641E4L, - h1 = 2.147921653490043010629481226937850618860E4L, - h2 = 1.643014770044524804175197151958100656728E4L, - h3 = 5.869021995186925517228323497501767586078E3L, - h4 = 9.764244777714344488787381271643502742293E2L, - h5 = 6.442485441570592541741092969581997002349E1L, + h0 = 1.059584930106085509696730443974495979641E4L, h1 = 2.147921653490043010629481226937850618860E4L, + h2 = 1.643014770044524804175197151958100656728E4L, h3 = 5.869021995186925517228323497501767586078E3L, + h4 = 9.764244777714344488787381271643502742293E2L, h5 = 6.442485441570592541741092969581997002349E1L, /* h6 = 1.000000000000000000000000000000000000000E0 */ /* lgam (x+1) = -0.5 x + x u(x)/v(x) -0.100006103515625 <= x <= 0.231639862060546875 peak relative error 1.3e-21 */ - u0 = -8.886217500092090678492242071879342025627E1L, - u1 = 6.840109978129177639438792958320783599310E2L, - u2 = 2.042626104514127267855588786511809932433E3L, - u3 = 1.911723903442667422201651063009856064275E3L, - u4 = 7.447065275665887457628865263491667767695E2L, - u5 = 1.132256494121790736268471016493103952637E2L, + u0 = -8.886217500092090678492242071879342025627E1L, u1 = 6.840109978129177639438792958320783599310E2L, + u2 = 2.042626104514127267855588786511809932433E3L, u3 = 1.911723903442667422201651063009856064275E3L, + u4 = 7.447065275665887457628865263491667767695E2L, u5 = 1.132256494121790736268471016493103952637E2L, u6 = 4.484398885516614191003094714505960972894E0L, - v0 = 1.150830924194461522996462401210374632929E3L, - v1 = 3.399692260848747447377972081399737098610E3L, - v2 = 3.786631705644460255229513563657226008015E3L, - v3 = 1.966450123004478374557778781564114347876E3L, - v4 = 4.741359068914069299837355438370682773122E2L, - v5 = 4.508989649747184050907206782117647852364E1L, + v0 = 1.150830924194461522996462401210374632929E3L, v1 = 3.399692260848747447377972081399737098610E3L, + v2 = 3.786631705644460255229513563657226008015E3L, v3 = 1.966450123004478374557778781564114347876E3L, + v4 = 4.741359068914069299837355438370682773122E2L, v5 = 4.508989649747184050907206782117647852364E1L, /* v6 = 1.000000000000000000000000000000000000000E0 */ /* lgam (x+2) = .5 x + x s(x)/r(x) 0 <= x <= 1 peak relative error 7.2e-22 */ - s0 = 1.454726263410661942989109455292824853344E6L, - s1 = -3.901428390086348447890408306153378922752E6L, - s2 = -6.573568698209374121847873064292963089438E6L, - s3 = -3.319055881485044417245964508099095984643E6L, - s4 = -7.094891568758439227560184618114707107977E5L, - s5 = -6.263426646464505837422314539808112478303E4L, + s0 = 1.454726263410661942989109455292824853344E6L, s1 = -3.901428390086348447890408306153378922752E6L, + s2 = -6.573568698209374121847873064292963089438E6L, s3 = -3.319055881485044417245964508099095984643E6L, + s4 = -7.094891568758439227560184618114707107977E5L, s5 = -6.263426646464505837422314539808112478303E4L, s6 = -1.684926520999477529949915657519454051529E3L, - r0 = -1.883978160734303518163008696712983134698E7L, - r1 = -2.815206082812062064902202753264922306830E7L, - r2 = -1.600245495251915899081846093343626358398E7L, - r3 = -4.310526301881305003489257052083370058799E6L, - r4 = -5.563807682263923279438235987186184968542E5L, - r5 = -3.027734654434169996032905158145259713083E4L, + r0 = -1.883978160734303518163008696712983134698E7L, r1 = -2.815206082812062064902202753264922306830E7L, + r2 = -1.600245495251915899081846093343626358398E7L, r3 = -4.310526301881305003489257052083370058799E6L, + r4 = -5.563807682263923279438235987186184968542E5L, r5 = -3.027734654434169996032905158145259713083E4L, r6 = -4.501995652861105629217250715790764371267E2L, /* r6 = 1.000000000000000000000000000000000000000E0 */ @@ -189,9 +166,8 @@ static const long double x >= 8 Peak relative error 1.51e-21 w0 = LS2PI - 0.5 */ - w0 = 4.189385332046727417803e-1L, w1 = 8.333333333333331447505E-2L, - w2 = -2.777777777750349603440E-3L, w3 = 7.936507795855070755671E-4L, - w4 = -5.952345851765688514613E-4L, w5 = 8.412723297322498080632E-4L, + w0 = 4.189385332046727417803e-1L, w1 = 8.333333333333331447505E-2L, w2 = -2.777777777750349603440E-3L, + w3 = 7.936507795855070755671E-4L, w4 = -5.952345851765688514613E-4L, w5 = 8.412723297322498080632E-4L, w6 = -1.880801938119376907179E-3L, w7 = 4.885026142432270781165E-3L; /* sin(pi*x) assuming x > 2^-1000, if sin(pi*x)==0 the sign is arbitrary */ @@ -289,48 +265,27 @@ long double __lgammal_r(long double x, int *sg) } switch (i) { case 0: - p1 = a0 + - y * (a1 + y * (a2 + y * (a3 + y * (a4 + y * a5)))); + p1 = a0 + y * (a1 + y * (a2 + y * (a3 + y * (a4 + y * a5)))); p2 = b0 + y * (b1 + y * (b2 + y * (b3 + y * (b4 + y)))); r += 0.5 * y + y * p1 / p2; break; case 1: - p1 = g0 + - y * (g1 + - y * (g2 + - y * (g3 + y * (g4 + y * (g5 + y * g6))))); - p2 = h0 + - y * (h1 + - y * (h2 + - y * (h3 + y * (h4 + y * (h5 + y))))); + p1 = g0 + y * (g1 + y * (g2 + y * (g3 + y * (g4 + y * (g5 + y * g6))))); + p2 = h0 + y * (h1 + y * (h2 + y * (h3 + y * (h4 + y * (h5 + y))))); p = tt + y * p1 / p2; r += (tf + p); break; case 2: - p1 = y * - (u0 + - y * (u1 + - y * (u2 + - y * (u3 + - y * (u4 + y * (u5 + y * u6)))))); - p2 = v0 + - y * (v1 + - y * (v2 + - y * (v3 + y * (v4 + y * (v5 + y))))); + p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * (u5 + y * u6)))))); + p2 = v0 + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * (v5 + y))))); r += (-0.5 * y + p1 / p2); } } else if (ix < 0x40028000) { /* 8.0 */ /* x < 8.0 */ i = (int)x; y = x - (double)i; - p = y * - (s0 + - y * (s1 + - y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); - q = r0 + - y * (r1 + - y * (r2 + - y * (r3 + y * (r4 + y * (r5 + y * (r6 + y)))))); + p = y * (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6)))))); + q = r0 + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * (r6 + y)))))); r = 0.5 * y + p / q; z = 1.0; /* lgamma(1+s) = log(s) + lgamma(s) */ @@ -353,11 +308,7 @@ long double __lgammal_r(long double x, int *sg) t = logl(x); z = 1.0 / x; y = z * z; - w = w0 + - z * (w1 + - y * (w2 + - y * (w3 + - y * (w4 + y * (w5 + y * (w6 + y * w7)))))); + w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * (w6 + y * w7)))))); r = (x - 0.5) * (t - 1.0) + w; } else /* 2**66 <= x <= inf */ r = x * (logl(x) - 1.0); diff --git a/lib/libm/libm.h b/lib/libm/libm.h index 5d37249e..a1a876af 100644 --- a/lib/libm/libm.h +++ b/lib/libm/libm.h @@ -22,8 +22,7 @@ static __inline uint16_t __bswap16(uint16_t __x) static __inline uint32_t __bswap32(uint32_t __x) { - return __x >> 24 | (__x >> 8 & 0xff00) | (__x << 8 & 0xff0000) | - __x << 24; + return __x >> 24 | (__x >> 8 & 0xff00) | (__x << 8 & 0xff0000) | __x << 24; } static __inline uint64_t __bswap64(uint64_t __x) @@ -60,8 +59,7 @@ static __inline uint64_t __bswap64(uint64_t __x) #endif #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 -#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && \ - __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ union ldshape { long double f; struct { @@ -69,8 +67,7 @@ union ldshape { uint16_t se; } i; }; -#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && \ - __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ /* This is the m68k variant of 80-bit long double, and this definition only * works on archs where the alignment requirement of uint64_t is <= 4. */ union ldshape { @@ -81,8 +78,7 @@ union ldshape { uint64_t m; } i; }; -#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && \ - __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ union ldshape { long double f; struct { @@ -96,8 +92,7 @@ union ldshape { uint64_t hi; } i2; }; -#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && \ - __BYTE_ORDER == __BIG_ENDIAN +#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER == __BIG_ENDIAN union ldshape { long double f; struct { @@ -343,7 +338,6 @@ hidden double __math_invalid(double); hidden long double __math_invalidl(long double); #endif -#define weak_alias(old, new) \ - extern __typeof(old)(new) __attribute__((__weak__, __alias__(#old))) +#define weak_alias(old, new) extern __typeof(old)(new) __attribute__((__weak__, __alias__(#old))) #endif diff --git a/lib/libm/log.c b/lib/libm/log.c index 39d23cdd..96d6158e 100644 --- a/lib/libm/log.c +++ b/lib/libm/log.c @@ -45,10 +45,8 @@ double log(double x) r = x - 1.0; r2 = r * r; r3 = r * r2; - y = r3 * - (B[1] + r * B[2] + r2 * B[3] + - r3 * (B[4] + r * B[5] + r2 * B[6] + - r3 * (B[7] + r * B[8] + r2 * B[9] + r3 * B[10]))); + y = r3 * (B[1] + r * B[2] + r2 * B[3] + + r3 * (B[4] + r * B[5] + r2 * B[6] + r3 * (B[7] + r * B[8] + r2 * B[9] + r3 * B[10]))); /* Worst-case error is around 0.507 ULP. */ w = r * 0x1p27; double_t rhi = r + w - w; @@ -107,7 +105,6 @@ double log(double x) 0.5 + 4.13/N + abs-poly-error*2^57 ULP (+ 0.002 ULP without fma) Worst case error if |y| > 0x1p-4: 0.5 + 2.06/N + abs-poly-error*2^56 ULP (+ 0.001 ULP without fma). */ - y = lo + r2 * A[0] + - r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi; + y = lo + r2 * A[0] + r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi; return eval_as_double(y); } diff --git a/lib/libm/log10.c b/lib/libm/log10.c index 729ca4d6..05168293 100644 --- a/lib/libm/log10.c +++ b/lib/libm/log10.c @@ -22,16 +22,16 @@ static const double ivln10hi = 4.34294481878168880939e-01, /* 0x3fdbcb7b, 0x15200000 */ - ivln10lo = 2.50829467116452752298e-11, /* 0x3dbb9438, 0xca9aadd5 */ - log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ - log10_2lo = 3.69423907715893078616e-13, /* 0x3D59FEF3, 0x11F12B36 */ - Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ - Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ - Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ - Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ - Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ - Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ - Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + ivln10lo = 2.50829467116452752298e-11, /* 0x3dbb9438, 0xca9aadd5 */ + log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ + log10_2lo = 3.69423907715893078616e-13, /* 0x3D59FEF3, 0x11F12B36 */ + Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ + Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ + Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ + Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ + Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ + Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ + Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ double log10(double x) { diff --git a/lib/libm/log10f.c b/lib/libm/log10f.c index 4bf26544..b1f8de94 100644 --- a/lib/libm/log10f.c +++ b/lib/libm/log10f.c @@ -76,6 +76,5 @@ float log10f(float x) hi = u.f; lo = f - hi - hfsq + s * (hfsq + R); dk = k; - return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + - hi * ivln10hi + dk * log10_2hi; + return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + hi * ivln10hi + dk * log10_2hi; } diff --git a/lib/libm/log10l.c b/lib/libm/log10l.c index d462308f..6a5025fb 100644 --- a/lib/libm/log10l.c +++ b/lib/libm/log10l.c @@ -73,16 +73,14 @@ long double log10l(long double x) * Theoretical peak relative error = 6.2e-22 */ static const long double P[] = { - 4.9962495940332550844739E-1L, 1.0767376367209449010438E1L, - 7.7671073698359539859595E1L, 2.5620629828144409632571E2L, - 4.2401812743503691187826E2L, 3.4258224542413922935104E2L, + 4.9962495940332550844739E-1L, 1.0767376367209449010438E1L, 7.7671073698359539859595E1L, + 2.5620629828144409632571E2L, 4.2401812743503691187826E2L, 3.4258224542413922935104E2L, 1.0747524399916215149070E2L, }; static const long double Q[] = { /* 1.0000000000000000000000E0,*/ - 2.3479774160285863271658E1L, 1.9444210022760132894510E2L, - 7.7952888181207260646090E2L, 1.6911722418503949084863E3L, - 2.0307734695595183428202E3L, 1.2695660352705325274404E3L, + 2.3479774160285863271658E1L, 1.9444210022760132894510E2L, 7.7952888181207260646090E2L, + 1.6911722418503949084863E3L, 2.0307734695595183428202E3L, 1.2695660352705325274404E3L, 3.2242573199748645407652E2L, }; diff --git a/lib/libm/log1pl.c b/lib/libm/log1pl.c index 972e9467..a64355e3 100644 --- a/lib/libm/log1pl.c +++ b/lib/libm/log1pl.c @@ -64,16 +64,14 @@ long double log1pl(long double x) * Theoretical peak relative error = 2.32e-20 */ static const long double P[] = { - 4.5270000862445199635215E-5L, 4.9854102823193375972212E-1L, - 6.5787325942061044846969E0L, 2.9911919328553073277375E1L, - 6.0949667980987787057556E1L, 5.7112963590585538103336E1L, + 4.5270000862445199635215E-5L, 4.9854102823193375972212E-1L, 6.5787325942061044846969E0L, + 2.9911919328553073277375E1L, 6.0949667980987787057556E1L, 5.7112963590585538103336E1L, 2.0039553499201281259648E1L, }; static const long double Q[] = { /* 1.0000000000000000000000E0,*/ - 1.5062909083469192043167E1L, 8.3047565967967209469434E1L, - 2.2176239823732856465394E2L, 3.0909872225312059774938E2L, - 2.1642788614495947685003E2L, 6.0118660497603843919306E1L, + 1.5062909083469192043167E1L, 8.3047565967967209469434E1L, 2.2176239823732856465394E2L, + 3.0909872225312059774938E2L, 2.1642788614495947685003E2L, 6.0118660497603843919306E1L, }; /* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2), diff --git a/lib/libm/log2.c b/lib/libm/log2.c index e240ac07..e3b9a9c7 100644 --- a/lib/libm/log2.c +++ b/lib/libm/log2.c @@ -60,8 +60,7 @@ double log2(double x) p = r2 * (B[0] + r * B[1]); y = hi + p; lo += hi - y + p; - lo += r4 * (B[2] + r * B[3] + r2 * (B[4] + r * B[5]) + - r4 * (B[6] + r * B[7] + r2 * (B[8] + r * B[9]))); + lo += r4 * (B[2] + r * B[3] + r2 * (B[4] + r * B[5]) + r4 * (B[6] + r * B[7] + r2 * (B[8] + r * B[9]))); y += lo; return eval_as_double(y); } diff --git a/lib/libm/log2l.c b/lib/libm/log2l.c index bec1d02d..c5f39e16 100644 --- a/lib/libm/log2l.c +++ b/lib/libm/log2l.c @@ -68,16 +68,14 @@ long double log2l(long double x) * Theoretical peak relative error = 6.2e-22 */ static const long double P[] = { - 4.9962495940332550844739E-1L, 1.0767376367209449010438E1L, - 7.7671073698359539859595E1L, 2.5620629828144409632571E2L, - 4.2401812743503691187826E2L, 3.4258224542413922935104E2L, + 4.9962495940332550844739E-1L, 1.0767376367209449010438E1L, 7.7671073698359539859595E1L, + 2.5620629828144409632571E2L, 4.2401812743503691187826E2L, 3.4258224542413922935104E2L, 1.0747524399916215149070E2L, }; static const long double Q[] = { /* 1.0000000000000000000000E0,*/ - 2.3479774160285863271658E1L, 1.9444210022760132894510E2L, - 7.7952888181207260646090E2L, 1.6911722418503949084863E3L, - 2.0307734695595183428202E3L, 1.2695660352705325274404E3L, + 2.3479774160285863271658E1L, 1.9444210022760132894510E2L, 7.7952888181207260646090E2L, + 1.6911722418503949084863E3L, 2.0307734695595183428202E3L, 1.2695660352705325274404E3L, 3.2242573199748645407652E2L, }; diff --git a/lib/libm/logl.c b/lib/libm/logl.c index 419f98b6..7a541be2 100644 --- a/lib/libm/logl.c +++ b/lib/libm/logl.c @@ -68,16 +68,14 @@ long double logl(long double x) * Theoretical peak relative error = 2.32e-20 */ static const long double P[] = { - 4.5270000862445199635215E-5L, 4.9854102823193375972212E-1L, - 6.5787325942061044846969E0L, 2.9911919328553073277375E1L, - 6.0949667980987787057556E1L, 5.7112963590585538103336E1L, + 4.5270000862445199635215E-5L, 4.9854102823193375972212E-1L, 6.5787325942061044846969E0L, + 2.9911919328553073277375E1L, 6.0949667980987787057556E1L, 5.7112963590585538103336E1L, 2.0039553499201281259648E1L, }; static const long double Q[] = { /* 1.0000000000000000000000E0,*/ - 1.5062909083469192043167E1L, 8.3047565967967209469434E1L, - 2.2176239823732856465394E2L, 3.0909872225312059774938E2L, - 2.1642788614495947685003E2L, 6.0118660497603843919306E1L, + 1.5062909083469192043167E1L, 8.3047565967967209469434E1L, 2.2176239823732856465394E2L, + 3.0909872225312059774938E2L, 2.1642788614495947685003E2L, 6.0118660497603843919306E1L, }; /* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2), diff --git a/lib/libm/pow.c b/lib/libm/pow.c index f4f84703..f91da903 100644 --- a/lib/libm/pow.c +++ b/lib/libm/pow.c @@ -94,8 +94,7 @@ static inline double_t log_inline(uint64_t ix, double_t *tail) lo4 = t2 - hi + arhi2; #endif /* p = log1p(r) - r - A[0]*r*r. */ - p = (ar3 * (A[1] + r * A[2] + - ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r * A[6])))); + p = (ar3 * (A[1] + r * A[2] + ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r * A[6])))); lo = lo1 + lo2 + lo3 + lo4 + p; y = hi + lo; *tail = hi - y + lo; @@ -176,8 +175,7 @@ static inline double exp_inline(double_t x, double_t xtail, uint32_t sign_bias) double_t kd, z, r, r2, scale, tail, tmp; abstop = top12(x) & 0x7ff; - if (predict_false(abstop - top12(0x1p-54) >= - top12(512.0) - top12(0x1p-54))) { + if (predict_false(abstop - top12(0x1p-54) >= top12(512.0) - top12(0x1p-54))) { if (abstop - top12(0x1p-54) >= 0x80000000) { /* Avoid spurious underflow for tiny x. */ /* Note: 0 is common input. */ @@ -267,8 +265,7 @@ double pow(double x, double y) iy = asuint64(y); topx = top12(x); topy = top12(y); - if (predict_false(topx - 0x001 >= 0x7ff - 0x001 || - (topy & 0x7ff) - 0x3be >= 0x43e - 0x3be)) { + if (predict_false(topx - 0x001 >= 0x7ff - 0x001 || (topy & 0x7ff) - 0x3be >= 0x43e - 0x3be)) { /* Note: if |y| > 1075 * ln2 * 2^53 ~= 0x1.749p62 then pow(x,y) = inf/0 and if |y| < 2^-54 / 1075 ~= 0x1.e7b6p-65 then pow(x,y) = +-1. */ @@ -279,8 +276,7 @@ double pow(double x, double y) return issignaling_inline(x) ? x + y : 1.0; if (ix == asuint64(1.0)) return issignaling_inline(y) ? x + y : 1.0; - if (2 * ix > 2 * asuint64(INFINITY) || - 2 * iy > 2 * asuint64(INFINITY)) + if (2 * ix > 2 * asuint64(INFINITY) || 2 * iy > 2 * asuint64(INFINITY)) return x + y; if (2 * ix == 2 * asuint64(1.0)) return 1.0; @@ -316,13 +312,10 @@ double pow(double x, double y) if ((topy & 0x7ff) < 0x3be) { /* |y| < 2^-65, x^y ~= 1 + y*log(x). */ if (WANT_ROUNDING) - return ix > asuint64(1.0) ? 1.0 + y : - 1.0 - y; + return ix > asuint64(1.0) ? 1.0 + y : 1.0 - y; return 1.0; } - return (ix > asuint64(1.0)) == (topy < 0x800) ? - __math_oflow(0) : - __math_uflow(0); + return (ix > asuint64(1.0)) == (topy < 0x800) ? __math_oflow(0) : __math_uflow(0); } if (topx == 0) { /* Normalize subnormal x so exponent becomes negative. diff --git a/lib/libm/powf.c b/lib/libm/powf.c index f93a5877..424cbd51 100644 --- a/lib/libm/powf.c +++ b/lib/libm/powf.c @@ -130,8 +130,7 @@ float powf(float x, float y) ix = asuint(x); iy = asuint(y); - if (predict_false(ix - 0x00800000 >= 0x7f800000 - 0x00800000 || - zeroinfnan(iy))) { + if (predict_false(ix - 0x00800000 >= 0x7f800000 - 0x00800000 || zeroinfnan(iy))) { /* Either (x < 0x1p-126 or inf or nan) or (y is 0 or inf or * nan). */ if (predict_false(zeroinfnan(iy))) { @@ -139,8 +138,7 @@ float powf(float x, float y) return issignalingf_inline(x) ? x + y : 1.0f; if (ix == 0x3f800000) return issignalingf_inline(y) ? x + y : 1.0f; - if (2 * ix > 2u * 0x7f800000 || - 2 * iy > 2u * 0x7f800000) + if (2 * ix > 2u * 0x7f800000 || 2 * iy > 2u * 0x7f800000) return x + y; if (2 * ix == 2 * 0x3f800000) return 1.0f; @@ -178,8 +176,7 @@ float powf(float x, float y) } double_t logx = log2_inline(ix); double_t ylogx = y * logx; /* cannot overflow, y is single prec. */ - if (predict_false((asuint64(ylogx) >> 47 & 0xffff) >= - asuint64(126.0 * POWF_SCALE) >> 47)) { + if (predict_false((asuint64(ylogx) >> 47 & 0xffff) >= asuint64(126.0 * POWF_SCALE) >> 47)) { /* |y*log(x)| >= 126. */ if (ylogx > 0x1.fffffffd1d571p+6 * POWF_SCALE) return __math_oflowf(sign_bias); diff --git a/lib/libm/powl.c b/lib/libm/powl.c index 26a9b5ae..d47e6307 100644 --- a/lib/libm/powl.c +++ b/lib/libm/powl.c @@ -93,43 +93,33 @@ static const long double Q[] = { * If i is even, A[i] + B[i/2] gives additional accuracy. */ static const long double A[33] = { - 1.0000000000000000000000E0L, 9.7857206208770013448287E-1L, - 9.5760328069857364691013E-1L, 9.3708381705514995065011E-1L, - 9.1700404320467123175367E-1L, 8.9735453750155359320742E-1L, - 8.7812608018664974155474E-1L, 8.5930964906123895780165E-1L, - 8.4089641525371454301892E-1L, 8.2287773907698242225554E-1L, - 8.0524516597462715409607E-1L, 7.8799042255394324325455E-1L, - 7.7110541270397041179298E-1L, 7.5458221379671136985669E-1L, - 7.3841307296974965571198E-1L, 7.2259040348852331001267E-1L, - 7.0710678118654752438189E-1L, 6.9195494098191597746178E-1L, - 6.7712777346844636413344E-1L, 6.6261832157987064729696E-1L, - 6.4841977732550483296079E-1L, 6.3452547859586661129850E-1L, - 6.2092890603674202431705E-1L, 6.0762367999023443907803E-1L, - 5.9460355750136053334378E-1L, 5.8186242938878875689693E-1L, - 5.6939431737834582684856E-1L, 5.5719337129794626814472E-1L, - 5.4525386633262882960438E-1L, 5.3357020033841180906486E-1L, - 5.2213689121370692017331E-1L, 5.1094857432705833910408E-1L, - 5.0000000000000000000000E-1L, + 1.0000000000000000000000E0L, 9.7857206208770013448287E-1L, 9.5760328069857364691013E-1L, + 9.3708381705514995065011E-1L, 9.1700404320467123175367E-1L, 8.9735453750155359320742E-1L, + 8.7812608018664974155474E-1L, 8.5930964906123895780165E-1L, 8.4089641525371454301892E-1L, + 8.2287773907698242225554E-1L, 8.0524516597462715409607E-1L, 7.8799042255394324325455E-1L, + 7.7110541270397041179298E-1L, 7.5458221379671136985669E-1L, 7.3841307296974965571198E-1L, + 7.2259040348852331001267E-1L, 7.0710678118654752438189E-1L, 6.9195494098191597746178E-1L, + 6.7712777346844636413344E-1L, 6.6261832157987064729696E-1L, 6.4841977732550483296079E-1L, + 6.3452547859586661129850E-1L, 6.2092890603674202431705E-1L, 6.0762367999023443907803E-1L, + 5.9460355750136053334378E-1L, 5.8186242938878875689693E-1L, 5.6939431737834582684856E-1L, + 5.5719337129794626814472E-1L, 5.4525386633262882960438E-1L, 5.3357020033841180906486E-1L, + 5.2213689121370692017331E-1L, 5.1094857432705833910408E-1L, 5.0000000000000000000000E-1L, }; static const long double B[17] = { - 0.0000000000000000000000E0L, 2.6176170809902549338711E-20L, - -1.0126791927256478897086E-20L, 1.3438228172316276937655E-21L, - 1.2207982955417546912101E-20L, -6.3084814358060867200133E-21L, - 1.3164426894366316434230E-20L, -1.8527916071632873716786E-20L, - 1.8950325588932570796551E-20L, 1.5564775779538780478155E-20L, - 6.0859793637556860974380E-21L, -2.0208749253662532228949E-20L, - 1.4966292219224761844552E-20L, 3.3540909728056476875639E-21L, - -8.6987564101742849540743E-22L, -1.2327176863327626135542E-20L, - 0.0000000000000000000000E0L, + 0.0000000000000000000000E0L, 2.6176170809902549338711E-20L, -1.0126791927256478897086E-20L, + 1.3438228172316276937655E-21L, 1.2207982955417546912101E-20L, -6.3084814358060867200133E-21L, + 1.3164426894366316434230E-20L, -1.8527916071632873716786E-20L, 1.8950325588932570796551E-20L, + 1.5564775779538780478155E-20L, 6.0859793637556860974380E-21L, -2.0208749253662532228949E-20L, + 1.4966292219224761844552E-20L, 3.3540909728056476875639E-21L, -8.6987564101742849540743E-22L, + -1.2327176863327626135542E-20L, 0.0000000000000000000000E0L, }; /* 2^x = 1 + x P(x), * on the interval -1/32 <= x <= 0 */ static const long double R[] = { - 1.5089970579127659901157E-5L, 1.5402715328927013076125E-4L, - 1.3333556028915671091390E-3L, 9.6181291046036762031786E-3L, - 5.5504108664798463044015E-2L, 2.4022650695910062854352E-1L, + 1.5089970579127659901157E-5L, 1.5402715328927013076125E-4L, 1.3333556028915671091390E-3L, + 9.6181291046036762031786E-3L, 5.5504108664798463044015E-2L, 2.4022650695910062854352E-1L, 6.9314718055994530931447E-1L, }; diff --git a/lib/libm/remquo.c b/lib/libm/remquo.c index 8e27914f..adddd850 100644 --- a/lib/libm/remquo.c +++ b/lib/libm/remquo.c @@ -78,8 +78,7 @@ end: x = ux.f; if (sy) y = -y; - if (ex == ey || - (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { + if (ex == ey || (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { x -= y; q++; } diff --git a/lib/libm/remquof.c b/lib/libm/remquof.c index c50b1615..7963b349 100644 --- a/lib/libm/remquof.c +++ b/lib/libm/remquof.c @@ -78,8 +78,7 @@ end: x = ux.f; if (sy) y = -y; - if (ex == ey || - (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { + if (ex == ey || (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { x -= y; q++; } diff --git a/lib/libm/remquol.c b/lib/libm/remquol.c index 1a58f2d3..906bb58d 100644 --- a/lib/libm/remquol.c +++ b/lib/libm/remquol.c @@ -103,8 +103,7 @@ long double remquol(long double x, long double y, int *quo) if ((xhi | xlo) == 0) ex = -120; else - for (; xhi >> 48 == 0; - xhi = 2 * xhi + (xlo >> 63), xlo = 2 * xlo, ex--) + for (; xhi >> 48 == 0; xhi = 2 * xhi + (xlo >> 63), xlo = 2 * xlo, ex--) ; ux.i2.hi = xhi; ux.i2.lo = xlo; @@ -120,8 +119,7 @@ long double remquol(long double x, long double y, int *quo) x = ux.f; if (sy) y = -y; - if (ex == ey || - (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { + if (ex == ey || (ex + 1 == ey && (2 * x > y || (2 * x == y && q % 2)))) { x -= y; q++; } diff --git a/lib/libm/sin.c b/lib/libm/sin.c index 4eff1001..24be2599 100644 --- a/lib/libm/sin.c +++ b/lib/libm/sin.c @@ -59,8 +59,7 @@ double sin(double x) if (ix <= 0x3fe921fb) { if (ix < 0x3e500000) { /* |x| < 2**-26 */ /* raise inexact if x != 0 and underflow if subnormal*/ - FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : x + 0x1p120f); return x; } return __sin(x, 0.0, 0); diff --git a/lib/libm/sincos.c b/lib/libm/sincos.c index c7300d7b..6ffbe06e 100644 --- a/lib/libm/sincos.c +++ b/lib/libm/sincos.c @@ -29,8 +29,7 @@ void sincos(double x, double *sin, double *cos) /* if |x| < 2**-27 * sqrt(2) */ if (ix < 0x3e46a09e) { /* raise inexact if x!=0 and underflow if subnormal */ - FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : x + 0x1p120f); *sin = x; *cos = 1.0; return; diff --git a/lib/libm/sincosf.c b/lib/libm/sincosf.c index ea4bc567..089c4aa8 100644 --- a/lib/libm/sincosf.c +++ b/lib/libm/sincosf.c @@ -42,8 +42,7 @@ void sincosf(float x, float *sin, float *cos) /* |x| < 2**-12 */ if (ix < 0x39800000) { /* raise inexact if x!=0 and underflow if subnormal */ - FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : x + 0x1p120f); *sin = x; *cos = 1.0f; return; diff --git a/lib/libm/sinf.c b/lib/libm/sinf.c index 28513976..e1a3209d 100644 --- a/lib/libm/sinf.c +++ b/lib/libm/sinf.c @@ -38,8 +38,7 @@ float sinf(float x) if (ix <= 0x3f490fda) { /* |x| ~<= pi/4 */ if (ix < 0x39800000) { /* |x| < 2**-12 */ /* raise inexact if x!=0 and underflow if subnormal */ - FORCE_EVAL(ix < 0x00800000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00800000 ? x / 0x1p120f : x + 0x1p120f); return x; } return __sindf(x); diff --git a/lib/libm/sinhl.c b/lib/libm/sinhl.c index fa35e870..0cfdeecc 100644 --- a/lib/libm/sinhl.c +++ b/lib/libm/sinhl.c @@ -23,8 +23,7 @@ long double sinhl(long double x) absx = u.f; /* |x| < log(LDBL_MAX) */ - if (ex < 0x3fff + 13 || - (ex == 0x3fff + 13 && u.i.m >> 32 < 0xb17217f7)) { + if (ex < 0x3fff + 13 || (ex == 0x3fff + 13 && u.i.m >> 32 < 0xb17217f7)) { t = expm1l(absx); if (ex < 0x3fff) { if (ex < 0x3fff - 32) diff --git a/lib/libm/sqrt_data.c b/lib/libm/sqrt_data.c index 4dc20a17..10a091af 100644 --- a/lib/libm/sqrt_data.c +++ b/lib/libm/sqrt_data.c @@ -3,19 +3,14 @@ #include // for uint16_t const uint16_t __rsqrt_tab[128] = { - 0xb451, 0xb2f0, 0xb196, 0xb044, 0xaef9, 0xadb6, 0xac79, 0xab43, 0xaa14, - 0xa8eb, 0xa7c8, 0xa6aa, 0xa592, 0xa480, 0xa373, 0xa26b, 0xa168, 0xa06a, - 0x9f70, 0x9e7b, 0x9d8a, 0x9c9d, 0x9bb5, 0x9ad1, 0x99f0, 0x9913, 0x983a, - 0x9765, 0x9693, 0x95c4, 0x94f8, 0x9430, 0x936b, 0x92a9, 0x91ea, 0x912e, - 0x9075, 0x8fbe, 0x8f0a, 0x8e59, 0x8daa, 0x8cfe, 0x8c54, 0x8bac, 0x8b07, - 0x8a64, 0x89c4, 0x8925, 0x8889, 0x87ee, 0x8756, 0x86c0, 0x862b, 0x8599, - 0x8508, 0x8479, 0x83ec, 0x8361, 0x82d8, 0x8250, 0x81c9, 0x8145, 0x80c2, - 0x8040, 0xff02, 0xfd0e, 0xfb25, 0xf947, 0xf773, 0xf5aa, 0xf3ea, 0xf234, - 0xf087, 0xeee3, 0xed47, 0xebb3, 0xea27, 0xe8a3, 0xe727, 0xe5b2, 0xe443, - 0xe2dc, 0xe17a, 0xe020, 0xdecb, 0xdd7d, 0xdc34, 0xdaf1, 0xd9b3, 0xd87b, - 0xd748, 0xd61a, 0xd4f1, 0xd3cd, 0xd2ad, 0xd192, 0xd07b, 0xcf69, 0xce5b, - 0xcd51, 0xcc4a, 0xcb48, 0xca4a, 0xc94f, 0xc858, 0xc764, 0xc674, 0xc587, - 0xc49d, 0xc3b7, 0xc2d4, 0xc1f4, 0xc116, 0xc03c, 0xbf65, 0xbe90, 0xbdbe, - 0xbcef, 0xbc23, 0xbb59, 0xba91, 0xb9cc, 0xb90a, 0xb84a, 0xb78c, 0xb6d0, - 0xb617, 0xb560, + 0xb451, 0xb2f0, 0xb196, 0xb044, 0xaef9, 0xadb6, 0xac79, 0xab43, 0xaa14, 0xa8eb, 0xa7c8, 0xa6aa, 0xa592, + 0xa480, 0xa373, 0xa26b, 0xa168, 0xa06a, 0x9f70, 0x9e7b, 0x9d8a, 0x9c9d, 0x9bb5, 0x9ad1, 0x99f0, 0x9913, + 0x983a, 0x9765, 0x9693, 0x95c4, 0x94f8, 0x9430, 0x936b, 0x92a9, 0x91ea, 0x912e, 0x9075, 0x8fbe, 0x8f0a, + 0x8e59, 0x8daa, 0x8cfe, 0x8c54, 0x8bac, 0x8b07, 0x8a64, 0x89c4, 0x8925, 0x8889, 0x87ee, 0x8756, 0x86c0, + 0x862b, 0x8599, 0x8508, 0x8479, 0x83ec, 0x8361, 0x82d8, 0x8250, 0x81c9, 0x8145, 0x80c2, 0x8040, 0xff02, + 0xfd0e, 0xfb25, 0xf947, 0xf773, 0xf5aa, 0xf3ea, 0xf234, 0xf087, 0xeee3, 0xed47, 0xebb3, 0xea27, 0xe8a3, + 0xe727, 0xe5b2, 0xe443, 0xe2dc, 0xe17a, 0xe020, 0xdecb, 0xdd7d, 0xdc34, 0xdaf1, 0xd9b3, 0xd87b, 0xd748, + 0xd61a, 0xd4f1, 0xd3cd, 0xd2ad, 0xd192, 0xd07b, 0xcf69, 0xce5b, 0xcd51, 0xcc4a, 0xcb48, 0xca4a, 0xc94f, + 0xc858, 0xc764, 0xc674, 0xc587, 0xc49d, 0xc3b7, 0xc2d4, 0xc1f4, 0xc116, 0xc03c, 0xbf65, 0xbe90, 0xbdbe, + 0xbcef, 0xbc23, 0xbb59, 0xba91, 0xb9cc, 0xb90a, 0xb84a, 0xb78c, 0xb6d0, 0xb617, 0xb560, }; diff --git a/lib/libm/sqrtl.c b/lib/libm/sqrtl.c index d71d455e..7afc601c 100644 --- a/lib/libm/sqrtl.c +++ b/lib/libm/sqrtl.c @@ -150,8 +150,7 @@ static inline u128 mul64_128(uint64_t a, uint64_t b) uint64_t alo = a & 0xffffffff; uint64_t bhi = b >> 32; uint64_t blo = b & 0xffffffff; - uint64_t lo1 = ((ahi * blo) & 0xffffffff) + ((alo * bhi) & 0xffffffff) + - (alo * blo >> 32); + uint64_t lo1 = ((ahi * blo) & 0xffffffff) + ((alo * bhi) & 0xffffffff) + (alo * blo >> 32); uint64_t lo2 = (alo * blo) & 0xffffffff; r.hi = ahi * bhi + (ahi * blo >> 32) + (alo * bhi >> 32) + (lo1 >> 32); r.lo = (lo1 << 32) + lo2; @@ -243,8 +242,7 @@ long double sqrtl(long double x) long double y; u128 d2, d1, d0; - d0 = sub128(lsh(ml, 2 * (LDBL_MANT_DIG - 1) - 126), - mul128_tail(sl, sl)); + d0 = sub128(lsh(ml, 2 * (LDBL_MANT_DIG - 1) - 126), mul128_tail(sl, sl)); d1 = sub128(sl, d0); d2 = add128(add64(sl, 1), d1); sl = add64(sl, d1.hi >> 63); diff --git a/lib/libm/tan.c b/lib/libm/tan.c index 5f37becc..aa3015b5 100644 --- a/lib/libm/tan.c +++ b/lib/libm/tan.c @@ -57,8 +57,7 @@ double tan(double x) if (ix <= 0x3fe921fb) { if (ix < 0x3e400000) { /* |x| < 2**-27 */ /* raise inexact if x!=0 and underflow if subnormal */ - FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00100000 ? x / 0x1p120f : x + 0x1p120f); return x; } return __tan(x, 0.0, 0); diff --git a/lib/libm/tanf.c b/lib/libm/tanf.c index f005908f..9de9ee57 100644 --- a/lib/libm/tanf.c +++ b/lib/libm/tanf.c @@ -39,8 +39,7 @@ float tanf(float x) if (ix <= 0x3f490fda) { /* |x| ~<= pi/4 */ if (ix < 0x39800000) { /* |x| < 2**-12 */ /* raise inexact if x!=0 and underflow if subnormal */ - FORCE_EVAL(ix < 0x00800000 ? x / 0x1p120f : - x + 0x1p120f); + FORCE_EVAL(ix < 0x00800000 ? x / 0x1p120f : x + 0x1p120f); return x; } return __tandf(x, 0); diff --git a/lib/libm/tgamma.c b/lib/libm/tgamma.c index 69759fd8..b72ede42 100644 --- a/lib/libm/tgamma.c +++ b/lib/libm/tgamma.c @@ -62,23 +62,16 @@ static double sinpi(double x) // static const double g = 6.024680040776729583740234375; static const double gmhalf = 5.524680040776729583740234375; static const double Snum[N + 1] = { - 23531376880.410759688572007674451636754734846804940, - 42919803642.649098768957899047001988850926355848959, - 35711959237.355668049440185451547166705960488635843, - 17921034426.037209699919755754458931112671403265390, - 6039542586.3520280050642916443072979210699388420708, - 1439720407.3117216736632230727949123939715485786772, - 248874557.86205415651146038641322942321632125127801, - 31426415.585400194380614231628318205362874684987640, - 2876370.6289353724412254090516208496135991145378768, - 186056.26539522349504029498971604569928220784236328, - 8071.6720023658162106380029022722506138218516325024, - 210.82427775157934587250973392071336271166969580291, + 23531376880.410759688572007674451636754734846804940, 42919803642.649098768957899047001988850926355848959, + 35711959237.355668049440185451547166705960488635843, 17921034426.037209699919755754458931112671403265390, + 6039542586.3520280050642916443072979210699388420708, 1439720407.3117216736632230727949123939715485786772, + 248874557.86205415651146038641322942321632125127801, 31426415.585400194380614231628318205362874684987640, + 2876370.6289353724412254090516208496135991145378768, 186056.26539522349504029498971604569928220784236328, + 8071.6720023658162106380029022722506138218516325024, 210.82427775157934587250973392071336271166969580291, 2.5066282746310002701649081771338373386264310793408, }; static const double Sden[N + 1] = { - 0, 39916800, 120543840, 150917976, 105258076, 45995730, 13339535, - 2637558, 357423, 32670, 1925, 66, 1, + 0, 39916800, 120543840, 150917976, 105258076, 45995730, 13339535, 2637558, 357423, 32670, 1925, 66, 1, }; /* n! for small integer n */ static const double fact[] = { diff --git a/lib/libm/tgammal.c b/lib/libm/tgammal.c index 54270091..ead0f69d 100644 --- a/lib/libm/tgammal.c +++ b/lib/libm/tgammal.c @@ -68,17 +68,14 @@ Peak error = 1.83e-20 Relative error spread = 8.4e-23 */ static const long double P[8] = { - 4.212760487471622013093E-5L, 4.542931960608009155600E-4L, - 4.092666828394035500949E-3L, 2.385363243461108252554E-2L, - 1.113062816019361559013E-1L, 3.629515436640239168939E-1L, + 4.212760487471622013093E-5L, 4.542931960608009155600E-4L, 4.092666828394035500949E-3L, + 2.385363243461108252554E-2L, 1.113062816019361559013E-1L, 3.629515436640239168939E-1L, 8.378004301573126728826E-1L, 1.000000000000000000009E0L, }; static const long double Q[9] = { - -1.397148517476170440917E-5L, 2.346584059160635244282E-4L, - -1.237799246653152231188E-3L, -7.955933682494738320586E-4L, - 2.773706565840072979165E-2L, -4.633887671244534213831E-2L, - -2.243510905670329164562E-1L, 4.150160950588455434583E-1L, - 9.999999999999999999908E-1L, + -1.397148517476170440917E-5L, 2.346584059160635244282E-4L, -1.237799246653152231188E-3L, + -7.955933682494738320586E-4L, 2.773706565840072979165E-2L, -4.633887671244534213831E-2L, + -2.243510905670329164562E-1L, 4.150160950588455434583E-1L, 9.999999999999999999908E-1L, }; /* @@ -117,11 +114,9 @@ Peak error = 9.44e-21 Relative error spread = 8.8e-4 */ static const long double STIR[9] = { - 7.147391378143610789273E-4L, -2.363848809501759061727E-5L, - -5.950237554056330156018E-4L, 6.989332260623193171870E-5L, - 7.840334842744753003862E-4L, -2.294719747873185405699E-4L, - -2.681327161876304418288E-3L, 3.472222222230075327854E-3L, - 8.333333333333331800504E-2L, + 7.147391378143610789273E-4L, -2.363848809501759061727E-5L, -5.950237554056330156018E-4L, + 6.989332260623193171870E-5L, 7.840334842744753003862E-4L, -2.294719747873185405699E-4L, + -2.681327161876304418288E-3L, 3.472222222230075327854E-3L, 8.333333333333331800504E-2L, }; #define MAXSTIR 1024.0L @@ -133,11 +128,9 @@ static const long double SQTPI = 2.50662827463100050242E0L; * Peak relative error 4.2e-23 */ static const long double S[9] = { - -1.193945051381510095614E-3L, 7.220599478036909672331E-3L, - -9.622023360406271645744E-3L, -4.219773360705915470089E-2L, - 1.665386113720805206758E-1L, -4.200263503403344054473E-2L, - -6.558780715202540684668E-1L, 5.772156649015328608253E-1L, - 1.000000000000000000000E0L, + -1.193945051381510095614E-3L, 7.220599478036909672331E-3L, -9.622023360406271645744E-3L, + -4.219773360705915470089E-2L, 1.665386113720805206758E-1L, -4.200263503403344054473E-2L, + -6.558780715202540684668E-1L, 5.772156649015328608253E-1L, 1.000000000000000000000E0L, }; /* 1/tgamma(-x) = z P(z) @@ -147,11 +140,9 @@ static const long double S[9] = { * Relative error spread = 2.5e-24 */ static const long double SN[9] = { - 1.133374167243894382010E-3L, 7.220837261893170325704E-3L, - 9.621911155035976733706E-3L, -4.219773343731191721664E-2L, - -1.665386113944413519335E-1L, -4.200263503402112910504E-2L, - 6.558780715202536547116E-1L, 5.772156649015328608727E-1L, - -1.000000000000000000000E0L, + 1.133374167243894382010E-3L, 7.220837261893170325704E-3L, 9.621911155035976733706E-3L, + -4.219773343731191721664E-2L, -1.665386113944413519335E-1L, -4.200263503402112910504E-2L, + 6.558780715202536547116E-1L, 5.772156649015328608727E-1L, -1.000000000000000000000E0L, }; static const long double PIL = 3.1415926535897932384626L; @@ -166,10 +157,7 @@ static long double stirf(long double x) /* For large x, use rational coefficients from the analytical expansion. */ if (x > 1024.0) - w = (((((6.97281375836585777429E-5L * w + - 7.84039221720066627474E-4L) * - w - - 2.29472093621399176955E-4L) * + w = (((((6.97281375836585777429E-5L * w + 7.84039221720066627474E-4L) * w - 2.29472093621399176955E-4L) * w - 2.68132716049382716049E-3L) * w + -- cgit v1.2.3