[ 0s] on X86_64, no limit mem size [ 0s] Using BUILD_ROOT=/var/cache/build/root_1 [ 0s] Using BUILD_ARCH=armv7l:armv6l:armv5tel [ 0s] [ 0s] [ 0s] obspw03 started "build _service:gbs:lightweight-web-engine.spec" at Fri May 15 09:16:00 UTC 2020. [ 0s] [ 0s] Building lightweight-web-engine for project 'Tizen:Unified' repository 'standard' arch 'armv7l' srcmd5 'd8b4b5b250770a761f1eedf815b376d5' [ 0s] [ 0s] processing recipe /var/cache/build/root_1/.build-srcdir/_service:gbs:lightweight-web-engine.spec ... [ 0s] running changelog2spec --target rpm --file /var/cache/build/root_1/.build-srcdir/_service:gbs:lightweight-web-engine.spec [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --clean --rpmlist /var/cache/build/root_1/.build.rpmlist /var/cache/build/root_1/.build-srcdir/_service:gbs:lightweight-web-engine.spec build rpmlint-Factory ... [ 1s] copying qemu [ 1s] /usr/bin/qemu-arm-binfmt /usr/bin/qemu-arm-static /usr/bin/qemu-arm64-binfmt /usr/bin/qemu-arm64-static /usr/sbin/qemu-binfmt-conf.sh [ 1s] [ 1s] registering binfmt handlers for cross build [ 1s] write: Invalid argument [ 1s] /proc/sys/fs/binfmt_misc/register: write failed [ 1s] /var/run/obs/worker/1/build/qemu-reg: line 8: write failed. Content: :aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-arm64-binfmt:P [ 1s] [ 1s] /.build/qemu-reg: No such file or directory [ 1s] /.build/qemu-reg: failed. Trying alternate binfmt file [ 1s] /usr/lib/build/qemu-reg: No such file or directory [ 1s] /usr/lib/build/qemu-reg: binfmt registration failed [ 1s] cycle: libsoftokn3 -> nss [ 1s] breaking dependency nss -> libsoftokn3 [ 1s] [1/40] preinstalling libmagic-data... [ 1s] [2/40] preinstalling libncurses... [ 1s] [3/40] preinstalling setup... [ 1s] [4/40] preinstalling filesystem... [ 1s] [5/40] preinstalling glibc... [ 2s] [6/40] preinstalling libbz2... [ 2s] [7/40] preinstalling libgcc... [ 2s] [8/40] preinstalling bash... [ 2s] [9/40] preinstalling diffutils... [ 2s] [10/40] preinstalling grep... [ 2s] [11/40] preinstalling libattr... [ 2s] [12/40] preinstalling libblkid... [ 2s] [13/40] preinstalling libcap... [ 2s] [14/40] preinstalling libfreebl3... [ 2s] [15/40] preinstalling liblua... [ 2s] [16/40] preinstalling liblzma... [ 2s] [17/40] preinstalling libpopt... [ 2s] [18/40] preinstalling libreadline... [ 2s] [19/40] preinstalling libsmack... [ 2s] [20/40] preinstalling libsqlite... [ 2s] [21/40] preinstalling libuuid... [ 2s] [22/40] preinstalling nspr... [ 2s] [23/40] preinstalling sed... [ 2s] [24/40] preinstalling zlib... [ 2s] [25/40] preinstalling qemu-accel-x86_64-armv7l... [ 7s] [26/40] preinstalling qemu-linux-user-x86_64-cross... [ 8s] [27/40] preinstalling coreutils... [ 8s] [28/40] preinstalling libacl... [ 8s] [29/40] preinstalling libelf... [ 8s] [30/40] preinstalling libmount... [ 8s] [31/40] preinstalling smack... [ 8s] [32/40] preinstalling bzip2... [ 8s] [33/40] preinstalling libmagic... [ 8s] [34/40] preinstalling libxml2... [ 8s] [35/40] preinstalling tar... [ 8s] [36/40] preinstalling util-linux... [ 8s] [37/40] preinstalling util-linux-su... [ 8s] [38/40] preinstalling nss... [ 8s] [39/40] preinstalling libsoftokn3... [ 8s] [40/40] preinstalling rpm... [ 9s] [ 9s] running qemu-linux-user-x86_64-cross postinstall script [ 9s] running qemu-accel-x86_64-armv7l postinstall script [ 9s] running setup postinstall script [ 9s] .init_b_cache/scripts/setup.post: line 1: syntax error near unexpected token `name' [ 9s] .init_b_cache/scripts/setup.post: line 1: `for i, name in ipairs({"passwd", "shadow", "group", "gshadow"}) do' [ 9s] initializing rpm db... [ 9s] reordering...cycle: gio-branding-upstream -> libgio [ 9s] breaking dependency libgio -> gio-branding-upstream [ 9s] cycle: pkgmgr-info -> pkgmgr-info-parser [ 9s] breaking dependency pkgmgr-info-parser -> pkgmgr-info [ 9s] cycle: dali-adaptor-profile_common -> dali-adaptor [ 9s] breaking dependency dali-adaptor -> dali-adaptor-profile_common [ 9s] cycle: ecore-core -> efl [ 9s] breaking dependency efl -> ecore-core [ 9s] cycle: efl -> ecore-con [ 9s] breaking dependency ecore-con -> efl [ 9s] cycle: ecore-core -> efl -> ecore-con [ 9s] breaking dependency ecore-con -> ecore-core [ 9s] cycle: efl -> ecore-con -> eet [ 9s] breaking dependency ecore-con -> eet [ 9s] cycle: efl -> ecore-con -> eina [ 9s] breaking dependency efl -> ecore-con [ 9s] cycle: efl -> eina [ 9s] breaking dependency efl -> eina [ 9s] cycle: efl -> eo [ 9s] breaking dependency eo -> efl [ 9s] cycle: efl -> eo -> eina [ 9s] breaking dependency eo -> eina [ 9s] cycle: ecore-evas -> ecore-input-evas -> evas [ 9s] breaking dependency ecore-evas -> ecore-input-evas [ 9s] cycle: ecore-evas -> evas [ 9s] breaking dependency evas -> ecore-evas [ 9s] cycle: libalarm -> alarm-server [ 9s] breaking dependency alarm-server -> libalarm [ 9s] cycle: libkey-manager-client -> key-manager [ 9s] breaking dependency key-manager -> libkey-manager-client [ 9s] cycle: libsecurity-manager-client -> security-manager [ 9s] breaking dependency security-manager -> libsecurity-manager-client [ 9s] cycle: libsecurity-manager-client -> security-manager -> security-license-manager [ 9s] breaking dependency security-manager -> security-license-manager [ 9s] cycle: security-manager -> security-manager-policy [ 9s] breaking dependency security-manager -> security-manager-policy [ 9s] cycle: xmlsec1-openssl -> xmlsec1 [ 9s] breaking dependency xmlsec1-openssl -> xmlsec1 [ 9s] cycle: dali-adaptor-integration-devel -> dali-adaptor-devel [ 9s] breaking dependency dali-adaptor-integration-devel -> dali-adaptor-devel [ 9s] cycle: ecore-devel -> ecore-audio-devel [ 9s] breaking dependency ecore-devel -> ecore-audio-devel [ 9s] cycle: ecore-devel -> ecore-buffer-devel [ 9s] breaking dependency ecore-devel -> ecore-buffer-devel [ 9s] cycle: ecore-devel -> ecore-con-devel [ 9s] breaking dependency ecore-devel -> ecore-con-devel [ 9s] cycle: ecore-core-devel -> ecore-devel [ 9s] breaking dependency ecore-devel -> ecore-core-devel [ 9s] cycle: ecore-devel -> ecore-evas-devel [ 9s] breaking dependency ecore-devel -> ecore-evas-devel [ 9s] cycle: ecore-devel -> ecore-fb-devel [ 9s] breaking dependency ecore-devel -> ecore-fb-devel [ 9s] cycle: ecore-devel -> ecore-file-devel [ 9s] breaking dependency ecore-devel -> ecore-file-devel [ 9s] cycle: ecore-devel -> ecore-imf-devel [ 9s] breaking dependency ecore-devel -> ecore-imf-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel [ 9s] breaking dependency ecore-imf-evas-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ecore-imf-devel [ 9s] breaking dependency ecore-imf-evas-devel -> ecore-imf-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ecore-input-devel [ 9s] breaking dependency ecore-imf-evas-devel -> ecore-input-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel [ 9s] breaking dependency efl-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> ecore-con-devel [ 9s] breaking dependency efl-devel -> ecore-con-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> ecore-evas-devel [ 9s] breaking dependency efl-devel -> ecore-evas-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> ecore-input-devel [ 9s] breaking dependency efl-devel -> ecore-input-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> ecore-wl2-devel [ 9s] breaking dependency efl-devel -> ecore-wl2-devel [ 9s] cycle: ector-devel -> eet-devel -> efl-devel [ 9s] breaking dependency efl-devel -> ector-devel [ 9s] cycle: eet-devel -> efl-devel [ 9s] breaking dependency efl-devel -> eet-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel [ 9s] breaking dependency elementary-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-con-devel [ 9s] breaking dependency elementary-devel -> ecore-con-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-evas-devel [ 9s] breaking dependency elementary-devel -> ecore-evas-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-file-devel [ 9s] breaking dependency elementary-devel -> ecore-file-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-imf-devel [ 9s] breaking dependency elementary-devel -> ecore-imf-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-input-devel [ 9s] breaking dependency elementary-devel -> ecore-input-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-wayland-devel [ 9s] breaking dependency elementary-devel -> ecore-wayland-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> ecore-wl2-devel [ 9s] breaking dependency elementary-devel -> ecore-wl2-devel [ 9s] cycle: ector-devel -> eet-devel -> efl-devel -> elementary-devel [ 9s] breaking dependency elementary-devel -> ector-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel [ 9s] breaking dependency edje-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel -> ecore-audio-devel [ 9s] breaking dependency edje-devel -> ecore-audio-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel -> ecore-evas-devel [ 9s] breaking dependency edje-devel -> ecore-evas-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel -> ecore-file-devel [ 9s] breaking dependency edje-devel -> ecore-file-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel -> ecore-imf-devel [ 9s] breaking dependency edje-devel -> ecore-imf-devel [ 9s] cycle: ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel [ 9s] breaking dependency edje-devel -> ecore-imf-evas-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> edje-devel -> ecore-input-devel [ 9s] breaking dependency elementary-devel -> edje-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel [ 9s] breaking dependency elementary-devel -> eet-devel [ 9s] cycle: efl-devel -> elementary-devel [ 9s] breaking dependency elementary-devel -> efl-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> efreet-devel [ 9s] breaking dependency elementary-devel -> efreet-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> eio-devel [ 9s] breaking dependency elementary-devel -> eio-devel [ 9s] cycle: ecore-devel -> ecore-imf-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> eldbus-devel [ 9s] breaking dependency ecore-devel -> ecore-imf-evas-devel [ 9s] cycle: ecore-devel -> ecore-input-devel [ 9s] breaking dependency ecore-devel -> ecore-input-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel [ 9s] breaking dependency ecore-input-evas-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ecore-input-devel [ 9s] breaking dependency ecore-input-evas-devel -> ecore-input-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> eldbus-devel [ 9s] breaking dependency elementary-devel -> eldbus-devel [ 9s] cycle: efl-devel -> elementary-devel -> emile-devel [ 9s] breaking dependency elementary-devel -> emile-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel [ 9s] breaking dependency emotion-devel -> ecore-devel [ 9s] cycle: ector-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel [ 9s] breaking dependency emotion-devel -> ector-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> emotion-devel [ 9s] breaking dependency emotion-devel -> eet-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel -> eeze-devel [ 9s] breaking dependency emotion-devel -> eeze-devel [ 9s] cycle: efl-devel -> elementary-devel -> emotion-devel [ 9s] breaking dependency emotion-devel -> efl-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel -> eio-devel [ 9s] breaking dependency eio-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> ector-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel -> eio-devel -> ecore-file-devel [ 9s] breaking dependency ecore-input-evas-devel -> ector-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> emotion-devel -> eio-devel -> ecore-file-devel [ 9s] breaking dependency eio-devel -> ecore-file-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> emotion-devel -> eio-devel [ 9s] breaking dependency emotion-devel -> eio-devel [ 9s] cycle: efl-devel -> elementary-devel -> emotion-devel -> emile-devel [ 9s] breaking dependency elementary-devel -> emotion-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel [ 9s] breaking dependency ethumb-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> ecore-evas-devel [ 9s] breaking dependency ethumb-devel -> ecore-evas-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> ecore-file-devel [ 9s] breaking dependency ethumb-devel -> ecore-file-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> ecore-imf-devel [ 9s] breaking dependency ethumb-devel -> ecore-imf-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> ecore-input-devel [ 9s] breaking dependency ethumb-devel -> ecore-input-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> ector-devel [ 9s] breaking dependency ethumb-devel -> ector-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> edje-devel -> ecore-input-devel [ 9s] breaking dependency edje-devel -> ecore-input-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> edje-devel -> ector-devel [ 9s] breaking dependency edje-devel -> ector-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> edje-devel [ 9s] breaking dependency edje-devel -> eet-devel [ 9s] cycle: efl-devel -> elementary-devel -> ethumb-devel -> edje-devel [ 9s] breaking dependency edje-devel -> efl-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> edje-devel -> efreet-devel [ 9s] breaking dependency ethumb-devel -> edje-devel [ 9s] cycle: eet-devel -> efl-devel -> elementary-devel -> ethumb-devel [ 9s] breaking dependency ethumb-devel -> eet-devel [ 9s] cycle: efl-devel -> elementary-devel -> ethumb-devel [ 9s] breaking dependency ethumb-devel -> efl-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> eldbus-devel [ 9s] breaking dependency ecore-input-evas-devel -> eet-devel [ 9s] cycle: ecore-devel -> ecore-input-evas-devel -> efl-devel -> elementary-devel -> ethumb-devel -> eldbus-devel [ 9s] breaking dependency ecore-devel -> ecore-input-evas-devel [ 9s] cycle: ecore-devel -> ecore-ipc-devel [ 9s] breaking dependency ecore-devel -> ecore-ipc-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel [ 9s] breaking dependency ecore-wayland-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel [ 9s] breaking dependency ecore-input-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel [ 9s] breaking dependency eeze-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel -> ecore-file-devel [ 9s] breaking dependency ecore-file-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel -> ecore-file-devel -> ecore-con-devel [ 9s] breaking dependency ecore-con-devel -> ecore-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel -> ecore-file-devel -> ecore-con-devel -> eet-devel -> efl-devel -> elementary-devel -> ethumb-devel -> eldbus-devel [ 9s] breaking dependency ethumb-devel -> eldbus-devel [ 9s] cycle: efl-devel -> elementary-devel -> ethumb-devel -> emile-devel [ 9s] breaking dependency efl-devel -> elementary-devel [ 9s] cycle: efl-devel -> emile-devel [ 9s] breaking dependency efl-devel -> emile-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel -> ecore-file-devel -> ecore-con-devel -> eet-devel -> efl-devel -> evas-devel [ 9s] breaking dependency evas-devel -> ecore-devel [ 9s] cycle: eet-devel -> efl-devel -> evas-devel -> ector-devel [ 9s] breaking dependency evas-devel -> ector-devel [ 9s] cycle: eet-devel -> efl-devel -> evas-devel [ 9s] breaking dependency evas-devel -> eet-devel [ 9s] cycle: efl-devel -> evas-devel [ 9s] breaking dependency evas-devel -> efl-devel [ 9s] cycle: efl-devel -> evas-devel -> emile-devel [ 9s] breaking dependency evas-devel -> emile-devel [ 9s] cycle: ecore-devel -> ecore-wayland-devel -> ecore-input-devel -> eeze-devel -> ecore-file-devel -> ecore-con-devel -> eldbus-devel [ 9s] breaking dependency ecore-con-devel -> eldbus-devel [ 9s] cycle: ecore-devel -> ecore-wl2-devel [ 9s] breaking dependency ecore-wl2-devel -> ecore-devel [ 9s] cycle: libsoftokn3 -> nss [ 9s] breaking dependency nss -> libsoftokn3 [ 9s] done [ 9s] [1/393] installing boost-license-1.71.0-6.1 [ 9s] [2/393] installing ca-certificates-tizen-0.2.0-2.2 [ 9s] [3/393] installing default-ac-domains-0.1-6.2 [ 9s] [4/393] installing dlog-config-persistent-logs-6.0.11-88.1 [ 10s] [5/393] installing libmagic-data-5.37-17.171 [ 10s] [6/393] installing setup-0.9-10.29 [ 10s] warning: /etc/profile created as /etc/profile.rpmnew [ 10s] [7/393] installing filesystem-3.1-8.1 [ 10s] [8/393] installing glibc-2.30-25.11 [ 10s] [9/393] installing giflib-5.1.9-5.2 [ 10s] [10/393] installing libatomic-9.2.0-7.12 [ 11s] [11/393] installing libbz2-1.0.8-8.2 [ 11s] [12/393] installing libgcc-9.2.0-7.12 [ 11s] [13/393] installing giflib-devel-5.1.9-5.2 [ 11s] [14/393] installing bash-3.2.57-6.7 [ 11s] [15/393] installing capi-base-common-0.4.54-37.4 [ 12s] [16/393] installing cpio-2.11-3.7 [ 12s] [17/393] installing diffutils-3.3-3.7 [ 12s] [18/393] installing findutils-4.3.8-6.349 [ 12s] [19/393] installing fribidi-1.0.8-7.1 [ 12s] [20/393] installing gdbm-1.8.3-4.247 [ 13s] [21/393] installing hostname-3.23-7.4 [ 13s] [22/393] installing iniparser-4.1-3.3 [ 13s] [23/393] installing libasound-1.0.28-5.13 [ 13s] [24/393] installing libattr-2.4.47-5.602 [ 14s] [25/393] installing libavutil-12.3-15.30 [ 14s] [26/393] installing libblkid-2.34-17.7 [ 14s] [27/393] installing libcap-2.24-4.808 [ 14s] [28/393] installing libcares-1.12.0-6.4 [ 15s] [29/393] installing libdrm-2.4.100-22.1 [ 15s] [30/393] installing libexif-0.6.21-3.4 [ 15s] [31/393] installing libexpat-2.2.9-9.37 [ 16s] [32/393] installing libext2fs-1.43.4-7.3 [ 16s] [33/393] installing libffi-3.1-4.41 [ 16s] [34/393] installing libfreebl3-3.34.1-6.129 [ 17s] [35/393] installing libgfortran-9.2.0-7.12 [ 17s] [36/393] installing libgomp-9.2.0-7.12 [ 17s] [37/393] installing libgpg-error-1.27-5.7 [ 18s] [38/393] installing libhyphen-2.8.8-3.13 [ 18s] [39/393] installing libitm-9.2.0-7.12 [ 18s] [40/393] installing libjpeg-8.2.2-9.17 [ 19s] [41/393] installing libjson4-0.13.1-9.7 [ 19s] [42/393] installing libltdl-2.4.2-5.219 [ 19s] [43/393] installing liblua-5.1.5-5.105 [ 20s] [44/393] installing liblzma-5.2.4-6.297 [ 20s] [45/393] installing libogg-1.3.2-1.15 [ 20s] [46/393] installing libopenssl11-1.1.1e-9.41 [ 21s] [47/393] installing libpcre-8.43-7.31 [ 21s] [48/393] installing libpopt-1.16-4.235 [ 21s] [49/393] installing libpython-2.7.17-14.25 [ 22s] [50/393] installing libpython3_7m1_0-3.7.3-15.52 [ 22s] [51/393] installing libsmack-1.3.1-5.367 [ 22s] [52/393] installing libsmartcols-2.34-17.7 [ 23s] [53/393] installing libsqlite-3.31.1-20.26 [ 23s] [54/393] installing libstdc++-9.2.0-7.12 [ 23s] [55/393] installing libuuid-2.34-17.7 [ 24s] [56/393] installing libwayland-egl-1.18.0-30.3 [ 24s] [57/393] installing libwayland-egl-tizen-1.0.1-7.1 [ 24s] [58/393] installing libxkbcommon-0.10.0-9.1 [ 25s] [59/393] installing m4-1.4.17-4.4 [ 25s] [60/393] installing net-tools-2.0_20121208git-4.1 [ 25s] [61/393] installing nghttp2-1.40.0-12.1 [ 25s] [62/393] installing nspr-4.12-4.213 [ 25s] [63/393] installing patch-2.7-3.234 [ 25s] [64/393] installing pixman-0.38.4-4.5 [ 26s] [65/393] installing pkg-config-0.28-6.132 [ 26s] [66/393] installing sed-4.1c-4.7 [ 26s] [67/393] installing update-alternatives-1.18.15-5.4 [ 26s] [68/393] installing which-2.20-6.7 [ 26s] [69/393] installing xdgmime-0.0.14-5.1 [ 26s] [70/393] installing zlib-1.2.11-5.504 [ 27s] [71/393] installing shadow-utils-4.1.4.2-10.47 [ 27s] [72/393] installing build-compare-2015.04.28-3.340 [ 27s] [73/393] installing libstdc++-devel-9.2.0-7.12 [ 27s] [74/393] installing qemu-linux-user-x86_64-cross-2.7.0.1-1.2.1 [ 28s] [75/393] installing terminfo-base-full-6.1_20191207-12.145 [ 29s] [76/393] installing capi-base-common-devel-0.4.54-37.4 [ 29s] [77/393] installing cpp-9.2.0-7.12 [ 31s] [78/393] installing fribidi-devel-1.0.8-7.1 [ 32s] [79/393] installing gcc-c++-9.2.0-7.12 [ 34s] [80/393] installing libasound-devel-1.0.28-5.13 [ 36s] [81/393] installing libblkid-devel-2.34-17.7 [ 36s] [82/393] installing libffi-devel-3.1-4.41 [ 36s] [83/393] installing libjpeg-devel-8.2.2-9.17 [ 37s] [84/393] installing libuuid-devel-2.34-17.7 [ 37s] [85/393] installing libxkbcommon-devel-0.10.0-9.1 [ 37s] [86/393] installing pixman-devel-0.38.4-4.5 [ 37s] [87/393] installing sensord-dummy-4.0.54-48.1 [ 38s] [88/393] installing xz-devel-5.2.4-6.297 [ 38s] [89/393] installing binutils-2.33.1-19.28 [ 38s] [90/393] installing context-sensor-recorder-dummy-4.0.1-12.7 [ 38s] [91/393] installing coreutils-6.9-4.44 [ 38s] [92/393] installing db4-4.8.30.NC-4.143 [ 39s] [93/393] installing gawk-3.1.5-6.4 [ 39s] [94/393] installing grep-2.5.2-6.7 [ 39s] [95/393] installing libacl-2.2.52-5.621 [ 39s] [96/393] installing libavcodec-12.3-15.30 [ 40s] [97/393] installing libcap-tools-2.24-4.808 [ 40s] [98/393] installing libcc1-9.2.0-7.12 [ 40s] [99/393] installing libelf-0.178-6.2 [ 40s] [100/393] installing libgcrypt-1.8.3-7.11 [ 41s] [101/393] installing libglib-2.62.3-25.25 [ 41s] [102/393] installing libmount-2.34-17.7 [ 41s] [103/393] installing libnss-security-manager-1.6.1-55.9 [ 42s] [104/393] installing libpcreposix-8.43-7.31 [ 42s] [105/393] installing libpng-1.6.37-10.3 [ 42s] [106/393] installing libswscale-12.3-15.30 [ 43s] [107/393] installing libubsan-9.2.0-7.12 [ 43s] [108/393] installing libvorbis-1.3.4-3.4 [ 43s] [109/393] installing libwayland-egl-tizen-devel-1.0.1-7.1 [ 43s] [110/393] installing lottie-player-0.0.1-49.1 [ 43s] [111/393] installing make-4.0-5.43 [ 44s] [112/393] installing minizip-1.2.11-5.504 [ 44s] [113/393] installing ninja-1.9.0-3.5 [ 44s] [114/393] installing nss-certs-3.34.1-6.129 [ 44s] [115/393] installing smack-1.3.1-5.367 [ 44s] [116/393] installing boost-filesystem-1.71.0-6.1 [ 44s] [117/393] installing boost-program-options-1.71.0-6.1 [ 45s] [118/393] installing bzip2-1.0.8-8.2 [ 45s] [119/393] installing dali-1.5.10-99.1 [ 45s] [120/393] installing libfdisk-2.34-17.7 [ 45s] [121/393] installing libicu-65.1-15.4 [ 47s] [122/393] installing libkmod-27-6.1 [ 47s] [123/393] installing libmagic-5.37-17.171 [ 47s] [124/393] installing libpcrecpp-8.43-7.31 [ 48s] [125/393] installing libsqlcipher-4.3.0-3.1 [ 48s] [126/393] installing libxml2-2.9.10-10.24 [ 48s] [127/393] installing xz-5.2.4-6.297 [ 48s] [128/393] installing cynara-db-migration-0.14.26-17.3 [ 48s] [129/393] installing ttrace-1.0.3-13.1 [ 49s] [130/393] installing libtiff-4.1.0-11.3 [ 49s] [131/393] installing python3-base-3.7.3-15.52 [ 50s] [132/393] installing dali-integration-devel-1.5.10-99.1 [ 50s] [133/393] installing libicu-devel-65.1-15.4 [ 50s] [134/393] installing linux-glibc-devel-3.10-10.44 [ 50s] [135/393] installing file-5.37-17.171 [ 50s] [136/393] installing glibc-locale-2.30-25.11 [ 51s] [137/393] installing libgmodule-2.62.3-25.25 [ 51s] [138/393] installing libgthread-2.62.3-25.25 [ 52s] [139/393] installing libmount-devel-2.34-17.7 [ 52s] [140/393] installing tar-1.17-4.8 [ 52s] [141/393] installing tizen-platform-config-5.0-15.1 [ 53s] [142/393] installing gzip-1.3.12-7.574 [ 53s] [143/393] installing libavformat-12.3-15.30 [ 53s] [144/393] installing libfreetype-2.10.1-9.1 [ 53s] [145/393] installing libgobject-2.62.3-25.25 [ 54s] [146/393] installing libncurses6-6.1_20191207-12.145 [ 54s] [147/393] installing libvorbisenc-1.3.4-3.4 [ 54s] [148/393] installing lottie-player-devel-0.0.1-49.1 [ 54s] [149/393] installing pam-1.1.6-8.5 [ 55s] [150/393] installing boost-regex-1.71.0-6.1 [ 55s] [151/393] installing perl-5.30.0-10.78 [ 57s] [152/393] installing tzdata-2019c-12.4 [ 57s] [153/393] installing libcurl-extension-dlp-7.68.0-20.2 [ 58s] [154/393] installing libdw-0.178-6.2 [ 58s] [155/393] installing pcre-devel-8.43-7.31 [ 58s] [156/393] installing security-config-1.0-103.1 [ 65s] groupadd: group 'dbus' already exists [ 65s] groupadd: group 'priv_appdebugging' already exists [ 65s] rm: cannot remove `/opt/share/security-config/test': No such file or directory [ 65s] [157/393] installing libcurl-7.68.0-20.2 [ 66s] [158/393] installing libxslt-1.1.34-8.5 [ 66s] [159/393] installing libarchive-3.4.0-8.5 [ 66s] [160/393] installing shared-mime-info-1.7-5.17 [ 72s] [161/393] installing gcc-9.2.0-7.12 [ 72s] [162/393] installing build-mkbaselibs-20120927-3.1 [ 72s] [163/393] installing libncurses-6.1_20191207-12.145 [ 72s] [164/393] installing glibc-devel-2.30-25.11 [ 72s] [165/393] installing qemu-accel-x86_64-armv7l-0.4-17.1 [ 79s] [166/393] installing autoconf-2.69-5.319 [ 79s] [167/393] installing ca-certificates-0.0.4-10.1 [ 79s] [168/393] installing dali-devel-1.5.10-99.1 [ 79s] [169/393] installing less-466-8.12 [ 79s] [170/393] installing libreadline-5.2-5.160 [ 80s] [171/393] installing libtzplatform-config-5.0-15.1 [ 80s] [172/393] installing procps-ng-3.3.15-9.5 [ 80s] [173/393] installing libasm-0.178-6.2 [ 80s] [174/393] installing libcurl-devel-7.68.0-20.2 [ 80s] [175/393] installing libsndfile-1.0.28-11.4 [ 81s] [176/393] installing libsystemd-244-55.2 [ 81s] [177/393] installing ncurses-devel-6.1_20191207-12.145 [ 81s] [178/393] installing libharfbuzz-2.6.4-9.2 [ 82s] [179/393] installing cmake-3.9.4-7.5 [ 82s] [180/393] installing fontconfig-2.13.1-12.1 [ 83s] [181/393] installing systemd-244-55.2 [ 85s] Running systemd %posttrans script [ 85s] update-alternatives: using /usr/lib/systemd/systemd-shutdown-original to provide /usr/lib/systemd/systemd-shutdown (systemd-shutdown) in auto mode [ 85s] [182/393] installing readline-devel-5.2-5.160 [ 85s] [183/393] installing automake-1.15.1-6.472 [ 85s] [184/393] installing dbus-libs-1.12.16-45.4 [ 86s] [185/393] installing systemd-devel-244-55.2 [ 86s] [186/393] installing tizen-platform-config-tools-5.0-15.1 [ 86s] [187/393] installing zlib-devel-1.2.11-5.504 [ 86s] [188/393] installing libsndfile-devel-1.0.28-11.4 [ 86s] [189/393] installing libxml2-tools-2.9.10-10.24 [ 86s] [190/393] installing lua-5.1.5-5.105 [ 86s] [191/393] installing sqlite-3.31.1-20.26 [ 86s] [192/393] installing build-20120927-3.1 [ 86s] [193/393] installing elfutils-0.178-6.2 [ 86s] [194/393] installing python3-3.7.3-15.21 [ 86s] [195/393] installing libdlog-6.0.11-88.1 [ 87s] Running in chroot, ignoring request: daemon-reload [ 87s] [196/393] installing python-2.7.17-14.25 [ 88s] [197/393] installing util-linux-2.34-17.7 [ 88s] [198/393] installing dbus-devel-1.12.16-45.4 [ 88s] [199/393] installing libdlog-devel-6.0.11-88.1 [ 88s] [200/393] installing libopenssl1.1-devel-1.1.1e-9.41 [ 88s] [201/393] installing libtracker-1.0.1-4.13 [ 89s] [202/393] installing lua-devel-5.1.5-5.105 [ 89s] [203/393] installing libmm-common-0.2.121-18.4 [ 89s] [204/393] installing libtool-2.4.2-5.219 [ 89s] [205/393] installing libwayland-client-1.18.0-30.3 [ 89s] [206/393] installing libwayland-server-1.18.0-30.3 [ 90s] [207/393] installing python-xml-2.7.17-14.25 [ 90s] [208/393] installing util-linux-su-2.34-17.7 [ 90s] [209/393] installing argos_watchdog-0.0.3-4.4 [ 90s] [210/393] installing capi-system-sensor-0.2.5-13.1 [ 90s] [211/393] installing libkey-manager-common-0.1.38-25.3 [ 91s] [212/393] installing libpng-devel-1.6.37-10.3 [ 91s] [213/393] installing libpulse-13.0-51.1 [ 91s] [214/393] installing libcynara-commons-0.14.26-17.3 [ 92s] [215/393] installing libxml2-devel-2.9.10-10.24 [ 92s] [216/393] installing capi-system-info-0.5.2-16.4 [ 92s] Running capi-system-info %posttrans script [ 92s] I/O warning : failed to load external entity "/etc/config/model-config.xml" [ 92s] iniparser: cannot open /etc/info.ini [ 92s] [217/393] installing libwayland-extension-client-1.3.7-48.1 [ 93s] [218/393] installing capi-system-info-devel-0.5.2-16.4 [ 93s] [219/393] installing pkgmgr-0.12.0-30.1 [ 94s] Running pkgmgr %posttrans script [ 94s] /var/tmp/rpm-tmp.Pr9tWC: line 4: pkg_initdb: command not found [ 94s] /var/tmp/rpm-tmp.Pr9tWC: line 5: install_preload_pkg: command not found [ 94s] /var/tmp/rpm-tmp.Pr9tWC: line 12: pkgcmd: command not found [ 94s] /var/tmp/rpm-tmp.Pr9tWC: line 14: /etc/package-manager/pkgmgr-label-initial-image.sh: No such file or directory [ 94s] [220/393] installing libcynara-agent-0.14.26-17.3 [ 94s] [221/393] installing libcynara-client-0.14.26-17.3 [ 94s] [222/393] installing libcynara-creds-commons-0.14.26-17.3 [ 95s] [223/393] installing libcynara-session-0.14.26-17.3 [ 95s] [224/393] installing ttrace-devel-1.0.3-13.1 [ 95s] [225/393] installing freetype2-devel-2.10.1-9.1 [ 95s] [226/393] installing libcynara-admin-0.14.26-17.3 [ 95s] [227/393] installing libwayland-cursor-1.18.0-30.3 [ 96s] [228/393] installing cynara-0.14.26-17.4 [ 96s] Running in chroot, ignoring request: daemon-reload [ 96s] Running in chroot, ignoring request: restart [ 96s] [229/393] installing libpulse-mainloop-glib-13.0-51.1 [ 96s] [230/393] installing libtbm-3.3.7-67.1 [ 97s] [231/393] installing libtbm-devel-3.3.7-67.1 [ 97s] [232/393] installing fontconfig-devel-2.13.1-12.1 [ 97s] [233/393] installing cyad-0.14.26-17.3 [ 97s] [234/393] installing libcynara-creds-socket-0.14.26-17.3 [ 97s] [235/393] installing libwayland-tbm-client-0.8.1-41.1 [ 98s] [236/393] installing capi-media-tool-0.1.16-19.5 [ 98s] [237/393] installing libwayland-tbm-server-0.8.1-41.1 [ 98s] [238/393] installing wayland-devel-1.18.0-30.3 [ 99s] [239/393] installing libtdm-2.10.6-92.1 [ 99s] [240/393] installing libtdm-devel-2.10.6-92.1 [ 99s] [241/393] installing wayland-extension-client-devel-1.3.7-48.1 [ 99s] [242/393] installing capi-media-tool-devel-0.1.16-19.5 [ 99s] [243/393] installing libwayland-tbm-devel-0.8.1-41.1 [ 99s] [244/393] installing libtdm-client-2.10.6-92.1 [ 99s] [245/393] installing libtdm-client-devel-2.10.6-92.1 [ 99s] [246/393] installing libtpl-egl-1.7.6-7.1 [ 100s] [247/393] installing coregl-0.2.0-12.14 [ 100s] [248/393] installing coregl-devel-0.2.0-12.14 [ 100s] [249/393] installing eo-1.24.0-151.2 [ 100s] [250/393] installing nss-3.34.1-6.129 [ 101s] [251/393] installing xmlsec1-openssl-1.2.28-7.32 [ 101s] [252/393] installing libgio-2.62.3-25.25 [ 102s] [253/393] installing gio-branding-upstream-2.62.3-25.25 [ 102s] [254/393] installing libcynara-creds-gdbus-0.14.26-17.3 [ 102s] [255/393] installing libjson-glib-1.4.4-8.1 [ 102s] [256/393] installing libsoftokn3-3.34.1-6.129 [ 103s] [257/393] installing glib2-tools-2.62.3-25.25 [ 103s] [258/393] installing gstreamer-1.16.2-24.1 [ 103s] [259/393] installing xmlsec1-1.2.28-7.32 [ 104s] [260/393] installing efl-1.24.0-151.2 [ 104s] [261/393] installing klay-0.0.2-28.16 [ 104s] [262/393] installing pkgmgr-info-parser-0.18.1-53.1 [ 104s] [263/393] installing rpm-4.11.0.1-16.29 [ 105s] [264/393] installing buxton2-1.5.11-34.1 [ 106s] Running buxton2 %posttrans script [ 106s] chmod: cannot access `/etc/buxton2/*': No such file or directory [ 106s] /etc/buxton2/*: No such file or directory [ 106s] chmod: cannot access `/var/lib/buxton2/*': No such file or directory [ 106s] /var/lib/buxton2/*: No such file or directory [ 106s] [265/393] installing eina-1.24.0-151.2 [ 106s] [266/393] installing vconf-compat-1.5.11-34.1 [ 107s] [267/393] installing bundle-0.4.5-18.1 [ 107s] [268/393] installing rpm-build-4.11.0.1-16.29 [ 107s] [269/393] installing glib2-devel-2.62.3-25.25 [ 107s] [270/393] installing bundle-devel-0.4.5-18.1 [ 107s] [271/393] installing eina-devel-1.24.0-151.2 [ 107s] [272/393] installing embryo-1.24.0-151.2 [ 108s] [273/393] installing harfbuzz-devel-2.6.4-9.2 [ 108s] [274/393] installing libpulse-devel-13.0-51.1 [ 108s] [275/393] installing eventsystem-0.1.13-11.4 [ 108s] [276/393] installing ecore-core-1.24.0-151.2 [ 108s] [277/393] installing capi-system-runtime-info-0.5.2-16.5 [ 108s] [278/393] installing emile-1.24.0-151.2 [ 109s] [279/393] installing libdpm-0.0.1-11.5 [ 109s] [280/393] installing libnet-client-1.1.74-32.1 [ 109s] [281/393] installing capi-system-device-0.1.0-41.1 [ 109s] [282/393] installing libstorage-1.0.0-25.4 [ 110s] [283/393] installing pkgmgr-info-0.18.1-53.1 [ 110s] [284/393] installing libmm-fileinfo-0.6.87-44.1 [ 111s] [285/393] installing libmm-sound-0.12.72-71.1 [ 111s] [286/393] installing capi-system-device-devel-0.1.0-41.1 [ 111s] [287/393] installing eo-devel-1.24.0-151.2 [ 111s] [288/393] installing capi-media-metadata-extractor-0.1.14-24.3 [ 111s] [289/393] installing ecore-imf-1.24.0-151.2 [ 111s] [290/393] installing ecore-audio-1.24.0-151.2 [ 111s] [291/393] installing ecore-buffer-1.24.0-151.2 [ 111s] [292/393] installing eet-1.24.0-151.2 [ 112s] [293/393] installing eldbus-1.24.0-151.2 [ 112s] [294/393] installing capi-network-connection-1.0.117-32.1 [ 112s] [295/393] installing ecore-con-1.24.0-151.2 [ 112s] [296/393] installing capi-media-sound-manager-0.6.5-51.1 [ 113s] [297/393] installing pkgmgr-installer-0.12.0-30.1 [ 113s] [298/393] installing pkgmgr-client-0.12.0-30.1 [ 114s] [299/393] installing security-privilege-manager-1.2.0-50.13 [ 114s] mdm blacklist exist [ 114s] Check inserted data [ 114s] DPM blacklist... [ 114s] [ 114s] MDM blacklist... [ 114s] [300/393] installing mused-0.3.110-105.1 [ 115s] [301/393] installing capi-media-sound-manager-devel-0.6.5-51.1 [ 115s] [302/393] installing capi-network-connection-devel-1.0.117-32.1 [ 115s] [303/393] installing ector-1.24.0-151.2 [ 115s] [304/393] installing ecore-file-1.24.0-151.2 [ 115s] [305/393] installing ecore-ipc-1.24.0-151.2 [ 115s] [306/393] installing capi-appfw-package-manager-0.8.5-24.4 [ 116s] [307/393] installing capi-media-audio-io-0.5.27-35.1 [ 116s] [308/393] installing capi-media-player-0.3.130-72.1 [ 116s] [309/393] installing aul-0.24.1-125.1 [ 117s] [310/393] installing security-manager-1.6.1-55.9 [ 118s] Running in chroot, ignoring request: daemon-reload [ 118s] Running in chroot, ignoring request: start [ 118s] [311/393] installing app-svc-0.1.57-6.21 [ 118s] [312/393] installing capi-media-player-devel-0.3.130-72.1 [ 118s] [313/393] installing security-manager-policy-1.6.1-55.9 [ 124s] Running in chroot, ignoring request: stop [ 124s] Running in chroot, ignoring request: start [ 124s] [314/393] installing libsecurity-manager-client-1.6.1-55.9 [ 125s] [315/393] installing capi-appfw-app-manager-0.8.2-16.5 [ 125s] [316/393] installing eeze-1.24.0-151.2 [ 125s] [317/393] installing efreet-1.24.0-151.2 [ 126s] [318/393] installing app-core-common-1.14.4-58.1 [ 126s] [319/393] installing ecore-input-1.24.0-151.2 [ 126s] [320/393] installing capi-appfw-app-common-0.8.3-10.6 [ 127s] [321/393] installing capi-appfw-app-control-0.13.0-32.3 [ 127s] [322/393] installing eio-1.24.0-151.2 [ 127s] [323/393] installing security-license-manager-1.6.1-55.9 [ 128s] Running in chroot, ignoring request: daemon-reload [ 128s] Running in chroot, ignoring request: start [ 128s] [324/393] installing liblbs-location-1.4.7-13.2 [ 128s] [325/393] installing key-manager-0.1.38-25.3 [ 129s] Running in chroot, ignoring request: daemon-reload [ 129s] Running in chroot, ignoring request: start [ 129s] [326/393] installing tts-1.60.3-36.1 [ 129s] [327/393] installing tts-devel-1.60.3-36.1 [ 129s] [328/393] installing ecore-fb-1.24.0-151.2 [ 129s] [329/393] installing libkey-manager-client-0.1.38-25.3 [ 130s] [330/393] installing capi-location-manager-0.8.2-15.5 [ 130s] [331/393] installing ecore-wayland-1.24.0-151.2 [ 130s] [332/393] installing ecore-wl2-1.24.0-151.2 [ 131s] [333/393] installing notification-0.5.66-96.1 [ 131s] [334/393] installing capi-location-manager-devel-0.8.2-15.5 [ 131s] [335/393] installing app-core-multiwindow-1.14.4-58.1 [ 131s] [336/393] installing libscreen_connector_provider-1.6.18-46.1 [ 132s] [337/393] installing app-core-ui-1.14.4-58.1 [ 132s] [338/393] installing cert-svc-2.2.1-15.4 [ 133s] Running in chroot, ignoring request: daemon-reload [ 133s] Running in chroot, ignoring request: start [ 133s] [339/393] installing evas-1.24.0-151.2 [ 133s] [340/393] installing ecore-imf-evas-1.24.0-151.2 [ 133s] [341/393] installing ecore-input-evas-1.24.0-151.2 [ 133s] [342/393] installing appcore-widget-base-1.3.5-26.4 [ 133s] [343/393] installing ecore-evas-1.24.0-151.2 [ 133s] [344/393] installing evas-devel-1.24.0-151.2 [ 133s] [345/393] installing alarm-server-0.12.1-43.1 [ 134s] Running alarm-server %posttrans script [ 134s] [346/393] installing libalarm-0.12.1-43.1 [ 134s] [347/393] installing edje-1.24.0-151.2 [ 135s] [348/393] installing libcairo-1.14.2-14.1 [ 135s] [349/393] installing efl-devel-1.24.0-151.2 [ 135s] [350/393] installing embryo-devel-1.24.0-151.2 [ 135s] [351/393] installing emile-devel-1.24.0-151.2 [ 135s] [352/393] installing emotion-1.24.0-151.2 [ 136s] [353/393] installing capi-system-system-settings-0.0.4-39.1 [ 136s] [354/393] installing edje-tools-1.24.0-151.2 [ 136s] [355/393] installing libcairo-script-interpreter-1.14.2-14.1 [ 136s] [356/393] installing libcairo-gobject-1.14.2-14.1 [ 137s] [357/393] installing eet-devel-1.24.0-151.2 [ 137s] [358/393] installing ethumb-1.24.0-151.2 [ 137s] [359/393] installing ecore-input-evas-devel-1.24.0-151.2 [ 137s] [360/393] installing emotion-devel-1.24.0-151.2 [ 137s] [361/393] installing dali-adaptor-1.5.10-111.1 [ 138s] /usr/lib / [ 138s] / [ 138s] [362/393] installing dali-adaptor-profile_common-1.5.10-111.1 [ 138s] [363/393] installing dali-adaptor-integration-devel-1.5.10-111.1 [ 138s] [364/393] installing dali-toolkit-1.5.10-107.1 [ 139s] [365/393] installing ector-devel-1.24.0-151.2 [ 139s] [366/393] installing ecore-con-devel-1.24.0-151.2 [ 139s] [367/393] installing ethumb-devel-1.24.0-151.2 [ 139s] [368/393] installing elementary-1.24.0-151.2 [ 139s] [369/393] installing dali-toolkit-devel-1.5.10-107.1 [ 139s] [370/393] installing dali-adaptor-devel-1.5.10-111.1 [ 139s] [371/393] installing ecore-file-devel-1.24.0-151.2 [ 139s] [372/393] installing capi-ui-efl-util-0.7.5-18.6 [ 140s] [373/393] installing ecore-imf-evas-devel-1.24.0-151.2 [ 140s] [374/393] installing elementary-devel-1.24.0-151.2 [ 140s] [375/393] installing eeze-devel-1.24.0-151.2 [ 140s] [376/393] installing efl-extension-0.1.7-71.1 [ 140s] [377/393] installing efl-extension-devel-0.1.7-71.1 [ 140s] [378/393] installing ecore-input-devel-1.24.0-151.2 [ 140s] [379/393] installing ecore-wl2-devel-1.24.0-151.2 [ 140s] [380/393] installing ecore-wayland-devel-1.24.0-151.2 [ 140s] [381/393] installing ecore-devel-1.24.0-151.2 [ 141s] [382/393] installing ecore-core-devel-1.24.0-151.2 [ 141s] [383/393] installing ecore-audio-devel-1.24.0-151.2 [ 141s] [384/393] installing ecore-buffer-devel-1.24.0-151.2 [ 141s] [385/393] installing ecore-fb-devel-1.24.0-151.2 [ 141s] [386/393] installing ecore-imf-devel-1.24.0-151.2 [ 141s] [387/393] installing ecore-ipc-devel-1.24.0-151.2 [ 141s] [388/393] installing eldbus-devel-1.24.0-151.2 [ 141s] [389/393] installing ecore-evas-devel-1.24.0-151.2 [ 141s] [390/393] installing efreet-devel-1.24.0-151.2 [ 141s] [391/393] installing cairo-devel-1.14.2-14.1 [ 141s] [392/393] installing eio-devel-1.24.0-151.2 [ 141s] [393/393] installing edje-devel-1.24.0-151.2 [ 141s] removing nis flags from /var/cache/build/root_1/etc/nsswitch.conf... [ 141s] now finalizing build dir... [ 141s] Running build time source services... [ 142s] build target is armv7l-tizen-linux [ 142s] ----------------------------------------------------------------- [ 142s] I have the following modifications for lightweight-web-engine.spec: [ 142s] 23c23 [ 142s] < Release: 1 [ 142s] --- [ 142s] > Release: 68.2 [ 142s] ----------------------------------------------------------------- [ 142s] ----- building lightweight-web-engine.spec (user abuild) [ 142s] ----------------------------------------------------------------- [ 142s] ----------------------------------------------------------------- [ 142s] + exec rpmbuild --define '_srcdefattr (-,root,root)' --nosignature --target=armv7l-tizen-linux --define '_build_create_debug 1' --define 'disturl obs://build.tizen.org/Tizen:Unified/standard/d8b4b5b250770a761f1eedf815b376d5-lightweight-web-engine' -ba /home/abuild/rpmbuild/SOURCES/lightweight-web-engine.spec [ 142s] Building target platforms: armv7l-tizen-linux [ 142s] Building for target armv7l-tizen-linux [ 142s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.wKOga4 [ 142s] + umask 022 [ 142s] + cd /home/abuild/rpmbuild/BUILD [ 142s] + cd /home/abuild/rpmbuild/BUILD [ 142s] + rm -rf lightweight-web-engine-1.0.0 [ 142s] + /bin/gzip -dc /home/abuild/rpmbuild/SOURCES/lightweight-web-engine-1.0.0.tar.gz [ 142s] + /bin/tar -xf - [ 145s] + STATUS=0 [ 145s] + '[' 0 -ne 0 ']' [ 145s] + cd lightweight-web-engine-1.0.0 [ 145s] + /bin/chmod -Rf a+rX,u+w,g-w,o-w . [ 145s] + exit 0 [ 145s] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.u6TIf5 [ 145s] + umask 022 [ 145s] + cd /home/abuild/rpmbuild/BUILD [ 145s] + cd lightweight-web-engine-1.0.0 [ 145s] + [[ arm == \a\a\r\c\h\6\4 ]] [ 145s] + LANG=C [ 145s] + export LANG [ 145s] + unset DISPLAY [ 145s] + CFLAGS='-O2 -g2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -fmessage-length=0 -frecord-gcc-switches -Wl,-z,relro,--as-needed --param=ssp-buffer-size=4 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -mthumb -Wp,-D__SOFTFP__ -Wl,-O1 -Wl,--hash-style=gnu -Wa,-mimplicit-it=thumb -g' [ 145s] + export CFLAGS [ 145s] + CXXFLAGS='-O2 -g2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -fmessage-length=0 -frecord-gcc-switches -Wl,-z,relro,--as-needed --param=ssp-buffer-size=4 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -mthumb -Wp,-D__SOFTFP__ -Wl,-O1 -Wl,--hash-style=gnu -Wa,-mimplicit-it=thumb -g' [ 145s] + export CXXFLAGS [ 145s] + FFLAGS='-O2 -g2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -fmessage-length=0 -frecord-gcc-switches -Wl,-z,relro,--as-needed --param=ssp-buffer-size=4 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -mthumb -Wp,-D__SOFTFP__ -Wl,-O1 -Wl,--hash-style=gnu -Wa,-mimplicit-it=thumb -g -I%_fmoddir' [ 145s] + export FFLAGS [ 145s] + LDFLAGS= [ 145s] + export LDFLAGS [ 145s] + echo 'Building for: ' all [ 145s] Building for: all [ 145s] + CXXFLAGS+=' -DSTARFISH_TIZEN_MAJOR_VERSION=6 ' [ 145s] + CXXFLAGS+=' -DSTARFISH_TIZEN_VERSION_6_0 ' [ 145s] + rm -f CMakeCache.txt [ 145s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_tv -DBACKEND=dali -DLTO=1 -DTARGETNAME=lightweight-web-engine-dali-plugin.tv -G Ninja [ 145s] -- The C compiler identification is GNU 9.2.0 [ 145s] -- The CXX compiler identification is GNU 9.2.0 [ 145s] -- Check for working C compiler: /bin/cc [ 145s] -- Check for working C compiler: /bin/cc -- works [ 145s] -- Detecting C compiler ABI info [ 145s] -- Detecting C compiler ABI info - done [ 145s] -- Detecting C compile features [ 146s] -- Detecting C compile features - done [ 146s] -- Check for working CXX compiler: /bin/c++ [ 146s] -- Check for working CXX compiler: /bin/c++ -- works [ 146s] -- Detecting CXX compiler ABI info [ 146s] -- Detecting CXX compiler ABI info - done [ 146s] -- Detecting CXX compile features [ 147s] -- Detecting CXX compile features - done [ 147s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 147s] -- Checking for modules 'dlog;libpng;freetype2;fontconfig;harfbuzz;elementary;ecore' [ 147s] -- Found dlog, version 1.0 [ 147s] -- Found libpng, version 1.6.37 [ 147s] -- Found freetype2, version 23.1.17 [ 148s] -- Found fontconfig, version 2.13.1 [ 148s] -- Found harfbuzz, version 2.6.4 [ 148s] -- Found elementary, version 1.24.0 [ 148s] -- Found ecore, version 1.24.0 [ 151s] -- Checking for module 'cairo' [ 151s] -- Found cairo, version 1.14.2 [ 152s] -- Checking for modules 'capi-network-connection;capi-media-player' [ 152s] -- Found capi-network-connection, version [ 153s] -- Found capi-media-player, version [ 153s] -- Looking for cap_set_flag in cap [ 153s] -- Looking for cap_set_flag in cap - not found [ 153s] -- Checking for module 'dlog' [ 153s] -- Found dlog, version 1.0 [ 154s] -- Starfish [ 154s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0 [ 154s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/out_tizen/unified_tv/release/lib/libtuv.sopthreadcurlsslcryptojpeggif-Llib/tizendali-coredali-adaptordali-toolkitrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine-dali-plugin.so.1dlogpng16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_imfecore_inputecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreefleoeinapthreadcairocapi-network-connectioncapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-base-common [ 154s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_ENABLE_MULTI_THREAD_IMAGE_DECODING-DSTARFISH_TIZEN_TV-DSTARFISH_TIZEN_CAPI_LOCATION_MANAGER_ENABLED-DNDEBUG-DSTARFISH_DALI [ 154s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 154s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/ecore-input-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/eeze-1/usr/include/libmount/usr/include/blkid/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-file-1/usr/include/ecore-ipc-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/usr/include/dali/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/network/usr/include/media/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 154s] -- Configuring done [ 155s] -- Generating done [ 155s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 155s] + ninja starfish.shared_library [ 156s] [1/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FullBox.cpp.o [ 156s] [2/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SCHI.cpp.o [ 156s] [3/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IPMC.cpp.o [ 156s] [4/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MDHD.cpp.o [ 156s] [5/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CPRT.cpp.o [ 156s] [6/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MFHD.cpp.o [ 156s] [7/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PADB.cpp.o [ 156s] [8/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SCHM.cpp.o [ 156s] [9/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IMIF.cpp.o [ 156s] [10/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.BXML.cpp.o [ 156s] [11/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PDIN.cpp.o [ 156s] [12/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.File.cpp.o [ 156s] [13/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PITM.cpp.o [ 156s] [14/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FTYP.cpp.o [ 156s] [15/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ContainerAtom.cpp.o [ 156s] [16/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.AVCC.cpp.o [ 157s] [17/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SMHD.cpp.o [ 157s] [18/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.BinaryStream.cpp.o [ 157s] [19/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.HMHD.cpp.o [ 157s] [20/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.HDLR.cpp.o [ 157s] [21/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IINF.cpp.o [ 157s] [22/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.DREF.cpp.o [ 157s] [23/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STDP.cpp.o [ 157s] [24/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MVHD.cpp.o [ 157s] [25/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MFRO.cpp.o [ 157s] [26/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ILOC.cpp.o [ 157s] [27/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FREE.cpp.o [ 157s] [28/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STCO.cpp.o [ 157s] [29/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.Atom.cpp.o [ 157s] [30/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MDAT.cpp.o [ 157s] [31/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MEHD.cpp.o [ 157s] [32/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FRMA.cpp.o [ 157s] [33/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MP4A.cpp.o [ 158s] [34/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CO64.cpp.o [ 158s] [35/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ELST.cpp.o [ 158s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 158s] from third_party/MP4Parse/source/include/stl.h:41, [ 158s] from third_party/MP4Parse/source/include/mp4.h:37, [ 158s] from third_party/MP4Parse/source/include/MP4.ELST.h:35, [ 158s] from third_party/MP4Parse/source/MP4.ELST.cpp:32: [ 158s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {long long unsigned int&, long long int&}; _Tp = MP4::ELST::EditEntry; _Alloc = std::allocator]': [ 158s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 158s] 426 | vector<_Tp, _Alloc>:: [ 158s] | ^~~~~~~~~~~~~~~~~~~ [ 158s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {long long unsigned int&, long long int&}; _Tp = MP4::ELST::EditEntry; _Alloc = std::allocator]': [ 158s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:121:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 158s] 121 | _M_realloc_insert(end(), std::forward<_Args>(__args)...); [ 158s] | ^~~~~~~~~~~~~~~~~ [ 158s] [36/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ESDS.cpp.o [ 158s] [37/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SGPD.cpp.o [ 158s] [38/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.Parser.cpp.o [ 158s] [39/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SDTP.cpp.o [ 158s] [40/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.DataAtom.cpp.o [ 158s] [41/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CTTS.cpp.o [ 158s] [42/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSS.cpp.o [ 158s] [43/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSH.cpp.o [ 158s] [44/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSD.cpp.o [ 158s] [45/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSZ.cpp.o [ 158s] [46/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SBGP.cpp.o [ 158s] [47/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSC.cpp.o [ 159s] [48/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SUBS.cpp.o [ 159s] [49/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STTS.cpp.o [ 159s] [50/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STZ2.cpp.o [ 159s] [51/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMallocPixelRef.cpp.o [ 159s] [52/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFDT.cpp.o [ 159s] [53/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TREF.cpp.o [ 159s] [54/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMath.cpp.o [ 159s] [55/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/ports/SkDebug_stdio.cpp.o [ 159s] [56/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFHD.cpp.o [ 159s] [57/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.UnknownAtom.cpp.o [ 159s] [58/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFRA.cpp.o [ 159s] [59/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.XML.cpp.o [ 159s] [60/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TREX.cpp.o [ 159s] [61/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/ports/SkMemory_malloc.cpp.o [ 159s] [62/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkUtils.cpp.o [ 159s] [63/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkPoint.cpp.o [ 159s] [64/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.UDTA.cpp.o [ 159s] [65/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TKHD.cpp.o [ 159s] [66/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.VMHD.cpp.o [ 159s] [67/1122] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TRUN.cpp.o [ 160s] [68/1122] Linking CXX shared library out_tizen/unified_tv/release/lib/libmp4parse.so [ 160s] [69/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkStringUtils.cpp.o [ 160s] [70/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkRect.cpp.o [ 160s] [71/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMatrix44.cpp.o [ 160s] [72/1122] Building CXX object CMakeFiles/webm.dir/third_party/webm/webvtt/webvttparser.cc.o [ 160s] [73/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkString.cpp.o [ 161s] [74/1122] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMatrix.cpp.o [ 161s] [75/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/LeakCheckerBridge.cpp.o [ 161s] [76/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ASTAllocator.cpp.o [ 161s] [77/1122] Linking CXX shared library out_tizen/unified_tv/release/lib/libskia_matrix.so [ 162s] [78/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/DebuggerTcp.cpp.o [ 162s] [79/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/CustomAllocator.cpp.o [ 162s] [80/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArrayBufferObject.cpp.o [ 162s] [81/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinProxy.cpp.o [ 163s] [82/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ast/Node.cpp.o [ 164s] [83/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/Heap.cpp.o [ 164s] [84/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/Debugger.cpp.o [ 165s] [85/1122] Building CXX object CMakeFiles/webm.dir/third_party/webm/mkvparser/mkvparser.cc.o [ 165s] [86/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArgumentsObject.cpp.o [ 165s] [87/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AsyncFromSyncIteratorObject.cpp.o [ 165s] [88/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ScriptParser.cpp.o [ 165s] [89/1122] Linking CXX shared library out_tizen/unified_tv/release/lib/libwebm.so [ 166s] [90/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/CodeBlock.cpp.o [ 166s] [91/1122] BUILD TUV [ 166s] rm -rf build [ 166s] mkdir -p ./build/noarch-tizen/release/cmake [ 166s] cmake -B./build/noarch-tizen/release/cmake -H./ -DCMAKE_TOOLCHAIN_FILE=./cmake/config/config_noarch-tizen.cmake -DCMAKE_BUILD_TYPE=release -DTARGET_PLATFORM=noarch-tizen -DBUILDTESTER=no -DBUILD_HOST_HELPER=no -DCREATE_SHARED_LIB=yes -DTUV_FEATURE_PROCESS=ON -DTARGET_BOARD=None [ 166s] -- The C compiler identification is GNU 9.2.0 [ 166s] -- Check for working C compiler: /bin/cc [ 166s] -- Check for working C compiler: /bin/cc -- works [ 166s] -- Detecting C compiler ABI info [ 166s] -- Detecting C compiler ABI info - done [ 166s] -- Detecting C compile features [ 166s] -- Detecting C compile features - done [ 166s] -- Build Type: [release] [ 166s] -- Configuring done [ 166s] -- Generating done [ 166s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake [ 166s] make -C ./build/noarch-tizen/release/cmake [ 166s] make[1]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] Scanning dependencies of target tuv_shared [ 166s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] Scanning dependencies of target tuv [ 166s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] [ 2%] Building C object CMakeFiles/tuv_shared.dir/src/tuv_debuglog.c.o [ 166s] [ 4%] Building C object CMakeFiles/tuv_shared.dir/src/unix/async.c.o [ 166s] [ 6%] Building C object CMakeFiles/tuv_shared.dir/src/unix/getaddrinfo.c.o [ 166s] [ 8%] Building C object CMakeFiles/tuv_shared.dir/src/unix/fs.c.o [ 166s] [ 10%] Building C object CMakeFiles/tuv_shared.dir/src/unix/core.c.o [ 166s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] [ 13%] Building C object CMakeFiles/tuv_shared.dir/src/threadpool.c.o [ 166s] [ 15%] Building C object CMakeFiles/tuv_shared.dir/src/uv-common.c.o [ 166s] [ 17%] Building C object CMakeFiles/tuv_shared.dir/src/inet.c.o [ 166s] [ 21%] Building C object CMakeFiles/tuv_shared.dir/src/unix/timer.c.o [ 166s] [ 23%] Building C object CMakeFiles/tuv_shared.dir/src/unix/linux-syscalls.c.o [ 166s] [ 26%] Building C object CMakeFiles/tuv_shared.dir/src/unix/pipe.c.o [ 166s] [ 28%] Building C object CMakeFiles/tuv.dir/src/unix/poll.c.o [ 166s] [ 30%] Building C object CMakeFiles/tuv_shared.dir/src/unix/signal.c.o [ 166s] [ 32%] Building C object CMakeFiles/tuv_shared.dir/src/unix/tcp.c.o [ 166s] [ 34%] Building C object CMakeFiles/tuv.dir/src/unix/core.c.o [ 166s] [ 36%] Building C object CMakeFiles/tuv_shared.dir/src/fs-poll.c.o [ 166s] [ 39%] Building C object CMakeFiles/tuv_shared.dir/src/unix/linux-core.c.o [ 166s] [ 41%] Building C object CMakeFiles/tuv_shared.dir/src/unix/thread.c.o [ 166s] [ 43%] Building C object CMakeFiles/tuv.dir/src/unix/fs.c.o [ 166s] [ 45%] Building C object CMakeFiles/tuv_shared.dir/src/unix/loop-watcher.c.o [ 166s] [ 45%] Building C object CMakeFiles/tuv_shared.dir/src/unix/udp.c.o [ 166s] [ 47%] Building C object CMakeFiles/tuv.dir/src/uv-common.c.o [ 166s] [ 50%] Building C object CMakeFiles/tuv.dir/src/unix/thread.c.o [ 166s] [ 52%] Building C object CMakeFiles/tuv.dir/src/inet.c.o [ 166s] [ 54%] Building C object CMakeFiles/tuv.dir/src/fs-poll.c.o [ 166s] [ 56%] Building C object CMakeFiles/tuv.dir/src/tuv_debuglog.c.o [ 166s] [ 58%] Building C object CMakeFiles/tuv.dir/src/unix/timer.c.o [ 166s] [ 60%] Building C object CMakeFiles/tuv.dir/src/unix/signal.c.o [ 166s] [ 63%] Building C object CMakeFiles/tuv.dir/src/unix/stream.c.o [ 166s] [ 65%] Building C object CMakeFiles/tuv_shared.dir/src/unix/process.c.o [ 166s] [ 69%] Building C object CMakeFiles/tuv_shared.dir/src/unix/poll.c.o [ 166s] [ 69%] Building C object CMakeFiles/tuv.dir/src/unix/linux-syscalls.c.o [ 166s] [ 71%] Building C object CMakeFiles/tuv.dir/src/unix/async.c.o [ 166s] [ 73%] Building C object CMakeFiles/tuv_shared.dir/src/unix/stream.c.o [ 166s] [ 76%] Building C object CMakeFiles/tuv.dir/src/unix/loop-watcher.c.o [ 166s] [ 78%] Building C object CMakeFiles/tuv.dir/src/unix/tcp.c.o [ 166s] [ 80%] Building C object CMakeFiles/tuv.dir/src/threadpool.c.o [ 166s] [ 82%] Building C object CMakeFiles/tuv.dir/src/unix/getaddrinfo.c.o [ 166s] [ 84%] Building C object CMakeFiles/tuv_shared.dir/src/unix/loop.c.o [ 166s] [ 86%] Building C object CMakeFiles/tuv.dir/src/unix/process.c.o [ 166s] [ 89%] Building C object CMakeFiles/tuv.dir/src/unix/udp.c.o [ 166s] [ 91%] Building C object CMakeFiles/tuv.dir/src/unix/linux-core.c.o [ 166s] [ 93%] Building C object CMakeFiles/tuv.dir/src/unix/pipe.c.o [ 166s] [ 95%] Building C object CMakeFiles/tuv.dir/src/unix/loop.c.o [ 166s] [ 97%] Linking C shared library ../lib/libtuv.so [ 166s] [100%] Linking C static library ../lib/libtuv.a [ 166s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] [100%] Built target tuv_shared [ 166s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] [100%] Built target tuv [ 166s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/build/noarch-tizen/release/cmake' [ 166s] [92/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/BoundFunctionObject.cpp.o [ 166s] [93/1122] COPY TUV [ 166s] [94/1122] cd /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 && echo TUV\ TARGET [ 166s] TUV TARGET [ 166s] [95/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Environment.cpp.o [ 166s] [96/1122] Building CXX object CMakeFiles/clipper.dir/third_party/clipper/cpp/clipper.cpp.o [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const ClipperLib::IntPoint&}; _Tp = ClipperLib::IntPoint; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 166s] 426 | vector<_Tp, _Alloc>:: [ 166s] | ^~~~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::ClipperOffset::AddPath(const Path&, ClipperLib::JoinType, ClipperLib::EndType)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::Clipper::BuildResult(ClipperLib::Paths&)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::Clipper::BuildResult2(ClipperLib::PolyTree&)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long int&}; _Tp = long long int; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector >::iterator' {aka '__gnu_cxx::__normal_iterator > >'} changed in GCC 7.1 [ 166s] 426 | vector<_Tp, _Alloc>:: [ 166s] | ^~~~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector >::iterator' {aka '__gnu_cxx::__normal_iterator > >'} changed in GCC 7.1 [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::Clipper::InsertScanbeam(ClipperLib::cInt)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator > >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {ClipperLib::IntPoint}; _Tp = ClipperLib::IntPoint; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 166s] 426 | vector<_Tp, _Alloc>:: [ 166s] | ^~~~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {ClipperLib::IntPoint}; _Tp = ClipperLib::IntPoint; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:121:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 121 | _M_realloc_insert(end(), std::forward<_Args>(__args)...); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::ClipperOffset::OffsetPoint(int, int&, ClipperLib::JoinType)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In function 'void ClipperLib::Minkowski(const Path&, const Path&, ClipperLib::Paths&, bool, bool)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {ClipperLib::DoublePoint}; _Tp = ClipperLib::DoublePoint; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 166s] 426 | vector<_Tp, _Alloc>:: [ 166s] | ^~~~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {ClipperLib::DoublePoint}; _Tp = ClipperLib::DoublePoint; _Alloc = std::allocator]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:121:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 121 | _M_realloc_insert(end(), std::forward<_Args>(__args)...); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 166s] from third_party/clipper/cpp/clipper.hpp:52, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::ClipperOffset::DoOffset(double)': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 166s] 1195 | _M_realloc_insert(end(), __x); [ 166s] | ^~~~~~~~~~~~~~~~~ [ 166s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/queue:62, [ 166s] from third_party/clipper/cpp/clipper.hpp:59, [ 166s] from third_party/clipper/cpp/clipper.cpp:41: [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >; _Distance = int; _Tp = long long int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 166s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:214:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator > >' changed in GCC 7.1 [ 166s] 214 | __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, [ 166s] | ^~~~~~~~~~~~~ [ 167s] [97/1122] Linking CXX shared library out_tizen/unified_tv/release/lib/libclipper.so [ 167s] [98/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/Script.cpp.o [ 167s] [99/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArrayObject.cpp.o [ 167s] [100/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/Lexer.cpp.o [ 168s] [101/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/BooleanObject.cpp.o [ 168s] [102/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 168s] [103/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AsyncGeneratorObject.cpp.o [ 168s] [104/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AtomicString.cpp.o [ 169s] [105/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Context.cpp.o [ 169s] [106/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/CompressibleString.cpp.o [ 169s] [107/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/DebuggerSha1.cpp.o [ 169s] [108/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCode.cpp.o [ 170s] [109/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ExecutionState.cpp.o [ 170s] [110/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 170s] [111/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 170s] [112/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ErrorObject.cpp.o [ 170s] [113/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 170s] [114/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/DateObject.cpp.o [ 170s] [115/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/EnumerateObject.cpp.o [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 170s] from third_party/escargot/src/Escargot.h:208, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In static member function 'static bool Escargot::EnumerateObjectWithDestruction::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)::::_FUN(Escargot::ExecutionState&, Escargot::Object*, const Escargot::ObjectPropertyName&, const Escargot::ObjectStructurePropertyDescriptor&, void*)': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1195 | _M_realloc_insert(end(), __x); [ 170s] | ^~~~~~~~~~~~~~~~~ [ 170s] third_party/escargot/src/runtime/EnumerateObject.cpp:141:5: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 170s] 141 | }, [ 170s] | ^ [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 170s] from third_party/escargot/src/Escargot.h:187, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In member function 'virtual void Escargot::EnumerateObjectWithDestruction::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1967:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1967 | std::__introsort_loop(__first, __last, [ 170s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ [ 170s] 1968 | std::__lg(__last - __first) * 2, [ 170s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] 1969 | __comp); [ 170s] | ~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1970:31: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1970 | std::__final_insertion_sort(__first, __last, __comp); [ 170s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 170s] from third_party/escargot/src/Escargot.h:208, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In static member function 'static bool Escargot::EnumerateObjectWithIteration::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)::::_FUN(Escargot::ExecutionState&, Escargot::Object*, const Escargot::ObjectPropertyName&, const Escargot::ObjectStructurePropertyDescriptor&, void*)': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1195 | _M_realloc_insert(end(), __x); [ 170s] | ^~~~~~~~~~~~~~~~~ [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 170s] from third_party/escargot/src/Escargot.h:187, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In member function 'virtual void Escargot::EnumerateObjectWithIteration::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1967:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1967 | std::__introsort_loop(__first, __last, [ 170s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ [ 170s] 1968 | std::__lg(__last - __first) * 2, [ 170s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] 1969 | __comp); [ 170s] | ~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1970:31: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1970 | std::__final_insertion_sort(__first, __last, __comp); [ 170s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 170s] from third_party/escargot/src/Escargot.h:208, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long unsigned int&}; _Tp = long long unsigned int; _Alloc = std::allocator]': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 170s] 426 | vector<_Tp, _Alloc>:: [ 170s] | ^~~~~~~~~~~~~~~~~~~ [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 170s] from third_party/escargot/src/Escargot.h:187, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Size = int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1939 | __introsort_loop(_RandomAccessIterator __first, [ 170s] | ^~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1953:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1953 | std::__introsort_loop(__cut, __last, __depth_limit, __comp); [ 170s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1879:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1879 | __final_insertion_sort(_RandomAccessIterator __first, [ 170s] | ^~~~~~~~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1879:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1884:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1884 | std::__insertion_sort(__first, __first + int(_S_threshold), __comp); [ 170s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1889:23: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1889 | std::__insertion_sort(__first, __last, __comp); [ 170s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 1839 | __insertion_sort(_RandomAccessIterator __first, [ 170s] | ^~~~~~~~~~~~~~~~ [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:61, [ 170s] from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 170s] from third_party/escargot/src/Escargot.h:187, [ 170s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Distance = int; _Tp = long long unsigned int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 170s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:214:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 170s] 214 | __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, [ 170s] | ^~~~~~~~~~~~~ [ 170s] [116/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 170s] [117/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 170s] [118/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 170s] [119/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 170s] [120/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 170s] [121/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 170s] [122/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 170s] [123/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 170s] [124/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncFromSyncIterator.cpp.o [ 170s] [125/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ExecutionPauser.cpp.o [ 170s] [126/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 171s] [127/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 171s] [128/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCodeGenerator.cpp.o [ 171s] [129/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 172s] [130/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 172s] [131/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 172s] [132/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCodeInterpreter.cpp.o [ 173s] [133/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/EnvironmentRecord.cpp.o [ 173s] [134/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 173s] [135/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 173s] [136/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 173s] [137/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 173s] [138/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 173s] [139/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 173s] [140/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/api/EscargotPublic.cpp.o [ 174s] [141/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 174s] [142/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 175s] [143/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 175s] [144/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 175s] [145/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 175s] [146/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 175s] [147/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 175s] [148/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 176s] [149/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 176s] [150/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 176s] [151/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 176s] [152/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 176s] [153/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 176s] [154/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 176s] [155/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 176s] [156/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 177s] [157/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 177s] [158/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 178s] [159/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 178s] [160/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 178s] [161/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 178s] [162/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 178s] [163/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 179s] [164/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 179s] [165/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 179s] [166/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 179s] [167/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 180s] [168/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 180s] [169/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 180s] [170/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 180s] [171/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 181s] [172/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 181s] [173/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 181s] [174/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 181s] [175/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 181s] [176/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 181s] [177/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 181s] [178/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 181s] [179/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 182s] [180/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 182s] [181/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 182s] [182/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 183s] [183/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 183s] [184/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 183s] [185/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 183s] [186/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 183s] [187/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 184s] [188/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 184s] [189/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 184s] [190/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 184s] [191/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 184s] [192/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 185s] [193/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 185s] [194/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 185s] [195/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 185s] [196/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 185s] [197/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 185s] [198/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 185s] [199/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 185s] [200/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 186s] [201/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 187s] [202/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 187s] [203/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 187s] [204/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 187s] [205/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 188s] [206/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 188s] [207/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 188s] [208/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 188s] [209/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 188s] [210/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 188s] [211/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 188s] [212/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 189s] [213/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 189s] [214/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 189s] [215/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 189s] [216/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 190s] [217/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 190s] [218/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 190s] [219/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 190s] [220/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 190s] [221/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 190s] [222/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 192s] [223/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 192s] [224/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 192s] [225/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 193s] [226/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 193s] [227/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 193s] [228/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 193s] [229/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 193s] [230/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 194s] [231/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 194s] [232/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 194s] [233/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 194s] [234/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 195s] [235/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 195s] [236/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 195s] [237/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 195s] [238/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 195s] [239/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 195s] [240/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 195s] [241/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 195s] [242/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 196s] [243/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 196s] [244/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 197s] [245/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 198s] [246/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 198s] [247/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 198s] [248/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 199s] [249/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 199s] [250/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 199s] [251/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 199s] [252/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 199s] [253/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 200s] [254/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 200s] [255/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 200s] [256/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 200s] [257/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 200s] [258/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 201s] [259/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 201s] [260/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 201s] [261/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 202s] [262/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 202s] [263/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 203s] [264/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 203s] [265/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 203s] [266/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 203s] [267/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 204s] [268/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 204s] [269/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 204s] [270/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 204s] [271/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 205s] [272/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 205s] [273/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 205s] [274/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 206s] [275/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 206s] [276/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 206s] [277/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 206s] [278/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 206s] [279/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 206s] [280/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 207s] [281/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 207s] [282/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 208s] [283/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 208s] [284/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 208s] [285/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 208s] [286/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 208s] [287/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 209s] [288/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 209s] [289/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 209s] [290/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 209s] [291/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 210s] [292/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 210s] [293/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 210s] [294/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 210s] [295/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 210s] [296/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 210s] [297/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 210s] [298/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 210s] [299/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 211s] [300/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 211s] [301/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 211s] [302/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 211s] [303/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 211s] [304/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 211s] [305/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 211s] [306/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 211s] [307/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 211s] [308/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 211s] [309/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 211s] [310/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 211s] [311/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 211s] [312/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 212s] [313/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 212s] [314/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 212s] [315/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 212s] [316/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 213s] [317/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 213s] [318/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 213s] [319/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 213s] [320/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 213s] [321/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 213s] [322/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 213s] [323/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 213s] [324/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 213s] [325/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 214s] [326/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 214s] [327/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/esprima_cpp/esprima.cpp.o [ 214s] [328/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 214s] [329/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 214s] [330/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 214s] [331/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 214s] [332/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 214s] [333/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 214s] [334/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 214s] [335/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 214s] [336/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 214s] [337/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 214s] [338/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 214s] [339/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 214s] [340/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 214s] [341/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 214s] [342/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 214s] [343/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 214s] [344/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 214s] [345/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 215s] [346/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 215s] [347/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 215s] [348/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 215s] [349/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 215s] [350/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 215s] [351/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 215s] [352/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 215s] [353/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 215s] [354/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 215s] [355/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 215s] [356/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 215s] [357/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 215s] [358/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 215s] [359/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 215s] [360/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 215s] [361/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 215s] [362/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 215s] [363/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 215s] [364/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 215s] [365/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 215s] [366/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 215s] [367/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 215s] [368/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 215s] [369/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 215s] [370/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 215s] [371/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 216s] [372/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 216s] [373/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 216s] [374/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 217s] [375/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 217s] [376/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 217s] [377/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 217s] [378/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 217s] [379/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 217s] [380/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 218s] [381/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 218s] [382/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 218s] [383/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 219s] [384/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 219s] [385/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 219s] [386/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 219s] [387/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 219s] [388/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 219s] [389/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 220s] [390/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 220s] [391/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 220s] [392/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 220s] [393/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 221s] [394/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 221s] [395/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 222s] [396/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 222s] [397/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 222s] [398/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 222s] [399/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 223s] [400/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 223s] [401/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 223s] [402/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 223s] [403/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 224s] [404/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 224s] [405/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 224s] [406/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 224s] [407/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 224s] [408/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 224s] [409/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 224s] [410/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 225s] [411/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 225s] [412/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 225s] [413/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 225s] [414/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 225s] [415/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 225s] [416/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 225s] [417/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 225s] [418/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 225s] [419/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 225s] [420/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 225s] [421/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 225s] [422/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 225s] [423/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 225s] [424/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 225s] [425/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 225s] [426/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 225s] [427/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 225s] [428/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 225s] [429/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 225s] [430/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 226s] [431/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 227s] [432/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 227s] [433/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 227s] [434/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 227s] [435/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 227s] [436/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 227s] [437/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 228s] [438/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 228s] [439/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 228s] [440/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 228s] [441/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 229s] [442/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 229s] [443/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 229s] [444/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 229s] [445/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 229s] [446/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 229s] [447/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 229s] [448/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 230s] [449/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 230s] [450/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 230s] [451/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 230s] [452/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 230s] [453/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 230s] [454/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 230s] [455/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 230s] [456/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 230s] [457/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 230s] [458/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 230s] [459/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 230s] [460/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 230s] [461/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 230s] [462/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 231s] [463/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 232s] [464/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 232s] [465/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 232s] [466/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 232s] [467/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 232s] [468/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 233s] [469/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 233s] [470/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 233s] [471/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 233s] [472/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 233s] [473/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 234s] [474/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 234s] [475/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 235s] [476/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 235s] [477/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 235s] [478/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 235s] [479/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 235s] [480/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 235s] [481/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 235s] [482/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 235s] [483/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 236s] [484/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 236s] [485/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 236s] [486/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 237s] [487/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 237s] [488/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 237s] [489/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 237s] [490/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 237s] [491/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 238s] [492/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 238s] [493/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 239s] [494/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 239s] [495/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 239s] [496/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 239s] [497/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 239s] [498/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 240s] [499/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 240s] [500/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 240s] [501/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 240s] [502/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 240s] [503/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 240s] [504/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 241s] [505/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 241s] [506/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 241s] [507/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 241s] [508/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 241s] [509/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 242s] [510/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 243s] [511/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 243s] [512/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 243s] [513/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 243s] [514/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 244s] [515/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 244s] [516/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 244s] [517/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 244s] [518/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 244s] [519/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 245s] [520/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 245s] [521/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 246s] [522/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 246s] [523/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 246s] [524/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 247s] [525/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 247s] [526/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 247s] [527/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 248s] [528/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 248s] [529/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 248s] [530/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 248s] [531/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 248s] [532/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 249s] [533/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 249s] [534/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 250s] [535/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 250s] [536/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 250s] [537/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 250s] [538/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 250s] [539/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 251s] [540/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 251s] [541/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 251s] [542/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 252s] [543/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 252s] [544/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 252s] [545/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 253s] [546/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 253s] [547/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 253s] [548/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 253s] [549/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 253s] [550/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 253s] [551/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 253s] [552/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 254s] [553/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 254s] [554/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 255s] [555/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 255s] [556/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 255s] [557/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 255s] [558/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 256s] [559/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 257s] [560/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 257s] [561/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 257s] [562/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 257s] [563/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 257s] [564/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 257s] [565/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 258s] [566/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 258s] [567/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 258s] [568/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 258s] [569/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 258s] [570/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 258s] [571/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 258s] [572/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 259s] [573/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 259s] [574/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 259s] [575/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 259s] [576/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 259s] [577/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 259s] [578/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 259s] [579/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 259s] [580/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 259s] [581/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 260s] [582/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 260s] [583/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 261s] [584/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 261s] [585/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 262s] [586/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 262s] [587/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 263s] [588/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 263s] [589/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 263s] [590/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 263s] [591/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 263s] [592/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 263s] [593/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 263s] [594/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 263s] [595/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 263s] [596/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 263s] [597/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 263s] [598/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 263s] [599/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 263s] [600/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 263s] [601/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 263s] [602/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 263s] [603/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 263s] [604/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 263s] [605/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 264s] [606/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 264s] [607/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 264s] [608/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 264s] [609/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 264s] [610/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 265s] [611/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 265s] [612/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 265s] [613/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 266s] [614/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 266s] [615/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 266s] [616/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 266s] [617/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 266s] [618/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 266s] [619/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 267s] [620/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 267s] [621/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 267s] [622/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 268s] [623/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 268s] [624/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 268s] [625/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 269s] [626/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 269s] [627/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 269s] [628/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 269s] [629/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 270s] [630/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 271s] [631/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 271s] [632/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 271s] [633/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 271s] [634/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 271s] [635/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 271s] [636/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 271s] [637/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 272s] [638/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 272s] [639/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 272s] [640/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 272s] [641/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 272s] [642/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 273s] [643/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 273s] [644/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 273s] [645/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 273s] [646/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 274s] [647/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 274s] [648/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 274s] [649/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 274s] [650/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 274s] [651/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 274s] [652/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 275s] [653/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 275s] [654/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 275s] [655/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 275s] [656/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 275s] [657/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 275s] [658/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 275s] [659/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 276s] [660/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 276s] [661/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 276s] [662/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 276s] [663/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 277s] [664/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 277s] [665/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 277s] [666/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 277s] [667/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 277s] [668/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 277s] [669/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 281s] [670/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 281s] [671/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 281s] [672/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 282s] [673/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 282s] [674/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 282s] [675/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 283s] [676/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 283s] [677/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 283s] [678/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 284s] [679/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 284s] [680/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 284s] [681/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 285s] [682/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 285s] [683/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 285s] [684/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 285s] [685/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 286s] [686/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 286s] [687/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 287s] [688/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 288s] [689/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 289s] [690/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 289s] [691/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 289s] [692/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 289s] [693/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 290s] [694/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 290s] [695/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 291s] [696/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 291s] [697/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 291s] [698/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 292s] [699/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 292s] [700/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 292s] [701/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 292s] [702/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 293s] [703/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 293s] [704/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 293s] [705/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 294s] [706/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 294s] [707/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 294s] [708/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 295s] [709/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 295s] [710/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 295s] [711/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 295s] [712/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 295s] [713/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 295s] [714/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 295s] [715/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 296s] [716/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 296s] [717/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 296s] [718/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 296s] [719/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 296s] [720/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 296s] [721/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 296s] [722/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 296s] [723/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 296s] [724/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 296s] [725/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 296s] [726/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 296s] [727/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 296s] [728/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 296s] [729/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 296s] [730/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 296s] [731/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 296s] [732/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 296s] [733/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 296s] [734/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 297s] [735/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 297s] [736/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 297s] [737/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 297s] [738/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 297s] [739/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 297s] [740/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 297s] [741/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 297s] [742/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 297s] [743/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 297s] [744/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 297s] [745/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 297s] [746/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 297s] [747/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 297s] [748/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 297s] [749/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 297s] [750/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 297s] [751/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 297s] [752/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 297s] [753/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 297s] [754/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 297s] [755/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 297s] [756/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 297s] [757/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 297s] [758/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 297s] [759/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 297s] [760/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 297s] [761/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 298s] [762/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 298s] [763/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 298s] [764/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 298s] [765/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 299s] [766/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 299s] [767/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 299s] [768/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 299s] [769/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 299s] [770/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 299s] [771/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 299s] [772/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 299s] [773/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 299s] [774/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 299s] [775/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 299s] [776/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 299s] [777/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 299s] [778/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 299s] [779/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 300s] [780/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 300s] [781/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 300s] [782/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 300s] [783/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 300s] [784/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 300s] [785/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 300s] [786/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 300s] [787/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 300s] [788/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 300s] [789/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 300s] [790/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 300s] [791/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 300s] [792/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 300s] [793/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 300s] [794/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 300s] [795/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 300s] [796/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 300s] [797/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 300s] [798/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 301s] [799/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 301s] [800/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 301s] [801/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 301s] [802/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 301s] [803/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 301s] [804/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 301s] [805/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 301s] [806/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 301s] [807/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 301s] [808/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 301s] [809/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 301s] [810/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 301s] [811/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 302s] [812/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 302s] [813/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 302s] [814/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 302s] [815/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 302s] [816/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 302s] [817/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 302s] [818/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 302s] [819/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 303s] [820/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 303s] [821/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 303s] [822/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 305s] [823/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 305s] [824/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 305s] [825/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 305s] [826/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 305s] [827/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 306s] [828/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 306s] [829/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 306s] [830/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 306s] [831/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 306s] [832/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 306s] [833/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 307s] [834/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 307s] [835/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 307s] [836/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 307s] [837/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 308s] [838/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 308s] [839/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 309s] [840/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 309s] [841/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 309s] [842/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 309s] [843/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 310s] [844/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 310s] [845/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 311s] [846/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 311s] [847/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 311s] [848/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 311s] [849/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 312s] [850/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 312s] [851/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 312s] [852/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 313s] [853/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 313s] [854/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 313s] [855/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 314s] [856/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 314s] [857/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 314s] [858/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 314s] [859/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 314s] [860/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 314s] [861/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 315s] [862/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 316s] [863/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 316s] [864/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 316s] [865/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 316s] [866/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 316s] [867/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 316s] [868/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 316s] [869/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 316s] [870/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 317s] [871/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 317s] [872/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 317s] [873/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 317s] [874/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 318s] [875/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 318s] [876/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 318s] [877/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 318s] [878/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 319s] [879/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 319s] [880/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 319s] [881/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 319s] [882/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 319s] [883/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 319s] [884/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 319s] [885/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 319s] [886/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 319s] [887/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 319s] [888/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 320s] [889/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 320s] [890/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 320s] [891/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 321s] [892/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 321s] [893/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 322s] [894/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 322s] [895/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 322s] [896/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 322s] [897/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 322s] [898/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 322s] [899/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 322s] [900/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 322s] [901/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 322s] [902/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 323s] [903/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 324s] [904/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 324s] [905/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 324s] [906/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 324s] [907/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 324s] [908/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 324s] [909/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 324s] [910/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 324s] [911/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 324s] [912/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 325s] [913/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 325s] [914/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 325s] [915/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 326s] [916/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 326s] [917/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 326s] [918/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 326s] [919/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 326s] [920/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 327s] [921/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 327s] [922/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 327s] [923/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 327s] [924/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 327s] [925/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 327s] [926/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 327s] [927/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 327s] [928/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 327s] [929/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 327s] [930/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 328s] [931/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 328s] [932/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 328s] [933/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 328s] [934/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 328s] [935/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 328s] [936/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 328s] [937/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 328s] [938/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 328s] [939/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 328s] [940/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 328s] [941/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 329s] [942/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 329s] [943/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 329s] [944/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 329s] [945/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 329s] [946/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 329s] [947/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 329s] [948/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 329s] [949/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 329s] [950/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 329s] [951/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 329s] [952/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 329s] [953/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 329s] [954/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 329s] [955/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 329s] [956/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 330s] [957/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 330s] [958/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 330s] [959/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 330s] [960/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 331s] [961/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 331s] [962/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 331s] [963/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 332s] [964/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 332s] [965/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 332s] [966/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 332s] [967/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 332s] [968/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 332s] [969/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 332s] [970/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 332s] [971/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 332s] [972/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 332s] [973/1122] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 332s] [974/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 333s] [975/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 333s] [976/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 334s] [977/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 334s] [978/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 334s] [979/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 334s] [980/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 335s] [981/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 335s] [982/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 335s] [983/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GeneratorObject.cpp.o [ 335s] [984/1122] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 335s] [985/1122] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 336s] [986/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 336s] [987/1122] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 336s] [988/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncFunction.cpp.o [ 336s] [989/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 336s] [990/1122] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 336s] [991/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/FunctionObject.cpp.o [ 337s] [992/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinBoolean.cpp.o [ 337s] [993/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncIterator.cpp.o [ 337s] [994/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncGeneratorFunction.cpp.o [ 338s] [995/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObject.cpp.o [ 338s] [996/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinIterator.cpp.o [ 338s] [997/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinGeneratorFunction.cpp.o [ 339s] [998/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinError.cpp.o [ 339s] [999/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinFunction.cpp.o [ 339s] [1000/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinDataView.cpp.o [ 340s] [1001/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinDate.cpp.o [ 340s] [1002/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinMap.cpp.o [ 340s] [1003/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinNumber.cpp.o [ 340s] [1004/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinReflect.cpp.o [ 340s] [1005/1122] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 340s] [1006/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinPromise.cpp.o [ 340s] [1007/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinMath.cpp.o [ 341s] [1008/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinArray.cpp.o [ 341s] [1009/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinIntl.cpp.o [ 341s] [1010/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinSymbol.cpp.o [ 341s] [1011/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinObject.cpp.o [ 342s] [1012/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinSet.cpp.o [ 342s] [1013/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinWeakMap.cpp.o [ 343s] [1014/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IEEE754.cpp.o [ 343s] third_party/escargot/src/runtime/IEEE754.cpp: In function 'double Escargot::ieee754::ceil(double)': [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:86:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] [ 343s] 86 | #define __LO(x) *(int *)&x [ 343s] | ^~~~~~~~~ [ 343s] 87 | #define __HIp(x) *(1 + (int *)x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 88 | #define __LOp(x) *(int *)x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 89 | [ 343s] | [ 343s] 90 | #else [ 343s] | ~~~~~ [ 343s] 91 | [ 343s] | [ 343s] 92 | typedef union { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 93 | double value; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 94 | struct { [ 343s] | ~~~~~~~~ [ 343s] 95 | uint32_t msw; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 96 | uint32_t lsw; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 97 | } parts; [ 343s] | ~~~~~~~~ [ 343s] 98 | struct { [ 343s] | ~~~~~~~~ [ 343s] 99 | uint64_t w; [ 343s] | ~~~~~~~~~~~ [ 343s] 100 | } xparts; [ 343s] | ~~~~~~~~~ [ 343s] 101 | } ieee_double_shape_type; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 102 | [ 343s] | [ 343s] 103 | #define __HI(x) *(int *)&x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 104 | #define __LO(x) *(1 + (int *)&x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 105 | #define __HIp(x) *(int *)x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 106 | #define __LOp(x) *(1 + (int *)x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 107 | [ 343s] | [ 343s] 108 | #endif [ 343s] | ~~~~~~ [ 343s] 109 | [ 343s] | [ 343s] 110 | /* Get two 32 bit ints from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 111 | [ 343s] | [ 343s] 112 | #define EXTRACT_WORDS(ix0, ix1, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 113 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 114 | ieee_double_shape_type ew_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 115 | ew_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 116 | (ix0) = ew_u.parts.msw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 117 | (ix1) = ew_u.parts.lsw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 118 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 119 | [ 343s] | [ 343s] 120 | /* Get a 64-bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 121 | #define EXTRACT_WORD64(ix, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 122 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 123 | ieee_double_shape_type ew_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 124 | ew_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 125 | (ix) = ew_u.xparts.w; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 126 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 127 | [ 343s] | [ 343s] 128 | /* Get the more significant 32 bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 129 | [ 343s] | [ 343s] 130 | #define GET_HIGH_WORD(i, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 131 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 132 | ieee_double_shape_type gh_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 133 | gh_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 134 | (i) = gh_u.parts.msw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 135 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 136 | [ 343s] | [ 343s] 137 | /* Get the less significant 32 bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 138 | [ 343s] | [ 343s] 139 | #define GET_LOW_WORD(i, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 140 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 141 | ieee_double_shape_type gl_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 142 | gl_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 143 | (i) = gl_u.parts.lsw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 144 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 145 | [ 343s] | [ 343s] 146 | /* Set a double from two 32 bit ints. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 147 | [ 343s] | [ 343s] 148 | #define INSERT_WORDS(d, ix0, ix1) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 149 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 150 | ieee_double_shape_type iw_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 151 | iw_u.parts.msw = (ix0); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 152 | iw_u.parts.lsw = (ix1); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 153 | (d) = iw_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 154 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 155 | [ 343s] | [ 343s] 156 | /* Set a double from a 64-bit int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 157 | #define INSERT_WORD64(d, ix) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 158 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 159 | ieee_double_shape_type iw_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 160 | iw_u.xparts.w = (ix); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 161 | (d) = iw_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 162 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 163 | [ 343s] | [ 343s] 164 | /* Set the more significant 32 bits of a double from an int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 165 | [ 343s] | [ 343s] 166 | #define SET_HIGH_WORD(d, v) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 167 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 168 | ieee_double_shape_type sh_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 169 | sh_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 170 | sh_u.parts.msw = (v); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 171 | (d) = sh_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 172 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 173 | [ 343s] | [ 343s] 174 | /* Set the less significant 32 bits of a double from an int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 175 | [ 343s] | [ 343s] 176 | #define SET_LOW_WORD(d, v) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 177 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 178 | ieee_double_shape_type sl_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 179 | sl_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 180 | sl_u.parts.lsw = (v); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 181 | (d) = sl_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 182 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 183 | [ 343s] | [ 343s] 184 | /* Support macro. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 185 | [ 343s] | [ 343s] 186 | #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 187 | [ 343s] | [ 343s] 188 | int32_t __ieee754_rem_pio2(double x, double *y) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 189 | double __kernel_cos(double x, double y) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 190 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 191 | const int32_t *ipio2) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 192 | double __kernel_sin(double x, double y, int iy) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 193 | [ 343s] | [ 343s] 194 | /* __ieee754_rem_pio2(x,y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 195 | * [ 343s] | ~ [ 343s] 196 | * return the remainder of x rem pi/2 in y[0]+y[1] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 197 | * use __kernel_rem_pio2() [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 198 | */ [ 343s] | ~~ [ 343s] 199 | int32_t __ieee754_rem_pio2(double x, double *y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 200 | { [ 343s] | ~ [ 343s] 201 | /* [ 343s] | ~~ [ 343s] 202 | * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 203 | */ [ 343s] | ~~ [ 343s] 204 | constexpr int32_t two_over_pi[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 205 | 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 206 | 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 207 | 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 208 | 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 209 | 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 210 | 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 211 | 0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 212 | 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 213 | 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 214 | 0x73A8C9, 0x60E27B, 0xC08C6B, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 215 | }; [ 343s] | ~~ [ 343s] 216 | [ 343s] | [ 343s] 217 | constexpr int32_t npio2_hw[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 218 | 0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 219 | 0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 220 | 0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 221 | 0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 222 | 0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 223 | 0x404858EB, 0x404921FB, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 224 | }; [ 343s] | ~~ [ 343s] 225 | [ 343s] | [ 343s] 226 | /* [ 343s] | ~~ [ 343s] 227 | * invpio2: 53 bits of 2/pi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 228 | * pio2_1: first 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 229 | * pio2_1t: pi/2 - pio2_1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 230 | * pio2_2: second 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 231 | * pio2_2t: pi/2 - (pio2_1+pio2_2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 232 | * pio2_3: third 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 233 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 234 | */ [ 343s] | ~~ [ 343s] 235 | [ 343s] | [ 343s] 236 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 237 | zero [ 343s] | ~~~~ [ 343s] 238 | = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 239 | half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 240 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 241 | invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 242 | pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 243 | pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 244 | pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 245 | pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 246 | pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 247 | pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 248 | [ 343s] | [ 343s] 249 | double z, w, t, r, fn; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 250 | double tx[3]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 251 | int32_t e0, i, j, nx, n, ix, hx; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 252 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 253 | [ 343s] | [ 343s] 254 | z = 0; [ 343s] | ~~~~~~ [ 343s] 255 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 256 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 257 | if (ix <= 0x3FE921FB) { /* |x| ~<= pi/4 , no need for reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 258 | y[0] = x; [ 343s] | ~~~~~~~~~ [ 343s] 259 | y[1] = 0; [ 343s] | ~~~~~~~~~ [ 343s] 260 | return 0; [ 343s] | ~~~~~~~~~ [ 343s] 261 | } [ 343s] | ~ [ 343s] 262 | if (ix < 0x4002D97C) { /* |x| < 3pi/4, special case with n=+-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 263 | if (hx > 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 264 | z = x - pio2_1; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 265 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 266 | y[0] = z - pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 267 | y[1] = (z - y[0]) - pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 268 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 269 | z -= pio2_2; [ 343s] | ~~~~~~~~~~~~ [ 343s] 270 | y[0] = z - pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 271 | y[1] = (z - y[0]) - pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 272 | } [ 343s] | ~ [ 343s] 273 | return 1; [ 343s] | ~~~~~~~~~ [ 343s] 274 | } else { /* negative x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 275 | z = x + pio2_1; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 276 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 277 | y[0] = z + pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 278 | y[1] = (z - y[0]) + pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 279 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 280 | z += pio2_2; [ 343s] | ~~~~~~~~~~~~ [ 343s] 281 | y[0] = z + pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 282 | y[1] = (z - y[0]) + pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 283 | } [ 343s] | ~ [ 343s] 284 | return -1; [ 343s] | ~~~~~~~~~~ [ 343s] 285 | } [ 343s] | ~ [ 343s] 286 | } [ 343s] | ~ [ 343s] 287 | if (ix <= 0x413921FB) { /* |x| ~<= 2^19*(pi/2), medium size */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 288 | t = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 289 | n = static_cast(t * invpio2 + half); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 290 | fn = static_cast(n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 291 | r = t - fn * pio2_1; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 292 | w = fn * pio2_1t; /* 1st round good to 85 bit */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 293 | if (n < 32 && ix != npio2_hw[n - 1]) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 294 | y[0] = r - w; /* quick check no cancellation */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 295 | } else { [ 343s] | ~~~~~~~~ [ 343s] 296 | uint32_t high; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 297 | j = ix >> 20; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 298 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 299 | GET_HIGH_WORD(high, y[0]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 300 | i = j - ((high >> 20) & 0x7FF); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 301 | if (i > 16) { /* 2nd iteration needed, good to 118 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 302 | t = r; [ 343s] | ~~~~~~ [ 343s] 303 | w = fn * pio2_2; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 304 | r = t - w; [ 343s] | ~~~~~~~~~~ [ 343s] 305 | w = fn * pio2_2t - ((t - r) - w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 306 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 307 | GET_HIGH_WORD(high, y[0]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 308 | i = j - ((high >> 20) & 0x7FF); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 309 | if (i > 49) { /* 3rd iteration need, 151 bits acc */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 310 | t = r; /* will cover all possible cases */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 311 | w = fn * pio2_3; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 312 | r = t - w; [ 343s] | ~~~~~~~~~~ [ 343s] 313 | w = fn * pio2_3t - ((t - r) - w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 314 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 315 | } [ 343s] | ~ [ 343s] 316 | } [ 343s] | ~ [ 343s] 317 | } [ 343s] | ~ [ 343s] 318 | y[1] = (r - y[0]) - w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 319 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 320 | y[0] = -y[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 321 | y[1] = -y[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 322 | return -n; [ 343s] | ~~~~~~~~~~ [ 343s] 323 | } else { [ 343s] | ~~~~~~~~ [ 343s] 324 | return n; [ 343s] | ~~~~~~~~~ [ 343s] 325 | } [ 343s] | ~ [ 343s] 326 | } [ 343s] | ~ [ 343s] 327 | /* [ 343s] | ~~ [ 343s] 328 | * all other (large) arguments [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 329 | */ [ 343s] | ~~ [ 343s] 330 | if (ix >= 0x7FF00000) { /* x is inf or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 331 | y[0] = y[1] = x - x; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 332 | return 0; [ 343s] | ~~~~~~~~~ [ 343s] 333 | } [ 343s] | ~ [ 343s] 334 | /* set z = scalbn(|x|,ilogb(x)-23) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 335 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 336 | SET_LOW_WORD(z, low); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 337 | e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 338 | SET_HIGH_WORD(z, ix - static_cast(e0 << 20)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 339 | for (i = 0; i < 2; i++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 340 | tx[i] = static_cast(static_cast(z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 341 | z = (z - tx[i]) * two24; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 342 | } [ 343s] | ~ [ 343s] 343 | tx[2] = z; [ 343s] | ~~~~~~~~~~ [ 343s] 344 | nx = 3; [ 343s] | ~~~~~~~ [ 343s] 345 | while (tx[nx - 1] == zero) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 346 | nx--; /* skip zero term */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 347 | n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 348 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 349 | y[0] = -y[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 350 | y[1] = -y[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 351 | return -n; [ 343s] | ~~~~~~~~~~ [ 343s] 352 | } [ 343s] | ~ [ 343s] 353 | return n; [ 343s] | ~~~~~~~~~ [ 343s] 354 | } [ 343s] | ~ [ 343s] 355 | [ 343s] | [ 343s] 356 | /* __kernel_cos( x, y ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 357 | * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 358 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 359 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 360 | * [ 343s] | ~ [ 343s] 361 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 362 | * 1. Since cos(-x) = cos(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 363 | * 2. if x < 2^-27 (hx<0x3E400000 0), return 1 with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 364 | * 3. cos(x) is approximated by a polynomial of degree 14 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 365 | * [0,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 366 | * 4 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 367 | * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 368 | * where the remez error is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 369 | * [ 343s] | ~ [ 343s] 370 | * | 2 4 6 8 10 12 14 | -58 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 371 | * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 372 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 373 | * [ 343s] | ~ [ 343s] 374 | * 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 375 | * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 376 | * cos(x) = 1 - x*x/2 + r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 377 | * since cos(x+y) ~ cos(x) - sin(x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 378 | * ~ cos(x) - x*y, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 379 | * a correction term is necessary in cos(x) and hence [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 380 | * cos(x+y) = 1 - (x*x/2 - (r - x*y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 381 | * For better accuracy when x > 0.3, let qx = |x|/4 with [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 382 | * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 383 | * Then [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 384 | * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 385 | * Note that 1-qx and (x*x/2-qx) is EXACT here, and the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 386 | * magnitude of the latter is at least a quarter of x*x/2, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 387 | * thus, reducing the rounding error in the subtraction. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 388 | */ [ 343s] | ~~ [ 343s] 389 | ALWAYS_INLINE double __kernel_cos(double x, double y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 390 | { [ 343s] | ~ [ 343s] 391 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 392 | one [ 343s] | ~~~ [ 343s] 393 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 394 | C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 395 | C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 396 | C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 397 | C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 398 | C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 399 | C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 400 | [ 343s] | [ 343s] 401 | double a, iz, z, r, qx; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 402 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 403 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 404 | ix &= 0x7FFFFFFF; /* ix = |x|'s high word*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 405 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* if x < 2**27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 406 | return one; /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 407 | } [ 343s] | ~ [ 343s] 408 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 409 | r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 410 | if (ix < 0x3FD33333) { /* if |x| < 0.3 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 411 | return one - (0.5 * z - (z * r - x * y)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 412 | } else { [ 343s] | ~~~~~~~~ [ 343s] 413 | if (ix > 0x3FE90000) { /* x > 0.78125 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 414 | qx = 0.28125; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 415 | } else { [ 343s] | ~~~~~~~~ [ 343s] 416 | INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 417 | } [ 343s] | ~ [ 343s] 418 | iz = 0.5 * z - qx; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 419 | a = one - qx; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 420 | return a - (iz - (z * r - x * y)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 421 | } [ 343s] | ~ [ 343s] 422 | } [ 343s] | ~ [ 343s] 423 | [ 343s] | [ 343s] 424 | /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 425 | * double x[],y[]; int e0,nx,prec; int ipio2[]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 426 | * [ 343s] | ~ [ 343s] 427 | * __kernel_rem_pio2 return the last three digits of N with [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 428 | * y = x - N*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 429 | * so that |y| < pi/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 430 | * [ 343s] | ~ [ 343s] 431 | * The method is to compute the integer (mod 8) and fraction parts of [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 432 | * (2/pi)*x without doing the full multiplication. In general we [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 433 | * skip the part of the product that are known to be a huge integer ( [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 434 | * more accurately, = 0 mod 8 ). Thus the number of operations are [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 435 | * independent of the exponent of the input. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 436 | * [ 343s] | ~ [ 343s] 437 | * (2/pi) is represented by an array of 24-bit integers in ipio2[]. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 438 | * [ 343s] | ~ [ 343s] 439 | * Input parameters: [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 440 | * x[] The input value (must be positive) is broken into nx [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 441 | * pieces of 24-bit integers in double precision format. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 442 | * x[i] will be the i-th 24 bit of x. The scaled exponent [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 443 | * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 444 | * match x's up to 24 bits. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 445 | * [ 343s] | ~ [ 343s] 446 | * Example of breaking a double positive z into x[0]+x[1]+x[2]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 447 | * e0 = ilogb(z)-23 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 448 | * z = scalbn(z,-e0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 449 | * for i = 0,1,2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 450 | * x[i] = floor(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 451 | * z = (z-x[i])*2**24 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 452 | * [ 343s] | ~ [ 343s] 453 | * [ 343s] | ~ [ 343s] 454 | * y[] output result in an array of double precision numbers. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 455 | * The dimension of y[] is: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 456 | * 24-bit precision 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 457 | * 53-bit precision 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 458 | * 64-bit precision 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 459 | * 113-bit precision 3 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 460 | * The actual value is the sum of them. Thus for 113-bit [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 461 | * precison, one may have to do something like: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 462 | * [ 343s] | ~ [ 343s] 463 | * long double t,w,r_head, r_tail; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 464 | * t = (long double)y[2] + (long double)y[1]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 465 | * w = (long double)y[0]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 466 | * r_head = t+w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 467 | * r_tail = w - (r_head - t); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 468 | * [ 343s] | ~ [ 343s] 469 | * e0 The exponent of x[0] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 470 | * [ 343s] | ~ [ 343s] 471 | * nx dimension of x[] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 472 | * [ 343s] | ~ [ 343s] 473 | * prec an integer indicating the precision: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 474 | * 0 24 bits (single) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 475 | * 1 53 bits (double) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 476 | * 2 64 bits (extended) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 477 | * 3 113 bits (quad) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 478 | * [ 343s] | ~ [ 343s] 479 | * ipio2[] [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 480 | * integer array, contains the (24*i)-th to (24*i+23)-th [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 481 | * bit of 2/pi after binary point. The corresponding [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 482 | * floating value is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 483 | * [ 343s] | ~ [ 343s] 484 | * ipio2[i] * 2^(-24(i+1)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 485 | * [ 343s] | ~ [ 343s] 486 | * External function: [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 487 | * double scalbn(), floor(); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 488 | * [ 343s] | ~ [ 343s] 489 | * [ 343s] | ~ [ 343s] 490 | * Here is the description of some local variables: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 491 | * [ 343s] | ~ [ 343s] 492 | * jk jk+1 is the initial number of terms of ipio2[] needed [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 493 | * in the computation. The recommended value is 2,3,4, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 494 | * 6 for single, double, extended,and quad. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 495 | * [ 343s] | ~ [ 343s] 496 | * jz local integer variable indicating the number of [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 497 | * terms of ipio2[] used. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 498 | * [ 343s] | ~ [ 343s] 499 | * jx nx - 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 500 | * [ 343s] | ~ [ 343s] 501 | * jv index for pointing to the suitable ipio2[] for the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 502 | * computation. In general, we want [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 503 | * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 504 | * is an integer. Thus [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 505 | * e0-3-24*jv >= 0 or (e0-3)/24 >= jv [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 506 | * Hence jv = max(0,(e0-3)/24). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 507 | * [ 343s] | ~ [ 343s] 508 | * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 509 | * [ 343s] | ~ [ 343s] 510 | * q[] double array with integral value, representing the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 511 | * 24-bits chunk of the product of x and 2/pi. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 512 | * [ 343s] | ~ [ 343s] 513 | * q0 the corresponding exponent of q[0]. Note that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 514 | * exponent for q[i] would be q0-24*i. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 515 | * [ 343s] | ~ [ 343s] 516 | * PIo2[] double precision array, obtained by cutting pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 517 | * into 24 bits chunks. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 518 | * [ 343s] | ~ [ 343s] 519 | * f[] ipio2[] in floating point [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 520 | * [ 343s] | ~ [ 343s] 521 | * iq[] integer array by breaking up q[] in 24-bits chunk. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 522 | * [ 343s] | ~ [ 343s] 523 | * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 524 | * [ 343s] | ~ [ 343s] 525 | * ih integer. If >0 it indicates q[] is >= 0.5, hence [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 526 | * it also indicates the *sign* of the result. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 527 | * [ 343s] | ~ [ 343s] 528 | */ [ 343s] | ~~ [ 343s] 529 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 530 | const int32_t *ipio2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 531 | { [ 343s] | ~ [ 343s] 532 | /* Constants: [ 343s] | ~~~~~~~~~~~~~ [ 343s] 533 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 534 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 535 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 536 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 537 | */ [ 343s] | ~~ [ 343s] 538 | constexpr int init_jk[] = { 2, 3, 4, 6 }; /* initial value for jk */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 539 | [ 343s] | [ 343s] 540 | constexpr double PIo2[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 541 | 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 542 | 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 543 | 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 544 | 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 545 | 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 546 | 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 547 | 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 548 | 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 549 | }; [ 343s] | ~~ [ 343s] 550 | [ 343s] | [ 343s] 551 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 552 | zero [ 343s] | ~~~~ [ 343s] 553 | = 0.0, [ 343s] | ~~~~~~ [ 343s] 554 | one = 1.0, [ 343s] | ~~~~~~~~~~ [ 343s] 555 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 556 | twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 557 | [ 343s] | [ 343s] 558 | int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 559 | double z, fw, f[20], fq[20], q[20]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 560 | [ 343s] | [ 343s] 561 | /* initialize jk*/ [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 562 | jk = init_jk[prec]; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 563 | jp = jk; [ 343s] | ~~~~~~~~ [ 343s] 564 | [ 343s] | [ 343s] 565 | /* determine jx,jv,q0, note that 3>q0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 566 | jx = nx - 1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 567 | jv = (e0 - 3) / 24; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 568 | if (jv < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 569 | jv = 0; [ 343s] | ~~~~~~~ [ 343s] 570 | q0 = e0 - 24 * (jv + 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 571 | [ 343s] | [ 343s] 572 | /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 573 | j = jv - jx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 574 | m = jx + jk; [ 343s] | ~~~~~~~~~~~~ [ 343s] 575 | for (i = 0; i <= m; i++, j++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 576 | f[i] = (j < 0) ? zero : static_cast(ipio2[j]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 577 | } [ 343s] | ~ [ 343s] 578 | [ 343s] | [ 343s] 579 | /* compute q[0],q[1],...q[jk] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 580 | for (i = 0; i <= jk; i++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 581 | for (j = 0, fw = 0.0; j <= jx; j++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 582 | fw += x[j] * f[jx + i - j]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 583 | q[i] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 584 | } [ 343s] | ~ [ 343s] 585 | [ 343s] | [ 343s] 586 | jz = jk; [ 343s] | ~~~~~~~~ [ 343s] 587 | recompute: [ 343s] | ~~~~~~~~~~ [ 343s] 588 | /* distill q[] into iq[] reversingly */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 589 | for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 590 | fw = static_cast(static_cast(twon24 * z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 591 | iq[i] = static_cast(z - two24 * fw); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 592 | z = q[j - 1] + fw; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 593 | } [ 343s] | ~ [ 343s] 594 | [ 343s] | [ 343s] 595 | /* compute n */ [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 596 | z = scalbn(z, q0); /* actual value of z */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 597 | z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 598 | n = static_cast(z); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 599 | z -= static_cast(n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 600 | ih = 0; [ 343s] | ~~~~~~~ [ 343s] 601 | if (q0 > 0) { /* need iq[jz-1] to determine n */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 602 | i = (iq[jz - 1] >> (24 - q0)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 603 | n += i; [ 343s] | ~~~~~~~ [ 343s] 604 | iq[jz - 1] -= i << (24 - q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 605 | ih = iq[jz - 1] >> (23 - q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 606 | } else if (q0 == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 607 | ih = iq[jz - 1] >> 23; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 608 | } else if (z >= 0.5) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 609 | ih = 2; [ 343s] | ~~~~~~~ [ 343s] 610 | } [ 343s] | ~ [ 343s] 611 | [ 343s] | [ 343s] 612 | if (ih > 0) { /* q > 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 613 | n += 1; [ 343s] | ~~~~~~~ [ 343s] 614 | carry = 0; [ 343s] | ~~~~~~~~~~ [ 343s] 615 | for (i = 0; i < jz; i++) { /* compute 1-q */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 616 | j = iq[i]; [ 343s] | ~~~~~~~~~~ [ 343s] 617 | if (carry == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 618 | if (j != 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 619 | carry = 1; [ 343s] | ~~~~~~~~~~ [ 343s] 620 | iq[i] = 0x1000000 - j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 621 | } [ 343s] | ~ [ 343s] 622 | } else { [ 343s] | ~~~~~~~~ [ 343s] 623 | iq[i] = 0xFFFFFF - j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 624 | } [ 343s] | ~ [ 343s] 625 | } [ 343s] | ~ [ 343s] 626 | if (q0 > 0) { /* rare case: chance is 1 in 12 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 627 | switch (q0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 628 | case 1: [ 343s] | ~~~~~~~ [ 343s] 629 | iq[jz - 1] &= 0x7FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 630 | break; [ 343s] | ~~~~~~ [ 343s] 631 | case 2: [ 343s] | ~~~~~~~ [ 343s] 632 | iq[jz - 1] &= 0x3FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 633 | break; [ 343s] | ~~~~~~ [ 343s] 634 | } [ 343s] | ~ [ 343s] 635 | } [ 343s] | ~ [ 343s] 636 | if (ih == 2) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 637 | z = one - z; [ 343s] | ~~~~~~~~~~~~ [ 343s] 638 | if (carry != 0) [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 639 | z -= scalbn(one, q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 640 | } [ 343s] | ~ [ 343s] 641 | } [ 343s] | ~ [ 343s] 642 | [ 343s] | [ 343s] 643 | /* check if recomputation is needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 644 | if (z == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 645 | j = 0; [ 343s] | ~~~~~~ [ 343s] 646 | for (i = jz - 1; i >= jk; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 647 | j |= iq[i]; [ 343s] | ~~~~~~~~~~~ [ 343s] 648 | if (j == 0) { /* need recomputation */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 649 | for (k = 1; jk >= k && iq[jk - k] == 0; k++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 650 | /* k = no. of terms needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 651 | } [ 343s] | ~ [ 343s] 652 | [ 343s] | [ 343s] 653 | for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 654 | f[jx + i] = ipio2[jv + i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 655 | for (j = 0, fw = 0.0; j <= jx; j++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 656 | fw += x[j] * f[jx + i - j]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 657 | q[i] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 658 | } [ 343s] | ~ [ 343s] 659 | jz += k; [ 343s] | ~~~~~~~~ [ 343s] 660 | goto recompute; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 661 | } [ 343s] | ~ [ 343s] 662 | } [ 343s] | ~ [ 343s] 663 | [ 343s] | [ 343s] 664 | /* chop off zero terms */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 665 | if (z == 0.0) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 666 | jz -= 1; [ 343s] | ~~~~~~~~ [ 343s] 667 | q0 -= 24; [ 343s] | ~~~~~~~~~ [ 343s] 668 | while (iq[jz] == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 669 | jz--; [ 343s] | ~~~~~ [ 343s] 670 | q0 -= 24; [ 343s] | ~~~~~~~~~ [ 343s] 671 | } [ 343s] | ~ [ 343s] 672 | } else { /* break z into 24-bit if necessary */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 673 | z = scalbn(z, -q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 674 | if (z >= two24) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 675 | fw = static_cast(static_cast(twon24 * z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 676 | iq[jz] = z - two24 * fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 677 | jz += 1; [ 343s] | ~~~~~~~~ [ 343s] 678 | q0 += 24; [ 343s] | ~~~~~~~~~ [ 343s] 679 | iq[jz] = fw; [ 343s] | ~~~~~~~~~~~~ [ 343s] 680 | } else { [ 343s] | ~~~~~~~~ [ 343s] 681 | iq[jz] = z; [ 343s] | ~~~~~~~~~~~ [ 343s] 682 | } [ 343s] | ~ [ 343s] 683 | } [ 343s] | ~ [ 343s] 684 | [ 343s] | [ 343s] 685 | /* convert integer "bit" chunk to floating-point value */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 686 | fw = scalbn(one, q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 687 | for (i = jz; i >= 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 688 | q[i] = fw * iq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 689 | fw *= twon24; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 690 | } [ 343s] | ~ [ 343s] 691 | [ 343s] | [ 343s] 692 | /* compute PIo2[0,...,jp]*q[jz,...,0] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 693 | for (i = jz; i >= 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 694 | for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 695 | fw += PIo2[k] * q[i + k]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 696 | fq[jz - i] = fw; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 697 | } [ 343s] | ~ [ 343s] 698 | [ 343s] | [ 343s] 699 | /* compress fq[] into y[] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 700 | switch (prec) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 701 | case 0: [ 343s] | ~~~~~~~ [ 343s] 702 | fw = 0.0; [ 343s] | ~~~~~~~~~ [ 343s] 703 | for (i = jz; i >= 0; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 704 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 705 | y[0] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 706 | break; [ 343s] | ~~~~~~ [ 343s] 707 | case 1: [ 343s] | ~~~~~~~ [ 343s] 708 | case 2: [ 343s] | ~~~~~~~ [ 343s] 709 | fw = 0.0; [ 343s] | ~~~~~~~~~ [ 343s] 710 | for (i = jz; i >= 0; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 711 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 712 | y[0] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 713 | fw = fq[0] - fw; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 714 | for (i = 1; i <= jz; i++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 715 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 716 | y[1] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 717 | break; [ 343s] | ~~~~~~ [ 343s] 718 | case 3: /* painful */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 719 | for (i = jz; i > 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 720 | fw = fq[i - 1] + fq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 721 | fq[i] += fq[i - 1] - fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 722 | fq[i - 1] = fw; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 723 | } [ 343s] | ~ [ 343s] 724 | for (i = jz; i > 1; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 725 | fw = fq[i - 1] + fq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 726 | fq[i] += fq[i - 1] - fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 727 | fq[i - 1] = fw; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 728 | } [ 343s] | ~ [ 343s] 729 | for (fw = 0.0, i = jz; i >= 2; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 730 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 731 | if (ih == 0) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 732 | y[0] = fq[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 733 | y[1] = fq[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 734 | y[2] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 735 | } else { [ 343s] | ~~~~~~~~ [ 343s] 736 | y[0] = -fq[0]; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 737 | y[1] = -fq[1]; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 738 | y[2] = -fw; [ 343s] | ~~~~~~~~~~~ [ 343s] 739 | } [ 343s] | ~ [ 343s] 740 | } [ 343s] | ~ [ 343s] 741 | return n & 7; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 742 | } [ 343s] | ~ [ 343s] 743 | [ 343s] | [ 343s] 744 | /* __kernel_sin( x, y, iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 745 | * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 746 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 747 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 748 | * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 749 | * [ 343s] | ~ [ 343s] 750 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 751 | * 1. Since sin(-x) = -sin(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 752 | * 2. if x < 2^-27 (hx<0x3E400000 0), return x with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 753 | * 3. sin(x) is approximated by a polynomial of degree 13 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 754 | * [0,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 755 | * 3 13 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 756 | * sin(x) ~ x + S1*x + ... + S6*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 757 | * where [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 758 | * [ 343s] | ~ [ 343s] 759 | * |sin(x) 2 4 6 8 10 12 | -58 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 760 | * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 761 | * | x | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 762 | * [ 343s] | ~ [ 343s] 763 | * 4. sin(x+y) = sin(x) + sin'(x')*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 764 | * ~ sin(x) + (1-x*x/2)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 765 | * For better accuracy, let [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 766 | * 3 2 2 2 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 767 | * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 768 | * then 3 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 769 | * sin(x) = x + (S1*x + (x *(r-y/2)+y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 770 | */ [ 343s] | ~~ [ 343s] 771 | ALWAYS_INLINE double __kernel_sin(double x, double y, int iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 772 | { [ 343s] | ~ [ 343s] 773 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 774 | half [ 343s] | ~~~~ [ 343s] 775 | = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 776 | S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 777 | S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 778 | S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 779 | S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 780 | S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 781 | S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 782 | [ 343s] | [ 343s] 783 | double z, r, v; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 784 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 785 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 786 | ix &= 0x7FFFFFFF; /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 787 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* |x| < 2**-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 788 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 789 | } /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 790 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 791 | v = z * x; [ 343s] | ~~~~~~~~~~ [ 343s] 792 | r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 793 | if (iy == 0) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 794 | return x + v * (S1 + z * r); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 795 | } else { [ 343s] | ~~~~~~~~ [ 343s] 796 | return x - ((z * (half * y - v * r) - y) - v * S1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 797 | } [ 343s] | ~ [ 343s] 798 | } [ 343s] | ~ [ 343s] 799 | [ 343s] | [ 343s] 800 | /* __kernel_tan( x, y, k ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 801 | * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 802 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 803 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 804 | * Input k indicates whether tan (if k=1) or [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 805 | * -1/tan (if k= -1) is returned. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 806 | * [ 343s] | ~ [ 343s] 807 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 808 | * 1. Since tan(-x) = -tan(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 809 | * 2. if x < 2^-28 (hx<0x3E300000 0), return x with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 810 | * 3. tan(x) is approximated by a odd polynomial of degree 27 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 811 | * [0,0.67434] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 812 | * 3 27 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 813 | * tan(x) ~ x + T1*x + ... + T13*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 814 | * where [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 815 | * [ 343s] | ~ [ 343s] 816 | * |tan(x) 2 4 26 | -59.2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 817 | * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 818 | * | x | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 819 | * [ 343s] | ~ [ 343s] 820 | * Note: tan(x+y) = tan(x) + tan'(x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 821 | * ~ tan(x) + (1+x*x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 822 | * Therefore, for better accuracy in computing tan(x+y), let [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 823 | * 3 2 2 2 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 824 | * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 825 | * then [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 826 | * 3 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 827 | * tan(x+y) = x + (T1*x + (x *(r+y)+y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 828 | * [ 343s] | ~ [ 343s] 829 | * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 830 | * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 831 | * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 832 | */ [ 343s] | ~~ [ 343s] 833 | double __kernel_tan(double x, double y, int iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 834 | { [ 343s] | ~ [ 343s] 835 | constexpr double xxx[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 836 | 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 837 | 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 838 | 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 839 | 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 840 | 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 841 | 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 842 | 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 843 | 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 844 | 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 845 | 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 846 | 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 847 | -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 848 | 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 849 | /* one */ 1.00000000000000000000e+00, /* 3FF00000, 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 850 | /* pio4 */ 7.85398163397448278999e-01, /* 3FE921FB, 54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 851 | /* pio4lo */ 3.06161699786838301793e-17 /* 3C81A626, 33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 852 | }; [ 343s] | ~~ [ 343s] 853 | #define one xxx[13] [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 854 | #define pio4 xxx[14] [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 855 | #define pio4lo xxx[15] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 856 | #define T xxx [ 343s] | ~~~~~~~~~~~~~ [ 343s] 857 | [ 343s] | [ 343s] 858 | double z, r, v, w, s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 859 | int32_t ix, hx; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 860 | [ 343s] | [ 343s] 861 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 862 | ix = hx & 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 863 | if (ix < 0x3E300000 && static_cast(x) == 0) { /* x < 2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 864 | /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 865 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 866 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 867 | if (((ix | low) | (iy + 1)) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 868 | return one / fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 869 | } else { [ 343s] | ~~~~~~~~ [ 343s] 870 | if (iy == 1) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 871 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 872 | } else { /* compute -1 / (x+y) carefully */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 873 | double a, t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 874 | [ 343s] | [ 343s] 875 | z = w = x + y; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 876 | SET_LOW_WORD(z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 877 | v = y - (z - x); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 878 | t = a = -one / w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 879 | SET_LOW_WORD(t, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 880 | s = one + t * z; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 881 | return t + a * (s + t * v); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 882 | } [ 343s] | ~ [ 343s] 883 | } [ 343s] | ~ [ 343s] 884 | } [ 343s] | ~ [ 343s] 885 | if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 886 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 887 | x = -x; [ 343s] | ~~~~~~~ [ 343s] 888 | y = -y; [ 343s] | ~~~~~~~ [ 343s] 889 | } [ 343s] | ~ [ 343s] 890 | z = pio4 - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 891 | w = pio4lo - y; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 892 | x = z + w; [ 343s] | ~~~~~~~~~~ [ 343s] 893 | y = 0.0; [ 343s] | ~~~~~~~~ [ 343s] 894 | } [ 343s] | ~ [ 343s] 895 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 896 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 897 | /* [ 343s] | ~~ [ 343s] 898 | * Break x^5*(T[1]+x^2*T[2]+...) into [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 899 | * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 900 | * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 901 | */ [ 343s] | ~~ [ 343s] 902 | r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 903 | v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 904 | s = z * x; [ 343s] | ~~~~~~~~~~ [ 343s] 905 | r = y + z * (s * (r + v) + y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 906 | r += T[0] * s; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 907 | w = x + r; [ 343s] | ~~~~~~~~~~ [ 343s] 908 | if (ix >= 0x3FE59428) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 909 | v = iy; [ 343s] | ~~~~~~~ [ 343s] 910 | return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 911 | } [ 343s] | ~ [ 343s] 912 | if (iy == 1) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 913 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 914 | } else { [ 343s] | ~~~~~~~~ [ 343s] 915 | /* [ 343s] | ~~ [ 343s] 916 | * if allow error up to 2 ulp, simply return [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 917 | * -1.0 / (x+r) here [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 918 | */ [ 343s] | ~~ [ 343s] 919 | /* compute -1.0 / (x+r) accurately */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 920 | double a, t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 921 | z = w; [ 343s] | ~~~~~~ [ 343s] 922 | SET_LOW_WORD(z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 923 | v = r - (z - x); /* z+v = r+x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 924 | t = a = -1.0 / w; /* a = -1.0/w */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 925 | SET_LOW_WORD(t, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 926 | s = 1.0 + t * z; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 927 | return t + a * (s + t * v); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 928 | } [ 343s] | ~ [ 343s] 929 | [ 343s] | [ 343s] 930 | #undef one [ 343s] | ~~~~~~~~~~ [ 343s] 931 | #undef pio4 [ 343s] | ~~~~~~~~~~~ [ 343s] 932 | #undef pio4lo [ 343s] | ~~~~~~~~~~~~~ [ 343s] 933 | #undef T [ 343s] | ~~~~~~~~ [ 343s] 934 | } [ 343s] | ~ [ 343s] 935 | [ 343s] | [ 343s] 936 | } // namespace [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 937 | [ 343s] | [ 343s] 938 | /* acos(x) [ 343s] | ~~~~~~~~~~ [ 343s] 939 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 940 | * acos(x) = pi/2 - asin(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 941 | * acos(-x) = pi/2 + asin(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 942 | * For |x|<=0.5 [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 943 | * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 944 | * For x>0.5 [ 343s] | ~~~~~~~~~~~ [ 343s] 945 | * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 946 | * = 2asin(sqrt((1-x)/2)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 947 | * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 948 | * = 2f + (2c + 2s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 949 | * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 950 | * for f so that f+c ~ sqrt(z). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 951 | * For x<-0.5 [ 343s] | ~~~~~~~~~~~~ [ 343s] 952 | * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 953 | * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 954 | * [ 343s] | ~ [ 343s] 955 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 956 | * if x is NaN, return x itself; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 957 | * if |x|>1, return NaN with invalid signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 958 | * [ 343s] | ~ [ 343s] 959 | * Function needed: sqrt [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 960 | */ [ 343s] | ~~ [ 343s] 961 | double acos(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 962 | { [ 343s] | ~ [ 343s] 963 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 964 | one [ 343s] | ~~~ [ 343s] 965 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 966 | pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 967 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 968 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 969 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 970 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 971 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 972 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 973 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 974 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 975 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 976 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 977 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 978 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 979 | [ 343s] | [ 343s] 980 | double z, p, q, r, w, s, c, df; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 981 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 982 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 983 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 984 | if (ix >= 0x3FF00000) { /* |x| >= 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 985 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 986 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 987 | if (((ix - 0x3FF00000) | lx) == 0) { /* |x|==1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 988 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 989 | return 0.0; /* acos(1) = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 990 | else [ 343s] | ~~~~ [ 343s] 991 | return pi + 2.0 * pio2_lo; /* acos(-1)= pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 992 | } [ 343s] | ~ [ 343s] 993 | return (x - x) / (x - x); /* acos(|x|>1) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 994 | } [ 343s] | ~ [ 343s] 995 | if (ix < 0x3FE00000) { /* |x| < 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 996 | if (ix <= 0x3C600000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 997 | return pio2_hi + pio2_lo; /*if|x|<2**-57*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 998 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 999 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1000 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1001 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1002 | return pio2_hi - (x - (pio2_lo - x * r)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1003 | } else if (hx < 0) { /* x < -0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1004 | z = (one + x) * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1005 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1006 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1007 | s = sqrt(z); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1008 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1009 | w = r * s - pio2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1010 | return pi - 2.0 * (s + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1011 | } else { /* x > 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1012 | z = (one - x) * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1013 | s = sqrt(z); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1014 | df = s; [ 343s] | ~~~~~~~ [ 343s] 1015 | SET_LOW_WORD(df, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1016 | c = (z - df * df) / (s + df); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1017 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1018 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1019 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1020 | w = r * s + c; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1021 | return 2.0 * (df + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1022 | } [ 343s] | ~ [ 343s] 1023 | } [ 343s] | ~ [ 343s] 1024 | [ 343s] | [ 343s] 1025 | /* acosh(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 1026 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1027 | * Based on [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1028 | * acosh(x) = log [ x + sqrt(x*x-1) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1029 | * we have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1030 | * acosh(x) := log(x)+ln2, if x is large; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1031 | * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1032 | * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1033 | * [ 343s] | ~ [ 343s] 1034 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1035 | * acosh(x) is NaN with signal if x<1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1036 | * acosh(NaN) is NaN without signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1037 | */ [ 343s] | ~~ [ 343s] 1038 | double acosh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1039 | { [ 343s] | ~ [ 343s] 1040 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1041 | one [ 343s] | ~~~ [ 343s] 1042 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 1043 | ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1044 | double t; [ 343s] | ~~~~~~~~~ [ 343s] 1045 | int32_t hx; [ 343s] | ~~~~~~~~~~~ [ 343s] 1046 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1047 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1048 | if (hx < 0x3FF00000) { /* x < 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1049 | return (x - x) / (x - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1050 | } else if (hx >= 0x41B00000) { /* x > 2**28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1051 | if (hx >= 0x7FF00000) { /* x is inf of NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1052 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1053 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1054 | return log(x) + ln2; /* acosh(huge)=log(2x) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1055 | } [ 343s] | ~ [ 343s] 1056 | } else if (((hx - 0x3FF00000) | lx) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1057 | return 0.0; /* acosh(1) = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1058 | } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1059 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1060 | return log(2.0 * x - one / (x + sqrt(t - one))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1061 | } else { /* 10.98 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1081 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1082 | * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1083 | * For x<=0.98, let pio4_hi = pio2_hi/2, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1084 | * f = hi part of s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1085 | * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1086 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 1087 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1088 | * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1089 | * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1090 | * [ 343s] | ~ [ 343s] 1091 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1092 | * if x is NaN, return x itself; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1093 | * if |x|>1, return NaN with invalid signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1094 | */ [ 343s] | ~~ [ 343s] 1095 | double asin(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1096 | { [ 343s] | ~ [ 343s] 1097 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1098 | one [ 343s] | ~~~ [ 343s] 1099 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1100 | huge = 1.000e+300, [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1101 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1102 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1103 | pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1104 | /* coefficient for R(x^2) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1105 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1106 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1107 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1108 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1109 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1110 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1111 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1112 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1113 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1114 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1115 | [ 343s] | [ 343s] 1116 | double t, w, p, q, c, r, s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1117 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1118 | [ 343s] | [ 343s] 1119 | t = 0; [ 343s] | ~~~~~~ [ 343s] 1120 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1121 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1122 | if (ix >= 0x3FF00000) { /* |x|>= 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1123 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1124 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1125 | if (((ix - 0x3FF00000) | lx) == 0) /* asin(1)=+-pi/2 with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1126 | return x * pio2_hi + x * pio2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1127 | return (x - x) / (x - x); /* asin(|x|>1) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1128 | } else if (ix < 0x3FE00000) { /* |x|<0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1129 | if (ix < 0x3E400000 && huge + x > one) { /* if |x| < 2**-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1130 | return x; /* return x with inexact if x!=0*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1131 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1132 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1133 | } [ 343s] | ~ [ 343s] 1134 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1135 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1136 | w = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1137 | return x + x * w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1138 | } [ 343s] | ~ [ 343s] 1139 | /* 1> |x|>= 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1140 | w = one - fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1141 | t = w * 0.5; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1142 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1143 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1144 | s = sqrt(t); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1145 | if (ix >= 0x3FEF3333) { /* if |x| > 0.975 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1146 | w = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1147 | t = pio2_hi - (2.0 * (s + s * w) - pio2_lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1148 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1149 | w = s; [ 343s] | ~~~~~~ [ 343s] 1150 | SET_LOW_WORD(w, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1151 | c = (t - w * w) / (s + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1152 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1153 | p = 2.0 * s * r - (pio2_lo - 2.0 * c); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1154 | q = pio4_hi - 2.0 * w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1155 | t = pio4_hi - (p - q); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1156 | } [ 343s] | ~ [ 343s] 1157 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1158 | return t; [ 343s] | ~~~~~~~~~ [ 343s] 1159 | else [ 343s] | ~~~~ [ 343s] 1160 | return -t; [ 343s] | ~~~~~~~~~~ [ 343s] 1161 | } [ 343s] | ~ [ 343s] 1162 | /* asinh(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 1163 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1164 | * Based on [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1165 | * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1166 | * we have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1167 | * asinh(x) := x if 1+x*x=1, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1168 | * := sign(x)*(log(x)+ln2)) for large |x|, else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1169 | * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1170 | * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1171 | */ [ 343s] | ~~ [ 343s] 1172 | double asinh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1173 | { [ 343s] | ~ [ 343s] 1174 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1175 | one [ 343s] | ~~~ [ 343s] 1176 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1177 | ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1178 | huge = 1.00000000000000000000e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1179 | [ 343s] | [ 343s] 1180 | double t, w; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1181 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1182 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1183 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1184 | if (ix >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1185 | return x + x; /* x is inf or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1186 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1187 | return x; /* return x inexact except 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1188 | } [ 343s] | ~ [ 343s] 1189 | if (ix > 0x41B00000) { /* |x| > 2**28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1190 | w = log(fabs(x)) + ln2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1191 | } else if (ix > 0x40000000) { /* 2**28 > |x| > 2.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1192 | t = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1193 | w = log(2.0 * t + one / (sqrt(x * x + one) + t)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1194 | } else { /* 2.0 > |x| > 2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1195 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1196 | w = log1p(fabs(x) + t / (one + sqrt(one + t))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1197 | } [ 343s] | ~ [ 343s] 1198 | if (hx > 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1199 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 1200 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1201 | return -w; [ 343s] | ~~~~~~~~~~ [ 343s] 1202 | } [ 343s] | ~ [ 343s] 1203 | } [ 343s] | ~ [ 343s] 1204 | [ 343s] | [ 343s] 1205 | /* atan(x) [ 343s] | ~~~~~~~~~~ [ 343s] 1206 | * Method [ 343s] | ~~~~~~~~ [ 343s] 1207 | * 1. Reduce x to positive by atan(x) = -atan(-x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1208 | * 2. According to the integer k=4t+0.25 chopped, t=x, the argument [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1209 | * is further reduced to one of the following intervals and the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1210 | * arctangent of t is evaluated by the corresponding formula: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1211 | * [ 343s] | ~ [ 343s] 1212 | * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1213 | * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1214 | * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1215 | * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1216 | * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1217 | * [ 343s] | ~ [ 343s] 1218 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1219 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1220 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1221 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1222 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1223 | */ [ 343s] | ~~ [ 343s] 1224 | double atan(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1225 | { [ 343s] | ~ [ 343s] 1226 | constexpr double atanhi[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1227 | 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1228 | 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1229 | 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1230 | 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1231 | }; [ 343s] | ~~ [ 343s] 1232 | [ 343s] | [ 343s] 1233 | constexpr double atanlo[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1234 | 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1235 | 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1236 | 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1237 | 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1238 | }; [ 343s] | ~~ [ 343s] 1239 | [ 343s] | [ 343s] 1240 | constexpr double aT[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1241 | 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1242 | -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1243 | 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1244 | -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1245 | 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1246 | -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1247 | 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1248 | -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1249 | 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1250 | -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1251 | 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1252 | }; [ 343s] | ~~ [ 343s] 1253 | [ 343s] | [ 343s] 1254 | constexpr double one = 1.0, huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1255 | [ 343s] | [ 343s] 1256 | double w, s1, s2, z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1257 | int32_t ix, hx, id; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1258 | [ 343s] | [ 343s] 1259 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1260 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1261 | if (ix >= 0x44100000) { /* if |x| >= 2^66 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1262 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1263 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1264 | if (ix > 0x7FF00000 || (ix == 0x7FF00000 && (low != 0))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1265 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1266 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1267 | return atanhi[3] + *(volatile double *)&atanlo[3]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1268 | else [ 343s] | ~~~~ [ 343s] 1269 | return -atanhi[3] - *(volatile double *)&atanlo[3]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1270 | } [ 343s] | ~ [ 343s] 1271 | if (ix < 0x3FDC0000) { /* |x| < 0.4375 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1272 | if (ix < 0x3E400000 && huge + x > one) { /* |x| < 2^-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1273 | return x; /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1274 | } [ 343s] | ~ [ 343s] 1275 | id = -1; [ 343s] | ~~~~~~~~ [ 343s] 1276 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1277 | x = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1278 | if (ix < 0x3FF30000) { /* |x| < 1.1875 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1279 | if (ix < 0x3FE60000) { /* 7/16 <=|x|<11/16 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1280 | id = 0; [ 343s] | ~~~~~~~ [ 343s] 1281 | x = (2.0 * x - one) / (2.0 + x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1282 | } else { /* 11/16<=|x|< 19/16 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1283 | id = 1; [ 343s] | ~~~~~~~ [ 343s] 1284 | x = (x - one) / (x + one); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1285 | } [ 343s] | ~ [ 343s] 1286 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1287 | if (ix < 0x40038000) { /* |x| < 2.4375 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1288 | id = 2; [ 343s] | ~~~~~~~ [ 343s] 1289 | x = (x - 1.5) / (one + 1.5 * x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1290 | } else { /* 2.4375 <= |x| < 2^66 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1291 | id = 3; [ 343s] | ~~~~~~~ [ 343s] 1292 | x = -1.0 / x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1293 | } [ 343s] | ~ [ 343s] 1294 | } [ 343s] | ~ [ 343s] 1295 | } [ 343s] | ~ [ 343s] 1296 | /* end of argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1297 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1298 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 1299 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1300 | s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1301 | s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1302 | if (id < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1303 | return x - x * (s1 + s2); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1304 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1305 | z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1306 | return (hx < 0) ? -z : z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1307 | } [ 343s] | ~ [ 343s] 1308 | } [ 343s] | ~ [ 343s] 1309 | [ 343s] | [ 343s] 1310 | /* atan2(y,x) [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1311 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1312 | * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1313 | * 2. Reduce x to positive by (if x and y are unexceptional): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1314 | * ARG (x+iy) = arctan(y/x) ... if x > 0, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1315 | * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1316 | * [ 343s] | ~ [ 343s] 1317 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1318 | * [ 343s] | ~ [ 343s] 1319 | * ATAN2((anything), NaN ) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1320 | * ATAN2(NAN , (anything) ) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1321 | * ATAN2(+-0, +(anything but NaN)) is +-0 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1322 | * ATAN2(+-0, -(anything but NaN)) is +-pi ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1323 | * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1324 | * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1325 | * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1326 | * ATAN2(+-INF,+INF ) is +-pi/4 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1327 | * ATAN2(+-INF,-INF ) is +-3pi/4; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1328 | * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1329 | * [ 343s] | ~ [ 343s] 1330 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1331 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1332 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1333 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1334 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1335 | */ [ 343s] | ~~ [ 343s] 1336 | double atan2(double y, double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1337 | { [ 343s] | ~ [ 343s] 1338 | constexpr volatile double tiny = 1.0e-300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1339 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1340 | zero [ 343s] | ~~~~ [ 343s] 1341 | = 0.0, [ 343s] | ~~~~~~ [ 343s] 1342 | pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1343 | pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1344 | pi = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1345 | constexpr volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1346 | [ 343s] | [ 343s] 1347 | double z; [ 343s] | ~~~~~~~~~ [ 343s] 1348 | int32_t k, m, hx, hy, ix, iy; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1349 | uint32_t lx, ly; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1350 | [ 343s] | [ 343s] 1351 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1352 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1353 | EXTRACT_WORDS(hy, ly, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1354 | iy = hy & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1355 | if (((ix | ((lx | -static_cast(lx)) >> 31)) > 0x7FF00000) || ((iy | ((ly | -static_cast(ly)) >> 31)) > 0x7FF00000)) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1356 | return x + y; /* x or y is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1357 | } [ 343s] | ~ [ 343s] 1358 | if (((hx - 0x3FF00000) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1359 | return atan(y); /* x=1.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1360 | m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1361 | [ 343s] | [ 343s] 1362 | /* when y = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1363 | if ((iy | ly) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1364 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1365 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1366 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1367 | return y; /* atan(+-0,+anything)=+-0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1368 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1369 | return pi + tiny; /* atan(+0,-anything) = pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1370 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1371 | return -pi - tiny; /* atan(-0,-anything) =-pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1372 | } [ 343s] | ~ [ 343s] 1373 | } [ 343s] | ~ [ 343s] 1374 | /* when x = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1375 | if ((ix | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1376 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1377 | [ 343s] | [ 343s] 1378 | /* when x is INF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1379 | if (ix == 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1380 | if (iy == 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1381 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1382 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1383 | return pi_o_4 + tiny; /* atan(+INF,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1384 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1385 | return -pi_o_4 - tiny; /* atan(-INF,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1386 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1387 | return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1388 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1389 | return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1390 | } [ 343s] | ~ [ 343s] 1391 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1392 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1393 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1394 | return zero; /* atan(+...,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1395 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1396 | return -zero; /* atan(-...,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1397 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1398 | return pi + tiny; /* atan(+...,-INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1399 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1400 | return -pi - tiny; /* atan(-...,-INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1401 | } [ 343s] | ~ [ 343s] 1402 | } [ 343s] | ~ [ 343s] 1403 | } [ 343s] | ~ [ 343s] 1404 | /* when y is INF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1405 | if (iy == 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1406 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1407 | [ 343s] | [ 343s] 1408 | /* compute y/x */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1409 | k = (iy - ix) >> 20; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1410 | if (k > 60) { /* |y/x| > 2**60 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1411 | z = pi_o_2 + 0.5 * pi_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1412 | m &= 1; [ 343s] | ~~~~~~~ [ 343s] 1413 | } else if (hx < 0 && k < -60) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1414 | z = 0.0; /* 0 > |y|/x > -2**-60 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1415 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1416 | z = atan(fabs(y / x)); /* safe to do y/x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1417 | } [ 343s] | ~ [ 343s] 1418 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1419 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1420 | return z; /* atan(+,+) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1421 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1422 | return -z; /* atan(-,+) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1423 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1424 | return pi - (z - pi_lo); /* atan(+,-) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1425 | default: /* case 3 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1426 | return (z - pi_lo) - pi; /* atan(-,-) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1427 | } [ 343s] | ~ [ 343s] 1428 | } [ 343s] | ~ [ 343s] 1429 | [ 343s] | [ 343s] 1430 | /* cos(x) [ 343s] | ~~~~~~~~~ [ 343s] 1431 | * Return cosine function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1432 | * [ 343s] | ~ [ 343s] 1433 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1434 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1435 | * __kernel_cos ... cosine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1436 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1437 | * [ 343s] | ~ [ 343s] 1438 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 1439 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1440 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1441 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1442 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1443 | * [ 343s] | ~ [ 343s] 1444 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1445 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1446 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1447 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1448 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1449 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1450 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1451 | * [ 343s] | ~ [ 343s] 1452 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1453 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1454 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1455 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1456 | * [ 343s] | ~ [ 343s] 1457 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1458 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1459 | */ [ 343s] | ~~ [ 343s] 1460 | double cos(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1461 | { [ 343s] | ~ [ 343s] 1462 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1463 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1464 | [ 343s] | [ 343s] 1465 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1466 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1467 | [ 343s] | [ 343s] 1468 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1469 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1470 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1471 | return __kernel_cos(x, z); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1472 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1473 | /* cos(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1474 | return x - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1475 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1476 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1477 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1478 | switch (n & 3) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1479 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1480 | return __kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1481 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1482 | return -__kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1483 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1484 | return -__kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1485 | default: [ 343s] | ~~~~~~~~ [ 343s] 1486 | return __kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1487 | } [ 343s] | ~ [ 343s] 1488 | } [ 343s] | ~ [ 343s] 1489 | } [ 343s] | ~ [ 343s] 1490 | [ 343s] | [ 343s] 1491 | /* exp(x) [ 343s] | ~~~~~~~~~ [ 343s] 1492 | * Returns the exponential of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1493 | * [ 343s] | ~ [ 343s] 1494 | * Method [ 343s] | ~~~~~~~~ [ 343s] 1495 | * 1. Argument reduction: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1496 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1497 | * Given x, find r and integer k such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1498 | * [ 343s] | ~ [ 343s] 1499 | * x = k*ln2 + r, |r| <= 0.5*ln2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1500 | * [ 343s] | ~ [ 343s] 1501 | * Here r will be represented as r = hi-lo for better [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1502 | * accuracy. [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1503 | * [ 343s] | ~ [ 343s] 1504 | * 2. Approximation of exp(r) by a special rational function on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1505 | * the interval [0,0.34658]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1506 | * Write [ 343s] | ~~~~~~~~~~~~ [ 343s] 1507 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1508 | * We use a special Remes algorithm on [0,0.34658] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1509 | * a polynomial of degree 5 to approximate R. The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1510 | * of this polynomial approximation is bounded by 2**-59. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1511 | * other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1512 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1513 | * (where z=r*r, and the values of P1 to P5 are listed below) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1514 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 1515 | * | 5 | -59 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1516 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1517 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1518 | * The computation of exp(r) thus becomes [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1519 | * 2*r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1520 | * exp(r) = 1 + ------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1521 | * R - r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1522 | * r*R1(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1523 | * = 1 + r + ----------- (for better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1524 | * 2 - R1(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1525 | * where [ 343s] | ~~~~~~~~~~~~ [ 343s] 1526 | * 2 4 10 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1527 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1528 | * [ 343s] | ~ [ 343s] 1529 | * 3. Scale back to obtain exp(x): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1530 | * From step 1, we have [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1531 | * exp(x) = 2^k * exp(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1532 | * [ 343s] | ~ [ 343s] 1533 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1534 | * exp(INF) is INF, exp(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1535 | * exp(-INF) is 0, and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1536 | * for finite argument, only exp(0)=1 is exact. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1537 | * [ 343s] | ~ [ 343s] 1538 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1539 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1540 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1541 | * [ 343s] | ~ [ 343s] 1542 | * Misc. info. [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1543 | * For IEEE double [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1544 | * if x > 7.09782712893383973096e+02 then exp(x) overflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1545 | * if x < -7.45133219101941108420e+02 then exp(x) underflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1546 | * [ 343s] | ~ [ 343s] 1547 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1548 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1549 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1550 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1551 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1552 | */ [ 343s] | ~~ [ 343s] 1553 | double exp(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1554 | { [ 343s] | ~ [ 343s] 1555 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1556 | one [ 343s] | ~~~ [ 343s] 1557 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 1558 | halF[2] = { 0.5, -0.5 }, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1559 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1560 | u_threshold = -7.45133219101941108420e+02, /* 0xC0874910, 0xD52D3051 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1561 | ln2HI[2] = { 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1562 | -6.93147180369123816490e-01 }, /* 0xBFE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1563 | ln2LO[2] = { 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1564 | -1.90821492927058770002e-10 }, /* 0xBDEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1565 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1566 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1567 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1568 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1569 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1570 | P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1571 | E = 2.718281828459045; /* 0x4005BF0A, 0x8B145769 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1572 | [ 343s] | [ 343s] 1573 | constexpr volatile double [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1574 | huge [ 343s] | ~~~~ [ 343s] 1575 | = 1.0e+300, [ 343s] | ~~~~~~~~~~~ [ 343s] 1576 | twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1577 | two1023 = 8.988465674311579539e307; /* 0x1p1023 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1578 | [ 343s] | [ 343s] 1579 | double y, hi = 0.0, lo = 0.0, c, t, twopk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1580 | int32_t k = 0, xsb; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1581 | uint32_t hx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1582 | [ 343s] | [ 343s] 1583 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1584 | xsb = (hx >> 31) & 1; /* sign bit of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1585 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1586 | [ 343s] | [ 343s] 1587 | /* filter out non-finite argument */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1588 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1589 | if (hx >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1590 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1591 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1592 | if (((hx & 0xFFFFF) | lx) != 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1593 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1594 | else [ 343s] | ~~~~ [ 343s] 1595 | return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1596 | } [ 343s] | ~ [ 343s] 1597 | if (x > o_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1598 | return huge * huge; /* overflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1599 | if (x < u_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1600 | return twom1000 * twom1000; /* underflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1601 | } [ 343s] | ~ [ 343s] 1602 | [ 343s] | [ 343s] 1603 | /* argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1604 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1605 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1606 | /* TODO(rtoy): We special case exp(1) here to return the correct [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1607 | * value of E, as the computation below would get the last bit [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1608 | * wrong. We should probably fix the algorithm instead. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1609 | */ [ 343s] | ~~ [ 343s] 1610 | if (x == 1.0) [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1611 | return E; [ 343s] | ~~~~~~~~~ [ 343s] 1612 | hi = x - ln2HI[xsb]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1613 | lo = ln2LO[xsb]; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1614 | k = 1 - xsb - xsb; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1615 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1616 | k = static_cast(invln2 * x + halF[xsb]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1617 | t = k; [ 343s] | ~~~~~~ [ 343s] 1618 | hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1619 | lo = t * ln2LO[0]; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1620 | } [ 343s] | ~ [ 343s] 1621 | STRICT_ASSIGN(double, x, hi - lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1622 | } else if (hx < 0x3E300000) { /* when |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1623 | if (huge + x > one) [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1624 | return one + x; /* trigger inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1625 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1626 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1627 | } [ 343s] | ~ [ 343s] 1628 | [ 343s] | [ 343s] 1629 | /* x is now in primary range */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1630 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1631 | if (k >= -1021) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1632 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1633 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1634 | INSERT_WORDS(twopk, 0x3FF00000 + ((k + 1000) << 20), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1635 | } [ 343s] | ~ [ 343s] 1636 | c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1637 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1638 | return one - ((x * c) / (c - 2.0) - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1639 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1640 | y = one - ((lo - (x * c) / (2.0 - c)) - hi); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1641 | } [ 343s] | ~ [ 343s] 1642 | if (k >= -1021) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1643 | if (k == 1024) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1644 | return y * 2.0 * two1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1645 | return y * twopk; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1646 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1647 | return y * twopk * twom1000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1648 | } [ 343s] | ~ [ 343s] 1649 | } [ 343s] | ~ [ 343s] 1650 | [ 343s] | [ 343s] 1651 | /* [ 343s] | ~~ [ 343s] 1652 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1653 | * 1.Reduced x to positive by atanh(-x) = -atanh(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1654 | * 2.For x>=0.5 [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1655 | * 1 2x x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1656 | * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1657 | * 2 1 - x 1 - x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1658 | * [ 343s] | ~ [ 343s] 1659 | * For x<0.5 [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1660 | * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1661 | * [ 343s] | ~ [ 343s] 1662 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1663 | * atanh(x) is NaN if |x| > 1 with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1664 | * atanh(NaN) is that NaN with no signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1665 | * atanh(+-1) is +-INF with signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1666 | * [ 343s] | ~ [ 343s] 1667 | */ [ 343s] | ~~ [ 343s] 1668 | double atanh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1669 | { [ 343s] | ~ [ 343s] 1670 | constexpr double one = 1.0, huge = 1e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1671 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1672 | [ 343s] | [ 343s] 1673 | double t; [ 343s] | ~~~~~~~~~ [ 343s] 1674 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1675 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1676 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1677 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1678 | if ((ix | ((lx | -static_cast(lx)) >> 31)) > 0x3FF00000) /* |x|>1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1679 | return (x - x) / (x - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1680 | if (ix == 0x3FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1681 | return x / zero; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1682 | if (ix < 0x3E300000 && (huge + x) > zero) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1683 | return x; /* x<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1684 | SET_HIGH_WORD(x, ix); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1685 | if (ix < 0x3FE00000) { /* x < 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1686 | t = x + x; [ 343s] | ~~~~~~~~~~ [ 343s] 1687 | t = 0.5 * log1p(t + t * x / (one - x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1688 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1689 | t = 0.5 * log1p((x + x) / (one - x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1690 | } [ 343s] | ~ [ 343s] 1691 | if (hx >= 0) [ 343s] | ~~~~~~~~~~~~ [ 343s] 1692 | return t; [ 343s] | ~~~~~~~~~ [ 343s] 1693 | else [ 343s] | ~~~~ [ 343s] 1694 | return -t; [ 343s] | ~~~~~~~~~~ [ 343s] 1695 | } [ 343s] | ~ [ 343s] 1696 | [ 343s] | [ 343s] 1697 | /* log(x) [ 343s] | ~~~~~~~~~ [ 343s] 1698 | * Return the logrithm of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1699 | * [ 343s] | ~ [ 343s] 1700 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1701 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1702 | * x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1703 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1704 | * [ 343s] | ~ [ 343s] 1705 | * 2. Approximation of log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1706 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1707 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1708 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1709 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1710 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1711 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1712 | * other words, [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1713 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1714 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1715 | * (the values of Lg1 to Lg7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1716 | * and [ 343s] | ~~~~~~ [ 343s] 1717 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1718 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1719 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1720 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1721 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1722 | * by [ 343s] | ~~~~~ [ 343s] 1723 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1724 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1725 | * [ 343s] | ~ [ 343s] 1726 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1727 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1728 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1729 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1730 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1731 | * [ 343s] | ~ [ 343s] 1732 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1733 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1734 | * log(+INF) is +INF; log(0) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1735 | * log(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1736 | * [ 343s] | ~ [ 343s] 1737 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1738 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1739 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1740 | * [ 343s] | ~ [ 343s] 1741 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1742 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1743 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1744 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1745 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1746 | */ [ 343s] | ~~ [ 343s] 1747 | double log(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1748 | { [ 343s] | ~ [ 343s] 1749 | constexpr double /* -- */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1750 | ln2_hi [ 343s] | ~~~~~~ [ 343s] 1751 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1752 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1753 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1754 | Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1755 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1756 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1757 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1758 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1759 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1760 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1761 | [ 343s] | [ 343s] 1762 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1763 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1764 | [ 343s] | [ 343s] 1765 | double hfsq, f, s, z, R, w, t1, t2, dk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1766 | int32_t k, hx, i, j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1767 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1768 | [ 343s] | [ 343s] 1769 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1770 | [ 343s] | [ 343s] 1771 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1772 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1773 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1774 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1775 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1776 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1777 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 1778 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1779 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1780 | } [ 343s] | ~ [ 343s] 1781 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1782 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1783 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1784 | hx &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1785 | i = (hx + 0x95F64) & 0x100000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1786 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1787 | k += (i >> 20); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1788 | f = x - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1789 | if ((0x000FFFFF & (2 + hx)) < 3) { /* -2**-20 <= f < 2**-20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1790 | if (f == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1791 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1792 | return zero; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1793 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1794 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1795 | return dk * ln2_hi + dk * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1796 | } [ 343s] | ~ [ 343s] 1797 | } [ 343s] | ~ [ 343s] 1798 | R = f * f * (0.5 - 0.33333333333333333 * f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1799 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1800 | return f - R; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1801 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1802 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1803 | return dk * ln2_hi - ((R - dk * ln2_lo) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1804 | } [ 343s] | ~ [ 343s] 1805 | } [ 343s] | ~ [ 343s] 1806 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1807 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1808 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 1809 | i = hx - 0x6147A; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1810 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 1811 | j = 0x6B851 - hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1812 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1813 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1814 | i |= j; [ 343s] | ~~~~~~~ [ 343s] 1815 | R = t2 + t1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1816 | if (i > 0) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1817 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1818 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1819 | return f - (hfsq - s * (hfsq + R)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1820 | else [ 343s] | ~~~~ [ 343s] 1821 | return dk * ln2_hi - ((hfsq - (s * (hfsq + R) + dk * ln2_lo)) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1822 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1823 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1824 | return f - s * (f - R); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1825 | else [ 343s] | ~~~~ [ 343s] 1826 | return dk * ln2_hi - ((s * (f - R) - dk * ln2_lo) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1827 | } [ 343s] | ~ [ 343s] 1828 | } [ 343s] | ~ [ 343s] 1829 | [ 343s] | [ 343s] 1830 | /* double log1p(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1831 | * [ 343s] | ~ [ 343s] 1832 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1833 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1834 | * 1+x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1835 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1836 | * [ 343s] | ~ [ 343s] 1837 | * Note. If k=0, then f=x is exact. However, if k!=0, then f [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1838 | * may not be representable exactly. In that case, a correction [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1839 | * term is need. Let u=1+x rounded. Let c = (1+x)-u, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1840 | * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1841 | * and add back the correction term c/u. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1842 | * (Note: when x > 2**53, one can simply return log(x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1843 | * [ 343s] | ~ [ 343s] 1844 | * 2. Approximation of log1p(f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1845 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1846 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1847 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1848 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1849 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1850 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1851 | * other words, [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1852 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1853 | * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1854 | * (the values of Lp1 to Lp7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1855 | * and [ 343s] | ~~~~~~ [ 343s] 1856 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1857 | * | Lp1*s +...+Lp7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1858 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1859 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1860 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1861 | * by [ 343s] | ~~~~~ [ 343s] 1862 | * log1p(f) = f - (hfsq - s*(hfsq+R)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1863 | * [ 343s] | ~ [ 343s] 1864 | * 3. Finally, log1p(x) = k*ln2 + log1p(f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1865 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1866 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1867 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1868 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1869 | * [ 343s] | ~ [ 343s] 1870 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1871 | * log1p(x) is NaN with signal if x < -1 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1872 | * log1p(+INF) is +INF; log1p(-1) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1873 | * log1p(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1874 | * [ 343s] | ~ [ 343s] 1875 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1876 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1877 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1878 | * [ 343s] | ~ [ 343s] 1879 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1880 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1881 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1882 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1883 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1884 | * [ 343s] | ~ [ 343s] 1885 | * Note: Assuming log() return accurate answer, the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1886 | * algorithm can be used to compute log1p(x) to within a few ULP: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1887 | * [ 343s] | ~ [ 343s] 1888 | * u = 1+x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1889 | * if(u==1.0) return x ; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1890 | * return log(u)*(x/(u-1.0)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1891 | * [ 343s] | ~ [ 343s] 1892 | * See HP-15C Advanced Functions Handbook, p.193. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1893 | */ [ 343s] | ~~ [ 343s] 1894 | double log1p(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1895 | { [ 343s] | ~ [ 343s] 1896 | constexpr double /* -- */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1897 | ln2_hi [ 343s] | ~~~~~~ [ 343s] 1898 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1899 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1900 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1901 | Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1902 | Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1903 | Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1904 | Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1905 | Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1906 | Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1907 | Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1908 | [ 343s] | [ 343s] 1909 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1910 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1911 | [ 343s] | [ 343s] 1912 | double hfsq, f, c, s, z, R, u; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1913 | int32_t k, hx, hu, ax; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1914 | [ 343s] | [ 343s] 1915 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1916 | ax = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1917 | [ 343s] | [ 343s] 1918 | c = 0; [ 343s] | ~~~~~~ [ 343s] 1919 | k = 1; [ 343s] | ~~~~~~ [ 343s] 1920 | if (hx < 0x3FDA827A) { /* 1+x < sqrt(2)+ */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1921 | if (ax >= 0x3FF00000) { /* x <= -1.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1922 | if (x == -1.0) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1923 | return -two54 / vzero; /* log1p(-1)=+inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1924 | else [ 343s] | ~~~~ [ 343s] 1925 | return (x - x) / (x - x); /* log1p(x<-1)=NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1926 | } [ 343s] | ~ [ 343s] 1927 | if (ax < 0x3E200000) { /* |x| < 2**-29 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1928 | if (two54 + x > zero /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1929 | && ax < 0x3C900000) /* |x| < 2**-54 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1930 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 1931 | else [ 343s] | ~~~~ [ 343s] 1932 | return x - x * x * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1933 | } [ 343s] | ~ [ 343s] 1934 | if (hx > 0 || hx <= static_cast(0xBFD2BEC4)) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1935 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1936 | f = x; [ 343s] | ~~~~~~ [ 343s] 1937 | hu = 1; [ 343s] | ~~~~~~~ [ 343s] 1938 | } /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1939 | } [ 343s] | ~ [ 343s] 1940 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1941 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1942 | if (k != 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1943 | if (hx < 0x43400000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1944 | STRICT_ASSIGN(double, u, 1.0 + x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1945 | GET_HIGH_WORD(hu, u); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1946 | k = (hu >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1947 | c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1948 | c /= u; [ 343s] | ~~~~~~~ [ 343s] 1949 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1950 | u = x; [ 343s] | ~~~~~~ [ 343s] 1951 | GET_HIGH_WORD(hu, u); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1952 | k = (hu >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1953 | c = 0; [ 343s] | ~~~~~~ [ 343s] 1954 | } [ 343s] | ~ [ 343s] 1955 | hu &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1956 | /* [ 343s] | ~~ [ 343s] 1957 | * The approximation to sqrt(2) used in thresholds is not [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1958 | * critical. However, the ones used above must give less [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1959 | * strict bounds than the one here so that the k==0 case is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1960 | * never reached from here, since here we have committed to [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1961 | * using the correction term but don't use it if k==0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1962 | */ [ 343s] | ~~ [ 343s] 1963 | if (hu < 0x6A09E) { /* u ~< sqrt(2) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1964 | SET_HIGH_WORD(u, hu | 0x3FF00000); /* normalize u */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1965 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1966 | k += 1; [ 343s] | ~~~~~~~ [ 343s] 1967 | SET_HIGH_WORD(u, hu | 0x3FE00000); /* normalize u/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1968 | hu = (0x00100000 - hu) >> 2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1969 | } [ 343s] | ~ [ 343s] 1970 | f = u - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1971 | } [ 343s] | ~ [ 343s] 1972 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1973 | if (hu == 0) { /* |f| < 2**-20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1974 | if (f == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1975 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1976 | return zero; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1977 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1978 | c += k * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1979 | return k * ln2_hi + c; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1980 | } [ 343s] | ~ [ 343s] 1981 | } [ 343s] | ~ [ 343s] 1982 | R = hfsq * (1.0 - 0.66666666666666666 * f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1983 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1984 | return f - R; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1985 | else [ 343s] | ~~~~ [ 343s] 1986 | return k * ln2_hi - ((R - (k * ln2_lo + c)) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1987 | } [ 343s] | ~ [ 343s] 1988 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1989 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 1990 | R = z * (Lp1 + z * (Lp2 + z * (Lp3 + z * (Lp4 + z * (Lp5 + z * (Lp6 + z * Lp7)))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1991 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1992 | return f - (hfsq - s * (hfsq + R)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1993 | else [ 343s] | ~~~~ [ 343s] 1994 | return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1995 | } [ 343s] | ~ [ 343s] 1996 | [ 343s] | [ 343s] 1997 | /* [ 343s] | ~~ [ 343s] 1998 | * k_log1p(f): [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1999 | * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)]. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2000 | * [ 343s] | ~ [ 343s] 2001 | * The following describes the overall strategy for computing [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2002 | * logarithms in base e. The argument reduction and adding the final [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2003 | * term of the polynomial are done by the caller for increased accuracy [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2004 | * when different bases are used. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2005 | * [ 343s] | ~ [ 343s] 2006 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2007 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2008 | * x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2009 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2010 | * [ 343s] | ~ [ 343s] 2011 | * 2. Approximation of log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2012 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2013 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2014 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2015 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2016 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2017 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2018 | * other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2019 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2020 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2021 | * (the values of Lg1 to Lg7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2022 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 2023 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2024 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2025 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2026 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2027 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2028 | * by [ 343s] | ~~~~~~~~~ [ 343s] 2029 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2030 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2031 | * [ 343s] | ~ [ 343s] 2032 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2033 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2034 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2035 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2036 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2037 | * [ 343s] | ~ [ 343s] 2038 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2039 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2040 | * log(+INF) is +INF; log(0) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2041 | * log(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2042 | * [ 343s] | ~ [ 343s] 2043 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2044 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2045 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2046 | * [ 343s] | ~ [ 343s] 2047 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 2048 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2049 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2050 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2051 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2052 | */ [ 343s] | ~~ [ 343s] 2053 | [ 343s] | [ 343s] 2054 | constexpr double Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2055 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2056 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2057 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2058 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2059 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2060 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2061 | [ 343s] | [ 343s] 2062 | /* [ 343s] | ~~ [ 343s] 2063 | * We always inline k_log1p(), since doing so produces a [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2064 | * substantial performance improvement (~40% on amd64). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2065 | */ [ 343s] | ~~ [ 343s] 2066 | static inline double k_log1p(double f) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2067 | { [ 343s] | ~ [ 343s] 2068 | double hfsq, s, z, R, w, t1, t2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2069 | [ 343s] | [ 343s] 2070 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2071 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 2072 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 2073 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2074 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2075 | R = t2 + t1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2076 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2077 | return s * (hfsq + R); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2078 | } [ 343s] | ~ [ 343s] 2079 | [ 343s] | [ 343s] 2080 | /* [ 343s] | ~~ [ 343s] 2081 | * Return the base 2 logarithm of x. See e_log.c and k_log.h for most [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2082 | * comments. [ 343s] | ~~~~~~~~~~~ [ 343s] 2083 | * [ 343s] | ~ [ 343s] 2084 | * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2085 | * then does the combining and scaling steps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2086 | * log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2087 | * in not-quite-routine extra precision. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2088 | */ [ 343s] | ~~ [ 343s] 2089 | double log2(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2090 | { [ 343s] | ~ [ 343s] 2091 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2092 | two54 [ 343s] | ~~~~~ [ 343s] 2093 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2094 | ivln2hi = 1.44269504072144627571e+00, /* 0x3FF71547, 0x65200000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2095 | ivln2lo = 1.67517131648865118353e-10; /* 0x3DE705FC, 0x2EEFA200 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2096 | [ 343s] | [ 343s] 2097 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2098 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2099 | [ 343s] | [ 343s] 2100 | double f, hfsq, hi, lo, r, val_hi, val_lo, w, y; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2101 | int32_t i, k, hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2102 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2103 | [ 343s] | [ 343s] 2104 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2105 | [ 343s] | [ 343s] 2106 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2107 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2108 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2109 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2110 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 2111 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2112 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 2113 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2114 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2115 | } [ 343s] | ~ [ 343s] 2116 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2117 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2118 | if (hx == 0x3FF00000 && lx == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2119 | return zero; /* log(1) = +0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2120 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2121 | hx &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2122 | i = (hx + 0x95F64) & 0x100000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2123 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2124 | k += (i >> 20); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2125 | y = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2126 | f = x - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2127 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2128 | r = k_log1p(f); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2129 | [ 343s] | [ 343s] 2130 | /* [ 343s] | ~~ [ 343s] 2131 | * f-hfsq must (for args near 1) be evaluated in extra precision [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2132 | * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2133 | * This is fairly efficient since f-hfsq only depends on f, so can [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2134 | * be evaluated in parallel with R. Not combining hfsq with R also [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2135 | * keeps R small (though not as small as a true `lo' term would be), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2136 | * so that extra precision is not needed for terms involving R. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2137 | * [ 343s] | ~ [ 343s] 2138 | * Compiler bugs involving extra precision used to break Dekker's [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2139 | * theorem for spitting f-hfsq as hi+lo, unless double_t was used [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2140 | * or the multi-precision calculations were avoided when double_t [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2141 | * has extra precision. These problems are now automatically [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2142 | * avoided as a side effect of the optimization of combining the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2143 | * Dekker splitting step with the clear-low-bits step. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2144 | * [ 343s] | ~ [ 343s] 2145 | * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2146 | * precision to avoid a very large cancellation when x is very near [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2147 | * these values. Unlike the above cancellations, this problem is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2148 | * specific to base 2. It is strange that adding +-1 is so much [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2149 | * harder than adding +-ln2 or +-log10_2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2150 | * [ 343s] | ~ [ 343s] 2151 | * This uses Dekker's theorem to normalize y+val_hi, so the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2152 | * compiler bugs are back in some configurations, sigh. And I [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2153 | * don't want to used double_t to avoid them, since that gives a [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2154 | * pessimization and the support for avoiding the pessimization [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2155 | * is not yet available. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2156 | * [ 343s] | ~ [ 343s] 2157 | * The multi-precision calculations for the multiplications are [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2158 | * routine. [ 343s] | ~~~~~~~~~~ [ 343s] 2159 | */ [ 343s] | ~~ [ 343s] 2160 | hi = f - hfsq; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2161 | SET_LOW_WORD(hi, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2162 | lo = (f - hi) - hfsq + r; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2163 | val_hi = hi * ivln2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2164 | val_lo = (lo + hi) * ivln2lo + lo * ivln2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2165 | [ 343s] | [ 343s] 2166 | /* spadd(val_hi, val_lo, y), except for not using double_t: */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2167 | w = y + val_hi; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2168 | val_lo += (y - w) + val_hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2169 | val_hi = w; [ 343s] | ~~~~~~~~~~~ [ 343s] 2170 | [ 343s] | [ 343s] 2171 | return val_lo + val_hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2172 | } [ 343s] | ~ [ 343s] 2173 | [ 343s] | [ 343s] 2174 | /* [ 343s] | ~~ [ 343s] 2175 | * Return the base 10 logarithm of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2176 | * [ 343s] | ~ [ 343s] 2177 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2178 | * Let log10_2hi = leading 40 bits of log10(2) and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2179 | * log10_2lo = log10(2) - log10_2hi, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2180 | * ivln10 = 1/log(10) rounded. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2181 | * Then [ 343s] | ~~~~~~~~~~~ [ 343s] 2182 | * n = ilogb(x), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2183 | * if(n<0) n = n+1; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2184 | * x = scalbn(x,-n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2185 | * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2186 | * [ 343s] | ~ [ 343s] 2187 | * Note 1: [ 343s] | ~~~~~~~~~~ [ 343s] 2188 | * To guarantee log10(10**n)=n, where 10**n is normal, the rounding [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2189 | * mode must set to Round-to-Nearest. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2190 | * Note 2: [ 343s] | ~~~~~~~~~~ [ 343s] 2191 | * [1/log(10)] rounded to 53 bits has error .198 ulps; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2192 | * log10 is monotonic at all binary break points. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2193 | * [ 343s] | ~ [ 343s] 2194 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2195 | * log10(x) is NaN if x < 0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2196 | * log10(+INF) is +INF; log10(0) is -INF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2197 | * log10(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2198 | * log10(10**N) = N for N=0,1,...,22. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2199 | */ [ 343s] | ~~ [ 343s] 2200 | double log10(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2201 | { [ 343s] | ~ [ 343s] 2202 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2203 | two54 [ 343s] | ~~~~~ [ 343s] 2204 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2205 | ivln10 = 4.34294481903251816668e-01, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2206 | log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2207 | log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2208 | [ 343s] | [ 343s] 2209 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2210 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2211 | [ 343s] | [ 343s] 2212 | double y; [ 343s] | ~~~~~~~~~ [ 343s] 2213 | int32_t i, k, hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2214 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2215 | [ 343s] | [ 343s] 2216 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2217 | [ 343s] | [ 343s] 2218 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2219 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2220 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2221 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2222 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 2223 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2224 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 2225 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2226 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2227 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2228 | } [ 343s] | ~ [ 343s] 2229 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2230 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2231 | if (hx == 0x3FF00000 && lx == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2232 | return zero; /* log(1) = +0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2233 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2234 | [ 343s] | [ 343s] 2235 | i = (k & 0x80000000) >> 31; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2236 | hx = (hx & 0x000FFFFF) | ((0x3FF - i) << 20); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2237 | y = k + i; [ 343s] | ~~~~~~~~~~ [ 343s] 2238 | SET_HIGH_WORD(x, hx); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2239 | SET_LOW_WORD(x, lx); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2240 | [ 343s] | [ 343s] 2241 | double z = y * log10_2lo + ivln10 * log(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2242 | return z + y * log10_2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2243 | } [ 343s] | ~ [ 343s] 2244 | [ 343s] | [ 343s] 2245 | /* expm1(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 2246 | * Returns exp(x)-1, the exponential of x minus 1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2247 | * [ 343s] | ~ [ 343s] 2248 | * Method [ 343s] | ~~~~~~~~ [ 343s] 2249 | * 1. Argument reduction: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2250 | * Given x, find r and integer k such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2251 | * [ 343s] | ~ [ 343s] 2252 | * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2253 | * [ 343s] | ~ [ 343s] 2254 | * Here a correction term c will be computed to compensate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2255 | * the error in r when rounded to a floating-point number. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2256 | * [ 343s] | ~ [ 343s] 2257 | * 2. Approximating expm1(r) by a special rational function on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2258 | * the interval [0,0.34658]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2259 | * Since [ 343s] | ~~~~~~~~ [ 343s] 2260 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2261 | * we define R1(r*r) by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2262 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2263 | * That is, [ 343s] | ~~~~~~~~~~~ [ 343s] 2264 | * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2265 | * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2266 | * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2267 | * We use a special Reme algorithm on [0,0.347] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2268 | * a polynomial of degree 5 in r*r to approximate R1. The [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2269 | * maximum error of this polynomial approximation is bounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2270 | * by 2**-61. In other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2271 | * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2272 | * where Q1 = -1.6666666666666567384E-2, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2273 | * Q2 = 3.9682539681370365873E-4, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2274 | * Q3 = -9.9206344733435987357E-6, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2275 | * Q4 = 2.5051361420808517002E-7, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2276 | * Q5 = -6.2843505682382617102E-9; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2277 | * z = r*r, [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2278 | * with error bounded by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2279 | * | 5 | -61 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2280 | * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2281 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2282 | * [ 343s] | ~ [ 343s] 2283 | * expm1(r) = exp(r)-1 is then computed by the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2284 | * specific way which minimize the accumulation rounding error: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2285 | * 2 3 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2286 | * r r [ 3 - (R1 + R1*r/2) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2287 | * expm1(r) = r + --- + --- * [--------------------] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2288 | * 2 2 [ 6 - r*(3 - R1*r/2) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2289 | * [ 343s] | ~ [ 343s] 2290 | * To compensate the error in the argument reduction, we use [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2291 | * expm1(r+c) = expm1(r) + c + expm1(r)*c [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2292 | * ~ expm1(r) + c + r*c [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2293 | * Thus c+r*c will be added in as the correction terms for [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2294 | * expm1(r+c). Now rearrange the term to avoid optimization [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2295 | * screw up: [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2296 | * ( 2 2 ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2297 | * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2298 | * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2299 | * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2300 | * ( ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2301 | * [ 343s] | ~ [ 343s] 2302 | * = r - E [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2303 | * 3. Scale back to obtain expm1(x): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2304 | * From step 1, we have [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2305 | * expm1(x) = either 2^k*[expm1(r)+1] - 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2306 | * = or 2^k*[expm1(r) + (1-2^-k)] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2307 | * 4. Implementation notes: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2308 | * (A). To save one multiplication, we scale the coefficient Qi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2309 | * to Qi*2^i, and replace z by (x^2)/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2310 | * (B). To achieve maximum accuracy, we compute expm1(x) by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2311 | * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2312 | * (ii) if k=0, return r-E [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2313 | * (iii) if k=-1, return 0.5*(r-E)-0.5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2314 | * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2315 | * else return 1.0+2.0*(r-E); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2316 | * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2317 | * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2318 | * (vii) return 2^k(1-((E+2^-k)-r)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2319 | * [ 343s] | ~ [ 343s] 2320 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2321 | * expm1(INF) is INF, expm1(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2322 | * expm1(-INF) is -1, and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2323 | * for finite argument, only expm1(0)=0 is exact. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2324 | * [ 343s] | ~ [ 343s] 2325 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2326 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2327 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2328 | * [ 343s] | ~ [ 343s] 2329 | * Misc. info. [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2330 | * For IEEE double [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2331 | * if x > 7.09782712893383973096e+02 then expm1(x) overflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2332 | * [ 343s] | ~ [ 343s] 2333 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 2334 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2335 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2336 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2337 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2338 | */ [ 343s] | ~~ [ 343s] 2339 | double expm1(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2340 | { [ 343s] | ~ [ 343s] 2341 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2342 | one [ 343s] | ~~~ [ 343s] 2343 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 2344 | tiny = 1.0e-300, [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2345 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2346 | ln2_hi = 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2347 | ln2_lo = 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2348 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2349 | /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2350 | x*x/2: */ [ 343s] | ~~~~~~~~~ [ 343s] 2351 | Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2352 | Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2353 | Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2354 | Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2355 | Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2356 | [ 343s] | [ 343s] 2357 | constexpr volatile double huge = 1.0e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2358 | [ 343s] | [ 343s] 2359 | double y, hi, lo, c, t, e, hxs, hfx, r1, twopk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2360 | int32_t k, xsb; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2361 | uint32_t hx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2362 | [ 343s] | [ 343s] 2363 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2364 | xsb = hx & 0x80000000; /* sign bit of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2365 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2366 | [ 343s] | [ 343s] 2367 | /* filter out huge and non-finite argument */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2368 | if (hx >= 0x4043687A) { /* if |x|>=56*ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2369 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2370 | if (hx >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2371 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2372 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2373 | if (((hx & 0xFFFFF) | low) != 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2374 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2375 | else [ 343s] | ~~~~ [ 343s] 2376 | return (xsb == 0) ? x : -1.0; /* exp(+-inf)={inf,-1} */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2377 | } [ 343s] | ~ [ 343s] 2378 | if (x > o_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2379 | return huge * huge; /* overflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2380 | } [ 343s] | ~ [ 343s] 2381 | if (xsb != 0 && x + tiny < 0.0) { /* x < -56*ln2, return -1.0 with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2382 | /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2383 | return tiny - one; /* return -1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2384 | } [ 343s] | ~ [ 343s] 2385 | } [ 343s] | ~ [ 343s] 2386 | [ 343s] | [ 343s] 2387 | /* argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2388 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2389 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2390 | if (xsb == 0) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2391 | hi = x - ln2_hi; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2392 | lo = ln2_lo; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2393 | k = 1; [ 343s] | ~~~~~~ [ 343s] 2394 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2395 | hi = x + ln2_hi; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2396 | lo = -ln2_lo; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2397 | k = -1; [ 343s] | ~~~~~~~ [ 343s] 2398 | } [ 343s] | ~ [ 343s] 2399 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2400 | k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2401 | t = k; [ 343s] | ~~~~~~ [ 343s] 2402 | hi = x - t * ln2_hi; /* t*ln2_hi is exact here */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2403 | lo = t * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2404 | } [ 343s] | ~ [ 343s] 2405 | STRICT_ASSIGN(double, x, hi - lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2406 | c = (hi - x) - lo; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2407 | } else if (hx < 0x3C900000) { /* when |x|<2**-54, return x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2408 | t = huge + x; /* return x with inexact flags when x!=0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2409 | return x - (t - (huge + x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2410 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2411 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2412 | } [ 343s] | ~ [ 343s] 2413 | [ 343s] | [ 343s] 2414 | /* x is now in primary range */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2415 | hfx = 0.5 * x; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2416 | hxs = x * hfx; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2417 | r1 = one + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2418 | t = 3.0 - r1 * hfx; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2419 | e = hxs * ((r1 - t) / (6.0 - x * t)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2420 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2421 | return x - (x * e - hxs); /* c is 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2422 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2423 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); /* 2^k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2424 | e = (x * (e - c) - c); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2425 | e -= hxs; [ 343s] | ~~~~~~~~~ [ 343s] 2426 | if (k == -1) [ 343s] | ~~~~~~~~~~~~ [ 343s] 2427 | return 0.5 * (x - e) - 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2428 | if (k == 1) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2429 | if (x < -0.25) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2430 | return -2.0 * (e - (x + 0.5)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2431 | else [ 343s] | ~~~~ [ 343s] 2432 | return one + 2.0 * (x - e); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2433 | } [ 343s] | ~ [ 343s] 2434 | if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2435 | y = one - (e - x); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2436 | // TODO(mvstanton): is this replacement for the hex float [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2437 | // sufficient? [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2438 | // if (k == 1024) y = y*2.0*0x1p1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2439 | if (k == 1024) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2440 | y = y * 2.0 * 8.98846567431158e+307; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2441 | else [ 343s] | ~~~~ [ 343s] 2442 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2443 | return y - one; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2444 | } [ 343s] | ~ [ 343s] 2445 | t = one; [ 343s] | ~~~~~~~~ [ 343s] 2446 | if (k < 20) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2447 | SET_HIGH_WORD(t, 0x3FF00000 - (0x200000 >> k)); /* t=1-2^-k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2448 | y = t - (e - x); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2449 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2450 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2451 | SET_HIGH_WORD(t, ((0x3FF - k) << 20)); /* 2^-k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2452 | y = x - (e + t); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2453 | y += one; [ 343s] | ~~~~~~~~~ [ 343s] 2454 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2455 | } [ 343s] | ~ [ 343s] 2456 | } [ 343s] | ~ [ 343s] 2457 | return y; [ 343s] | ~~~~~~~~~ [ 343s] 2458 | } [ 343s] | ~ [ 343s] 2459 | [ 343s] | [ 343s] 2460 | double cbrt(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2461 | { [ 343s] | ~ [ 343s] 2462 | constexpr uint32_t [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2463 | B1 [ 343s] | ~~ [ 343s] 2464 | = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2465 | B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2466 | [ 343s] | [ 343s] 2467 | /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2468 | constexpr double P0 = 1.87595182427177009643, /* 0x3FFE03E6, 0x0F61E692 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2469 | P1 = -1.88497979543377169875, /* 0xBFFE28E0, 0x92F02420 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2470 | P2 = 1.621429720105354466140, /* 0x3FF9F160, 0x4A49D6C2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2471 | P3 = -0.758397934778766047437, /* 0xBFE844CB, 0xBEE751D9 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2472 | P4 = 0.145996192886612446982; /* 0x3FC2B000, 0xD4E4EDD7 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2473 | [ 343s] | [ 343s] 2474 | int32_t hx; [ 343s] | ~~~~~~~~~~~ [ 343s] 2475 | union { [ 343s] | ~~~~~~~ [ 343s] 2476 | double value; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2477 | uint64_t bits; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2478 | } u; [ 343s] | ~~~~ [ 343s] 2479 | double r, s, t = 0.0, w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2480 | uint32_t sign; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2481 | uint32_t high, low; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2482 | [ 343s] | [ 343s] 2483 | EXTRACT_WORDS(hx, low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2484 | sign = hx & 0x80000000; /* sign= sign(x) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2485 | hx ^= sign; [ 343s] | ~~~~~~~~~~~ [ 343s] 2486 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2487 | return (x + x); /* cbrt(NaN,INF) is itself */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2488 | [ 343s] | [ 343s] 2489 | /* [ 343s] | ~~ [ 343s] 2490 | * Rough cbrt to 5 bits: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2491 | * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2492 | * where e is integral and >= 0, m is real and in [0, 1), and "/" and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2493 | * "%" are integer division and modulus with rounding towards minus [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2494 | * infinity. The RHS is always >= the LHS and has a maximum relative [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2495 | * error of about 1 in 16. Adding a bias of -0.03306235651 to the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2496 | * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2497 | * floating point representation, for finite positive normal values, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2498 | * ordinary integer division of the value in bits magically gives [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2499 | * almost exactly the RHS of the above provided we first subtract the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2500 | * exponent bias (1023 for doubles) and later add it back. We do the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2501 | * subtraction virtually to keep e >= 0 so that ordinary integer [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2502 | * division rounds towards minus infinity; this is also efficient. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2503 | */ [ 343s] | ~~ [ 343s] 2504 | if (hx < 0x00100000) { /* zero or subnormal? */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2505 | if ((hx | low) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2506 | return (x); /* cbrt(0) is itself */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2507 | SET_HIGH_WORD(t, 0x43500000); /* set t= 2**54 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2508 | t *= x; [ 343s] | ~~~~~~~ [ 343s] 2509 | GET_HIGH_WORD(high, t); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2510 | INSERT_WORDS(t, sign | ((high & 0x7FFFFFFF) / 3 + B2), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2511 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2512 | INSERT_WORDS(t, sign | (hx / 3 + B1), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2513 | } [ 343s] | ~ [ 343s] 2514 | [ 343s] | [ 343s] 2515 | /* [ 343s] | ~~ [ 343s] 2516 | * New cbrt to 23 bits: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2517 | * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2518 | * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2519 | * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2520 | * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2521 | * gives us bounds for r = t**3/x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2522 | * [ 343s] | ~ [ 343s] 2523 | * Try to optimize for parallel evaluation as in k_tanf.c. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2524 | */ [ 343s] | ~~ [ 343s] 2525 | r = (t * t) * (t / x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2526 | t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2527 | [ 343s] | [ 343s] 2528 | /* [ 343s] | ~~ [ 343s] 2529 | * Round t away from zero to 23 bits (sloppily except for ensuring that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2530 | * the result is larger in magnitude than cbrt(x) but not much more than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2531 | * 2 23-bit ulps larger). With rounding towards zero, the error bound [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2532 | * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2533 | * in the rounded t, the infinite-precision error in the Newton [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2534 | * approximation barely affects third digit in the final error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2535 | * 0.667; the error in the rounded t can be up to about 3 23-bit ulps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2536 | * before the final error is larger than 0.667 ulps. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2537 | */ [ 343s] | ~~ [ 343s] 2538 | u.value = t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2539 | u.bits = (u.bits + 0x80000000) & 0xFFFFFFFFC0000000ULL; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2540 | t = u.value; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2541 | [ 343s] | [ 343s] 2542 | /* one step Newton iteration to 53 bits with error < 0.667 ulps */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2543 | s = t * t; /* t*t is exact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2544 | r = x / s; /* error <= 0.5 ulps; |r| < |t| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2545 | w = t + t; /* t+t is exact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2546 | r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2547 | t = t + t * r; /* error <= 0.5 + 0.5/3 + epsilon */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2548 | [ 343s] | [ 343s] 2549 | return (t); [ 343s] | ~~~~~~~~~~~ [ 343s] 2550 | } [ 343s] | ~ [ 343s] 2551 | [ 343s] | [ 343s] 2552 | /* sin(x) [ 343s] | ~~~~~~~~~ [ 343s] 2553 | * Return sine function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2554 | * [ 343s] | ~ [ 343s] 2555 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2556 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2557 | * __kernel_cos ... cose function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2558 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2559 | * [ 343s] | ~ [ 343s] 2560 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 2561 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2562 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2563 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2564 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2565 | * [ 343s] | ~ [ 343s] 2566 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2567 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2568 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2569 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2570 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2571 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2572 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2573 | * [ 343s] | ~ [ 343s] 2574 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2575 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2576 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2577 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2578 | * [ 343s] | ~ [ 343s] 2579 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2580 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2581 | */ [ 343s] | ~~ [ 343s] 2582 | double sin(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2583 | { [ 343s] | ~ [ 343s] 2584 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2585 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2586 | [ 343s] | [ 343s] 2587 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2588 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2589 | [ 343s] | [ 343s] 2590 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2591 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2592 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2593 | return __kernel_sin(x, z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2594 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2595 | /* sin(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2596 | return x - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2597 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2598 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2599 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2600 | switch (n & 3) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2601 | case 0: [ 343s] | ~~~~~~~ [ 343s] 2602 | return __kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2603 | case 1: [ 343s] | ~~~~~~~ [ 343s] 2604 | return __kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2605 | case 2: [ 343s] | ~~~~~~~ [ 343s] 2606 | return -__kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2607 | default: [ 343s] | ~~~~~~~~ [ 343s] 2608 | return -__kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2609 | } [ 343s] | ~ [ 343s] 2610 | } [ 343s] | ~ [ 343s] 2611 | } [ 343s] | ~ [ 343s] 2612 | [ 343s] | [ 343s] 2613 | /* tan(x) [ 343s] | ~~~~~~~~~ [ 343s] 2614 | * Return tangent function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2615 | * [ 343s] | ~ [ 343s] 2616 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2617 | * __kernel_tan ... tangent function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2618 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2619 | * [ 343s] | ~ [ 343s] 2620 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 2621 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2622 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2623 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2624 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2625 | * [ 343s] | ~ [ 343s] 2626 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2627 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2628 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2629 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2630 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2631 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2632 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2633 | * [ 343s] | ~ [ 343s] 2634 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2635 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2636 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2637 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2638 | * [ 343s] | ~ [ 343s] 2639 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2640 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2641 | */ [ 343s] | ~~ [ 343s] 2642 | double tan(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2643 | { [ 343s] | ~ [ 343s] 2644 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2645 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2646 | [ 343s] | [ 343s] 2647 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2648 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2649 | [ 343s] | [ 343s] 2650 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2651 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2652 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2653 | return __kernel_tan(x, z, 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2654 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2655 | /* tan(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2656 | return x - x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2657 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2658 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2659 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2660 | /* 1 -> n even, -1 -> n odd */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2661 | return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2662 | } [ 343s] | ~ [ 343s] 2663 | } [ 343s] | ~ [ 343s] 2664 | [ 343s] | [ 343s] 2665 | /* [ 343s] | ~~ [ 343s] 2666 | * ES6 draft 09-27-13, section 20.2.2.12. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2667 | * Math.cosh [ 343s] | ~~~~~~~~~~~ [ 343s] 2668 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2669 | * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2670 | * 1. Replace x by |x| (cosh(x) = cosh(-x)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2671 | * 2. [ 343s] | ~~~~~~~~~ [ 343s] 2672 | * [ exp(x) - 1 ]^2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2673 | * 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2674 | * 2*exp(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2675 | * [ 343s] | ~ [ 343s] 2676 | * exp(x) + 1/exp(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2677 | * ln2/2 <= x <= 22 : cosh(x) := ------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2678 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2679 | * 22 <= x <= lnovft : cosh(x) := exp(x)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2680 | * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2681 | * ln2ovft < x : cosh(x) := huge*huge (overflow) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2682 | * [ 343s] | ~ [ 343s] 2683 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2684 | * cosh(x) is |x| if x is +INF, -INF, or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2685 | * only cosh(0)=1 is exact for finite x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2686 | */ [ 343s] | ~~ [ 343s] 2687 | double cosh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2688 | { [ 343s] | ~ [ 343s] 2689 | constexpr double KCOSH_OVERFLOW = 710.4758600739439; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2690 | constexpr double one = 1.0, half = 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2691 | constexpr volatile double huge = 1.0e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2692 | [ 343s] | [ 343s] 2693 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 2694 | [ 343s] | [ 343s] 2695 | /* High word of |x|. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2696 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2697 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2698 | [ 343s] | [ 343s] 2699 | // |x| in [0,0.5*log2], return 1+expm1(|x|)^2/(2*exp(|x|)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2700 | if (ix < 0x3FD62E43) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2701 | double t = expm1(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2702 | double w = one + t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2703 | // For |x| < 2^-55, cosh(x) = 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2704 | if (ix < 0x3C800000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2705 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 2706 | return one + (t * t) / (w + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2707 | } [ 343s] | ~ [ 343s] 2708 | [ 343s] | [ 343s] 2709 | // |x| in [0.5*log2, 22], return (exp(|x|)+1/exp(|x|)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2710 | if (ix < 0x40360000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2711 | double t = exp(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2712 | return half * t + half / t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2713 | } [ 343s] | ~ [ 343s] 2714 | [ 343s] | [ 343s] 2715 | // |x| in [22, log(maxdouble)], return half*exp(|x|) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2716 | if (ix < 0x40862E42) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2717 | return half * exp(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2718 | [ 343s] | [ 343s] 2719 | // |x| in [log(maxdouble), overflowthreshold] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2720 | if (fabs(x) <= KCOSH_OVERFLOW) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2721 | double w = exp(half * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2722 | double t = half * w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2723 | return t * w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2724 | } [ 343s] | ~ [ 343s] 2725 | [ 343s] | [ 343s] 2726 | /* x is INF or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2727 | if (ix >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2728 | return x * x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2729 | [ 343s] | [ 343s] 2730 | // |x| > overflowthreshold. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2731 | return huge * huge; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2732 | } [ 343s] | ~ [ 343s] 2733 | [ 343s] | [ 343s] 2734 | /* [ 343s] | ~~ [ 343s] 2735 | * ES6 draft 09-27-13, section 20.2.2.30. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2736 | * Math.sinh [ 343s] | ~~~~~~~~~~~ [ 343s] 2737 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2738 | * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2739 | * 1. Replace x by |x| (sinh(-x) = -sinh(x)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2740 | * 2. [ 343s] | ~~~~~~~~~ [ 343s] 2741 | * E + E/(E+1) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2742 | * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2743 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2744 | * [ 343s] | ~ [ 343s] 2745 | * 22 <= x <= lnovft : sinh(x) := exp(x)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2746 | * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2747 | * ln2ovft < x : sinh(x) := x*shuge (overflow) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2748 | * [ 343s] | ~ [ 343s] 2749 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2750 | * sinh(x) is |x| if x is +Infinity, -Infinity, or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2751 | * only sinh(0)=0 is exact for finite x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2752 | */ [ 343s] | ~~ [ 343s] 2753 | double sinh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2754 | { [ 343s] | ~ [ 343s] 2755 | constexpr double KSINH_OVERFLOW = 710.4758600739439, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2756 | TWO_M28 = 3.725290298461914e-9, // 2^-28, empty lower half [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2757 | LOG_MAXD = 709.7822265625; // 0x40862E42 00000000, empty lower half [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2758 | constexpr double shuge = 1.0e307; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2759 | [ 343s] | [ 343s] 2760 | double h = (x < 0) ? -0.5 : 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2761 | // |x| in [0, 22]. return sign(x)*0.5*(E+E/(E+1)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2762 | double ax = fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2763 | if (ax < 22) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2764 | // For |x| < 2^-28, sinh(x) = x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2765 | if (ax < TWO_M28) [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2766 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 2767 | double t = expm1(ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2768 | if (ax < 1) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2769 | return h * (2 * t - t * t / (t + 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2770 | } [ 343s] | ~ [ 343s] 2771 | return h * (t + t / (t + 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2772 | } [ 343s] | ~ [ 343s] 2773 | // |x| in [22, log(maxdouble)], return 0.5 * exp(|x|) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2774 | if (ax < LOG_MAXD) [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2775 | return h * exp(ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2776 | // |x| in [log(maxdouble), overflowthreshold] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2777 | // overflowthreshold = 710.4758600739426 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2778 | if (ax <= KSINH_OVERFLOW) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2779 | double w = exp(0.5 * ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2780 | double t = h * w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2781 | return t * w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2782 | } [ 343s] | ~ [ 343s] 2783 | // |x| > overflowthreshold or is NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2784 | // Return Infinity of the appropriate sign or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2785 | return x * shuge; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2786 | } [ 343s] | ~ [ 343s] 2787 | [ 343s] | [ 343s] 2788 | /* Tanh(x) [ 343s] | ~~~~~~~~~~ [ 343s] 2789 | * Return the Hyperbolic Tangent of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2790 | * [ 343s] | ~ [ 343s] 2791 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2792 | * x -x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2793 | * e - e [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2794 | * 0. tanh(x) is defined to be ----------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2795 | * x -x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2796 | * e + e [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2797 | * 1. reduce x to non-negative by tanh(-x) = -tanh(x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2798 | * 2. 0 <= x < 2**-28 : tanh(x) := x with inexact if x != 0 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2799 | * -t [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2800 | * 2**-28 <= x < 1 : tanh(x) := -----; t = expm1(-2x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2801 | * t + 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2802 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2803 | * 1 <= x < 22 : tanh(x) := 1 - -----; t = expm1(2x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2804 | * t + 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2805 | * 22 <= x <= INF : tanh(x) := 1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2806 | * [ 343s] | ~ [ 343s] 2807 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2808 | * tanh(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2809 | * only tanh(0)=0 is exact for finite argument. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2810 | */ [ 343s] | ~~ [ 343s] 2811 | double tanh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2812 | { [ 343s] | ~ [ 343s] 2813 | constexpr volatile double tiny = 1.0e-300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2814 | constexpr double one = 1.0, two = 2.0, huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2815 | double t, z; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2816 | int32_t jx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2817 | [ 343s] | [ 343s] 2818 | GET_HIGH_WORD(jx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2819 | ix = jx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2820 | [ 343s] | [ 343s] 2821 | /* x is INF or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2822 | if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2823 | if (jx >= 0) [ 343s] | ~~~~~~~~~~~~ [ 343s] 2824 | return one / x + one; /* tanh(+-inf)=+-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2825 | else [ 343s] | ~~~~ [ 343s] 2826 | return one / x - one; /* tanh(NaN) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2827 | } [ 343s] | ~ [ 343s] 2828 | [ 343s] | [ 343s] 2829 | /* |x| < 22 */ [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2830 | if (ix < 0x40360000) { /* |x|<22 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2831 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2832 | return x; /* tanh(tiny) = tiny with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2833 | } [ 343s] | ~ [ 343s] 2834 | if (ix >= 0x3FF00000) { /* |x|>=1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2835 | t = expm1(two * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2836 | z = one - two / (t + two); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2837 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2838 | t = expm1(-two * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2839 | z = -t / (t + two); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2840 | } [ 343s] | ~ [ 343s] 2841 | /* |x| >= 22, return +-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2842 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2843 | z = one - tiny; /* raise inexact flag */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2844 | } [ 343s] | ~ [ 343s] 2845 | return (jx >= 0) ? z : -z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2846 | } [ 343s] | ~ [ 343s] 2847 | [ 343s] | [ 343s] 2848 | double ceil(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2849 | { [ 343s] | ~ [ 343s] 2850 | constexpr double huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2851 | int i0, i1, j0; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2852 | unsigned i, j; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2853 | i0 = __HI(x); [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2854 | i1 = __LO(x); [ 343s] | ~~~~~~~~~~~ [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:2854:10: note: in expansion of macro '__LO' [ 343s] 2854 | i1 = __LO(x); [ 343s] | ^~~~ [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:86:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] [ 343s] 86 | #define __LO(x) *(int *)&x [ 343s] | ^~~~~~~~~ [ 343s] 87 | #define __HIp(x) *(1 + (int *)x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 88 | #define __LOp(x) *(int *)x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 89 | [ 343s] | [ 343s] 90 | #else [ 343s] | ~~~~~ [ 343s] 91 | [ 343s] | [ 343s] 92 | typedef union { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 93 | double value; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 94 | struct { [ 343s] | ~~~~~~~~ [ 343s] 95 | uint32_t msw; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 96 | uint32_t lsw; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 97 | } parts; [ 343s] | ~~~~~~~~ [ 343s] 98 | struct { [ 343s] | ~~~~~~~~ [ 343s] 99 | uint64_t w; [ 343s] | ~~~~~~~~~~~ [ 343s] 100 | } xparts; [ 343s] | ~~~~~~~~~ [ 343s] 101 | } ieee_double_shape_type; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 102 | [ 343s] | [ 343s] 103 | #define __HI(x) *(int *)&x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 104 | #define __LO(x) *(1 + (int *)&x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 105 | #define __HIp(x) *(int *)x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 106 | #define __LOp(x) *(1 + (int *)x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 107 | [ 343s] | [ 343s] 108 | #endif [ 343s] | ~~~~~~ [ 343s] 109 | [ 343s] | [ 343s] 110 | /* Get two 32 bit ints from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 111 | [ 343s] | [ 343s] 112 | #define EXTRACT_WORDS(ix0, ix1, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 113 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 114 | ieee_double_shape_type ew_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 115 | ew_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 116 | (ix0) = ew_u.parts.msw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 117 | (ix1) = ew_u.parts.lsw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 118 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 119 | [ 343s] | [ 343s] 120 | /* Get a 64-bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 121 | #define EXTRACT_WORD64(ix, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 122 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 123 | ieee_double_shape_type ew_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 124 | ew_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 125 | (ix) = ew_u.xparts.w; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 126 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 127 | [ 343s] | [ 343s] 128 | /* Get the more significant 32 bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 129 | [ 343s] | [ 343s] 130 | #define GET_HIGH_WORD(i, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 131 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 132 | ieee_double_shape_type gh_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 133 | gh_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 134 | (i) = gh_u.parts.msw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 135 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 136 | [ 343s] | [ 343s] 137 | /* Get the less significant 32 bit int from a double. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 138 | [ 343s] | [ 343s] 139 | #define GET_LOW_WORD(i, d) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 140 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 141 | ieee_double_shape_type gl_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 142 | gl_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 143 | (i) = gl_u.parts.lsw; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 144 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 145 | [ 343s] | [ 343s] 146 | /* Set a double from two 32 bit ints. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 147 | [ 343s] | [ 343s] 148 | #define INSERT_WORDS(d, ix0, ix1) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 149 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 150 | ieee_double_shape_type iw_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 151 | iw_u.parts.msw = (ix0); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 152 | iw_u.parts.lsw = (ix1); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 153 | (d) = iw_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 154 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 155 | [ 343s] | [ 343s] 156 | /* Set a double from a 64-bit int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 157 | #define INSERT_WORD64(d, ix) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 158 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 159 | ieee_double_shape_type iw_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 160 | iw_u.xparts.w = (ix); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 161 | (d) = iw_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 162 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 163 | [ 343s] | [ 343s] 164 | /* Set the more significant 32 bits of a double from an int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 165 | [ 343s] | [ 343s] 166 | #define SET_HIGH_WORD(d, v) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 167 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 168 | ieee_double_shape_type sh_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 169 | sh_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 170 | sh_u.parts.msw = (v); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 171 | (d) = sh_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 172 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 173 | [ 343s] | [ 343s] 174 | /* Set the less significant 32 bits of a double from an int. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 175 | [ 343s] | [ 343s] 176 | #define SET_LOW_WORD(d, v) \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 177 | do { \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 178 | ieee_double_shape_type sl_u; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 179 | sl_u.value = (d); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 180 | sl_u.parts.lsw = (v); \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 181 | (d) = sl_u.value; \ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 182 | } while (0) [ 343s] | ~~~~~~~~~~~ [ 343s] 183 | [ 343s] | [ 343s] 184 | /* Support macro. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 185 | [ 343s] | [ 343s] 186 | #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 187 | [ 343s] | [ 343s] 188 | int32_t __ieee754_rem_pio2(double x, double *y) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 189 | double __kernel_cos(double x, double y) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 190 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 191 | const int32_t *ipio2) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 192 | double __kernel_sin(double x, double y, int iy) WARN_UNUSED_RETURN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 193 | [ 343s] | [ 343s] 194 | /* __ieee754_rem_pio2(x,y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 195 | * [ 343s] | ~ [ 343s] 196 | * return the remainder of x rem pi/2 in y[0]+y[1] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 197 | * use __kernel_rem_pio2() [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 198 | */ [ 343s] | ~~ [ 343s] 199 | int32_t __ieee754_rem_pio2(double x, double *y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 200 | { [ 343s] | ~ [ 343s] 201 | /* [ 343s] | ~~ [ 343s] 202 | * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 203 | */ [ 343s] | ~~ [ 343s] 204 | constexpr int32_t two_over_pi[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 205 | 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 206 | 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 207 | 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 208 | 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 209 | 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 210 | 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 211 | 0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 212 | 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 213 | 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 214 | 0x73A8C9, 0x60E27B, 0xC08C6B, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 215 | }; [ 343s] | ~~ [ 343s] 216 | [ 343s] | [ 343s] 217 | constexpr int32_t npio2_hw[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 218 | 0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 219 | 0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 220 | 0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 221 | 0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 222 | 0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 223 | 0x404858EB, 0x404921FB, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 224 | }; [ 343s] | ~~ [ 343s] 225 | [ 343s] | [ 343s] 226 | /* [ 343s] | ~~ [ 343s] 227 | * invpio2: 53 bits of 2/pi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 228 | * pio2_1: first 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 229 | * pio2_1t: pi/2 - pio2_1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 230 | * pio2_2: second 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 231 | * pio2_2t: pi/2 - (pio2_1+pio2_2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 232 | * pio2_3: third 33 bit of pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 233 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 234 | */ [ 343s] | ~~ [ 343s] 235 | [ 343s] | [ 343s] 236 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 237 | zero [ 343s] | ~~~~ [ 343s] 238 | = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 239 | half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 240 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 241 | invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 242 | pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 243 | pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 244 | pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 245 | pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 246 | pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 247 | pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 248 | [ 343s] | [ 343s] 249 | double z, w, t, r, fn; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 250 | double tx[3]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 251 | int32_t e0, i, j, nx, n, ix, hx; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 252 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 253 | [ 343s] | [ 343s] 254 | z = 0; [ 343s] | ~~~~~~ [ 343s] 255 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 256 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 257 | if (ix <= 0x3FE921FB) { /* |x| ~<= pi/4 , no need for reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 258 | y[0] = x; [ 343s] | ~~~~~~~~~ [ 343s] 259 | y[1] = 0; [ 343s] | ~~~~~~~~~ [ 343s] 260 | return 0; [ 343s] | ~~~~~~~~~ [ 343s] 261 | } [ 343s] | ~ [ 343s] 262 | if (ix < 0x4002D97C) { /* |x| < 3pi/4, special case with n=+-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 263 | if (hx > 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 264 | z = x - pio2_1; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 265 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 266 | y[0] = z - pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 267 | y[1] = (z - y[0]) - pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 268 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 269 | z -= pio2_2; [ 343s] | ~~~~~~~~~~~~ [ 343s] 270 | y[0] = z - pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 271 | y[1] = (z - y[0]) - pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 272 | } [ 343s] | ~ [ 343s] 273 | return 1; [ 343s] | ~~~~~~~~~ [ 343s] 274 | } else { /* negative x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 275 | z = x + pio2_1; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 276 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 277 | y[0] = z + pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 278 | y[1] = (z - y[0]) + pio2_1t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 279 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 280 | z += pio2_2; [ 343s] | ~~~~~~~~~~~~ [ 343s] 281 | y[0] = z + pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 282 | y[1] = (z - y[0]) + pio2_2t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 283 | } [ 343s] | ~ [ 343s] 284 | return -1; [ 343s] | ~~~~~~~~~~ [ 343s] 285 | } [ 343s] | ~ [ 343s] 286 | } [ 343s] | ~ [ 343s] 287 | if (ix <= 0x413921FB) { /* |x| ~<= 2^19*(pi/2), medium size */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 288 | t = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 289 | n = static_cast(t * invpio2 + half); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 290 | fn = static_cast(n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 291 | r = t - fn * pio2_1; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 292 | w = fn * pio2_1t; /* 1st round good to 85 bit */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 293 | if (n < 32 && ix != npio2_hw[n - 1]) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 294 | y[0] = r - w; /* quick check no cancellation */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 295 | } else { [ 343s] | ~~~~~~~~ [ 343s] 296 | uint32_t high; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 297 | j = ix >> 20; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 298 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 299 | GET_HIGH_WORD(high, y[0]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 300 | i = j - ((high >> 20) & 0x7FF); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 301 | if (i > 16) { /* 2nd iteration needed, good to 118 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 302 | t = r; [ 343s] | ~~~~~~ [ 343s] 303 | w = fn * pio2_2; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 304 | r = t - w; [ 343s] | ~~~~~~~~~~ [ 343s] 305 | w = fn * pio2_2t - ((t - r) - w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 306 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 307 | GET_HIGH_WORD(high, y[0]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 308 | i = j - ((high >> 20) & 0x7FF); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 309 | if (i > 49) { /* 3rd iteration need, 151 bits acc */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 310 | t = r; /* will cover all possible cases */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 311 | w = fn * pio2_3; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 312 | r = t - w; [ 343s] | ~~~~~~~~~~ [ 343s] 313 | w = fn * pio2_3t - ((t - r) - w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 314 | y[0] = r - w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 315 | } [ 343s] | ~ [ 343s] 316 | } [ 343s] | ~ [ 343s] 317 | } [ 343s] | ~ [ 343s] 318 | y[1] = (r - y[0]) - w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 319 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 320 | y[0] = -y[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 321 | y[1] = -y[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 322 | return -n; [ 343s] | ~~~~~~~~~~ [ 343s] 323 | } else { [ 343s] | ~~~~~~~~ [ 343s] 324 | return n; [ 343s] | ~~~~~~~~~ [ 343s] 325 | } [ 343s] | ~ [ 343s] 326 | } [ 343s] | ~ [ 343s] 327 | /* [ 343s] | ~~ [ 343s] 328 | * all other (large) arguments [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 329 | */ [ 343s] | ~~ [ 343s] 330 | if (ix >= 0x7FF00000) { /* x is inf or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 331 | y[0] = y[1] = x - x; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 332 | return 0; [ 343s] | ~~~~~~~~~ [ 343s] 333 | } [ 343s] | ~ [ 343s] 334 | /* set z = scalbn(|x|,ilogb(x)-23) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 335 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 336 | SET_LOW_WORD(z, low); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 337 | e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 338 | SET_HIGH_WORD(z, ix - static_cast(e0 << 20)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 339 | for (i = 0; i < 2; i++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 340 | tx[i] = static_cast(static_cast(z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 341 | z = (z - tx[i]) * two24; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 342 | } [ 343s] | ~ [ 343s] 343 | tx[2] = z; [ 343s] | ~~~~~~~~~~ [ 343s] 344 | nx = 3; [ 343s] | ~~~~~~~ [ 343s] 345 | while (tx[nx - 1] == zero) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 346 | nx--; /* skip zero term */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 347 | n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 348 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 349 | y[0] = -y[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 350 | y[1] = -y[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 351 | return -n; [ 343s] | ~~~~~~~~~~ [ 343s] 352 | } [ 343s] | ~ [ 343s] 353 | return n; [ 343s] | ~~~~~~~~~ [ 343s] 354 | } [ 343s] | ~ [ 343s] 355 | [ 343s] | [ 343s] 356 | /* __kernel_cos( x, y ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 357 | * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 358 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 359 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 360 | * [ 343s] | ~ [ 343s] 361 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 362 | * 1. Since cos(-x) = cos(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 363 | * 2. if x < 2^-27 (hx<0x3E400000 0), return 1 with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 364 | * 3. cos(x) is approximated by a polynomial of degree 14 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 365 | * [0,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 366 | * 4 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 367 | * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 368 | * where the remez error is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 369 | * [ 343s] | ~ [ 343s] 370 | * | 2 4 6 8 10 12 14 | -58 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 371 | * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 372 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 373 | * [ 343s] | ~ [ 343s] 374 | * 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 375 | * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 376 | * cos(x) = 1 - x*x/2 + r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 377 | * since cos(x+y) ~ cos(x) - sin(x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 378 | * ~ cos(x) - x*y, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 379 | * a correction term is necessary in cos(x) and hence [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 380 | * cos(x+y) = 1 - (x*x/2 - (r - x*y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 381 | * For better accuracy when x > 0.3, let qx = |x|/4 with [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 382 | * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 383 | * Then [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 384 | * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 385 | * Note that 1-qx and (x*x/2-qx) is EXACT here, and the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 386 | * magnitude of the latter is at least a quarter of x*x/2, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 387 | * thus, reducing the rounding error in the subtraction. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 388 | */ [ 343s] | ~~ [ 343s] 389 | ALWAYS_INLINE double __kernel_cos(double x, double y) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 390 | { [ 343s] | ~ [ 343s] 391 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 392 | one [ 343s] | ~~~ [ 343s] 393 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 394 | C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 395 | C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 396 | C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 397 | C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 398 | C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 399 | C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 400 | [ 343s] | [ 343s] 401 | double a, iz, z, r, qx; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 402 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 403 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 404 | ix &= 0x7FFFFFFF; /* ix = |x|'s high word*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 405 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* if x < 2**27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 406 | return one; /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 407 | } [ 343s] | ~ [ 343s] 408 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 409 | r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 410 | if (ix < 0x3FD33333) { /* if |x| < 0.3 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 411 | return one - (0.5 * z - (z * r - x * y)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 412 | } else { [ 343s] | ~~~~~~~~ [ 343s] 413 | if (ix > 0x3FE90000) { /* x > 0.78125 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 414 | qx = 0.28125; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 415 | } else { [ 343s] | ~~~~~~~~ [ 343s] 416 | INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 417 | } [ 343s] | ~ [ 343s] 418 | iz = 0.5 * z - qx; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 419 | a = one - qx; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 420 | return a - (iz - (z * r - x * y)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 421 | } [ 343s] | ~ [ 343s] 422 | } [ 343s] | ~ [ 343s] 423 | [ 343s] | [ 343s] 424 | /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 425 | * double x[],y[]; int e0,nx,prec; int ipio2[]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 426 | * [ 343s] | ~ [ 343s] 427 | * __kernel_rem_pio2 return the last three digits of N with [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 428 | * y = x - N*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 429 | * so that |y| < pi/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 430 | * [ 343s] | ~ [ 343s] 431 | * The method is to compute the integer (mod 8) and fraction parts of [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 432 | * (2/pi)*x without doing the full multiplication. In general we [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 433 | * skip the part of the product that are known to be a huge integer ( [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 434 | * more accurately, = 0 mod 8 ). Thus the number of operations are [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 435 | * independent of the exponent of the input. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 436 | * [ 343s] | ~ [ 343s] 437 | * (2/pi) is represented by an array of 24-bit integers in ipio2[]. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 438 | * [ 343s] | ~ [ 343s] 439 | * Input parameters: [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 440 | * x[] The input value (must be positive) is broken into nx [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 441 | * pieces of 24-bit integers in double precision format. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 442 | * x[i] will be the i-th 24 bit of x. The scaled exponent [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 443 | * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 444 | * match x's up to 24 bits. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 445 | * [ 343s] | ~ [ 343s] 446 | * Example of breaking a double positive z into x[0]+x[1]+x[2]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 447 | * e0 = ilogb(z)-23 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 448 | * z = scalbn(z,-e0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 449 | * for i = 0,1,2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 450 | * x[i] = floor(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 451 | * z = (z-x[i])*2**24 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 452 | * [ 343s] | ~ [ 343s] 453 | * [ 343s] | ~ [ 343s] 454 | * y[] output result in an array of double precision numbers. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 455 | * The dimension of y[] is: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 456 | * 24-bit precision 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 457 | * 53-bit precision 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 458 | * 64-bit precision 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 459 | * 113-bit precision 3 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 460 | * The actual value is the sum of them. Thus for 113-bit [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 461 | * precison, one may have to do something like: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 462 | * [ 343s] | ~ [ 343s] 463 | * long double t,w,r_head, r_tail; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 464 | * t = (long double)y[2] + (long double)y[1]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 465 | * w = (long double)y[0]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 466 | * r_head = t+w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 467 | * r_tail = w - (r_head - t); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 468 | * [ 343s] | ~ [ 343s] 469 | * e0 The exponent of x[0] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 470 | * [ 343s] | ~ [ 343s] 471 | * nx dimension of x[] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 472 | * [ 343s] | ~ [ 343s] 473 | * prec an integer indicating the precision: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 474 | * 0 24 bits (single) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 475 | * 1 53 bits (double) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 476 | * 2 64 bits (extended) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 477 | * 3 113 bits (quad) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 478 | * [ 343s] | ~ [ 343s] 479 | * ipio2[] [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 480 | * integer array, contains the (24*i)-th to (24*i+23)-th [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 481 | * bit of 2/pi after binary point. The corresponding [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 482 | * floating value is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 483 | * [ 343s] | ~ [ 343s] 484 | * ipio2[i] * 2^(-24(i+1)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 485 | * [ 343s] | ~ [ 343s] 486 | * External function: [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 487 | * double scalbn(), floor(); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 488 | * [ 343s] | ~ [ 343s] 489 | * [ 343s] | ~ [ 343s] 490 | * Here is the description of some local variables: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 491 | * [ 343s] | ~ [ 343s] 492 | * jk jk+1 is the initial number of terms of ipio2[] needed [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 493 | * in the computation. The recommended value is 2,3,4, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 494 | * 6 for single, double, extended,and quad. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 495 | * [ 343s] | ~ [ 343s] 496 | * jz local integer variable indicating the number of [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 497 | * terms of ipio2[] used. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 498 | * [ 343s] | ~ [ 343s] 499 | * jx nx - 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 500 | * [ 343s] | ~ [ 343s] 501 | * jv index for pointing to the suitable ipio2[] for the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 502 | * computation. In general, we want [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 503 | * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 504 | * is an integer. Thus [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 505 | * e0-3-24*jv >= 0 or (e0-3)/24 >= jv [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 506 | * Hence jv = max(0,(e0-3)/24). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 507 | * [ 343s] | ~ [ 343s] 508 | * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 509 | * [ 343s] | ~ [ 343s] 510 | * q[] double array with integral value, representing the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 511 | * 24-bits chunk of the product of x and 2/pi. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 512 | * [ 343s] | ~ [ 343s] 513 | * q0 the corresponding exponent of q[0]. Note that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 514 | * exponent for q[i] would be q0-24*i. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 515 | * [ 343s] | ~ [ 343s] 516 | * PIo2[] double precision array, obtained by cutting pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 517 | * into 24 bits chunks. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 518 | * [ 343s] | ~ [ 343s] 519 | * f[] ipio2[] in floating point [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 520 | * [ 343s] | ~ [ 343s] 521 | * iq[] integer array by breaking up q[] in 24-bits chunk. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 522 | * [ 343s] | ~ [ 343s] 523 | * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 524 | * [ 343s] | ~ [ 343s] 525 | * ih integer. If >0 it indicates q[] is >= 0.5, hence [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 526 | * it also indicates the *sign* of the result. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 527 | * [ 343s] | ~ [ 343s] 528 | */ [ 343s] | ~~ [ 343s] 529 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 530 | const int32_t *ipio2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 531 | { [ 343s] | ~ [ 343s] 532 | /* Constants: [ 343s] | ~~~~~~~~~~~~~ [ 343s] 533 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 534 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 535 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 536 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 537 | */ [ 343s] | ~~ [ 343s] 538 | constexpr int init_jk[] = { 2, 3, 4, 6 }; /* initial value for jk */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 539 | [ 343s] | [ 343s] 540 | constexpr double PIo2[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 541 | 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 542 | 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 543 | 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 544 | 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 545 | 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 546 | 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 547 | 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 548 | 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 549 | }; [ 343s] | ~~ [ 343s] 550 | [ 343s] | [ 343s] 551 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 552 | zero [ 343s] | ~~~~ [ 343s] 553 | = 0.0, [ 343s] | ~~~~~~ [ 343s] 554 | one = 1.0, [ 343s] | ~~~~~~~~~~ [ 343s] 555 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 556 | twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 557 | [ 343s] | [ 343s] 558 | int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 559 | double z, fw, f[20], fq[20], q[20]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 560 | [ 343s] | [ 343s] 561 | /* initialize jk*/ [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 562 | jk = init_jk[prec]; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 563 | jp = jk; [ 343s] | ~~~~~~~~ [ 343s] 564 | [ 343s] | [ 343s] 565 | /* determine jx,jv,q0, note that 3>q0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 566 | jx = nx - 1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 567 | jv = (e0 - 3) / 24; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 568 | if (jv < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 569 | jv = 0; [ 343s] | ~~~~~~~ [ 343s] 570 | q0 = e0 - 24 * (jv + 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 571 | [ 343s] | [ 343s] 572 | /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 573 | j = jv - jx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 574 | m = jx + jk; [ 343s] | ~~~~~~~~~~~~ [ 343s] 575 | for (i = 0; i <= m; i++, j++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 576 | f[i] = (j < 0) ? zero : static_cast(ipio2[j]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 577 | } [ 343s] | ~ [ 343s] 578 | [ 343s] | [ 343s] 579 | /* compute q[0],q[1],...q[jk] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 580 | for (i = 0; i <= jk; i++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 581 | for (j = 0, fw = 0.0; j <= jx; j++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 582 | fw += x[j] * f[jx + i - j]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 583 | q[i] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 584 | } [ 343s] | ~ [ 343s] 585 | [ 343s] | [ 343s] 586 | jz = jk; [ 343s] | ~~~~~~~~ [ 343s] 587 | recompute: [ 343s] | ~~~~~~~~~~ [ 343s] 588 | /* distill q[] into iq[] reversingly */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 589 | for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 590 | fw = static_cast(static_cast(twon24 * z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 591 | iq[i] = static_cast(z - two24 * fw); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 592 | z = q[j - 1] + fw; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 593 | } [ 343s] | ~ [ 343s] 594 | [ 343s] | [ 343s] 595 | /* compute n */ [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 596 | z = scalbn(z, q0); /* actual value of z */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 597 | z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 598 | n = static_cast(z); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 599 | z -= static_cast(n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 600 | ih = 0; [ 343s] | ~~~~~~~ [ 343s] 601 | if (q0 > 0) { /* need iq[jz-1] to determine n */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 602 | i = (iq[jz - 1] >> (24 - q0)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 603 | n += i; [ 343s] | ~~~~~~~ [ 343s] 604 | iq[jz - 1] -= i << (24 - q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 605 | ih = iq[jz - 1] >> (23 - q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 606 | } else if (q0 == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 607 | ih = iq[jz - 1] >> 23; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 608 | } else if (z >= 0.5) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 609 | ih = 2; [ 343s] | ~~~~~~~ [ 343s] 610 | } [ 343s] | ~ [ 343s] 611 | [ 343s] | [ 343s] 612 | if (ih > 0) { /* q > 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 613 | n += 1; [ 343s] | ~~~~~~~ [ 343s] 614 | carry = 0; [ 343s] | ~~~~~~~~~~ [ 343s] 615 | for (i = 0; i < jz; i++) { /* compute 1-q */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 616 | j = iq[i]; [ 343s] | ~~~~~~~~~~ [ 343s] 617 | if (carry == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 618 | if (j != 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 619 | carry = 1; [ 343s] | ~~~~~~~~~~ [ 343s] 620 | iq[i] = 0x1000000 - j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 621 | } [ 343s] | ~ [ 343s] 622 | } else { [ 343s] | ~~~~~~~~ [ 343s] 623 | iq[i] = 0xFFFFFF - j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 624 | } [ 343s] | ~ [ 343s] 625 | } [ 343s] | ~ [ 343s] 626 | if (q0 > 0) { /* rare case: chance is 1 in 12 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 627 | switch (q0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 628 | case 1: [ 343s] | ~~~~~~~ [ 343s] 629 | iq[jz - 1] &= 0x7FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 630 | break; [ 343s] | ~~~~~~ [ 343s] 631 | case 2: [ 343s] | ~~~~~~~ [ 343s] 632 | iq[jz - 1] &= 0x3FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 633 | break; [ 343s] | ~~~~~~ [ 343s] 634 | } [ 343s] | ~ [ 343s] 635 | } [ 343s] | ~ [ 343s] 636 | if (ih == 2) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 637 | z = one - z; [ 343s] | ~~~~~~~~~~~~ [ 343s] 638 | if (carry != 0) [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 639 | z -= scalbn(one, q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 640 | } [ 343s] | ~ [ 343s] 641 | } [ 343s] | ~ [ 343s] 642 | [ 343s] | [ 343s] 643 | /* check if recomputation is needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 644 | if (z == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 645 | j = 0; [ 343s] | ~~~~~~ [ 343s] 646 | for (i = jz - 1; i >= jk; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 647 | j |= iq[i]; [ 343s] | ~~~~~~~~~~~ [ 343s] 648 | if (j == 0) { /* need recomputation */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 649 | for (k = 1; jk >= k && iq[jk - k] == 0; k++) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 650 | /* k = no. of terms needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 651 | } [ 343s] | ~ [ 343s] 652 | [ 343s] | [ 343s] 653 | for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 654 | f[jx + i] = ipio2[jv + i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 655 | for (j = 0, fw = 0.0; j <= jx; j++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 656 | fw += x[j] * f[jx + i - j]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 657 | q[i] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 658 | } [ 343s] | ~ [ 343s] 659 | jz += k; [ 343s] | ~~~~~~~~ [ 343s] 660 | goto recompute; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 661 | } [ 343s] | ~ [ 343s] 662 | } [ 343s] | ~ [ 343s] 663 | [ 343s] | [ 343s] 664 | /* chop off zero terms */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 665 | if (z == 0.0) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 666 | jz -= 1; [ 343s] | ~~~~~~~~ [ 343s] 667 | q0 -= 24; [ 343s] | ~~~~~~~~~ [ 343s] 668 | while (iq[jz] == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 669 | jz--; [ 343s] | ~~~~~ [ 343s] 670 | q0 -= 24; [ 343s] | ~~~~~~~~~ [ 343s] 671 | } [ 343s] | ~ [ 343s] 672 | } else { /* break z into 24-bit if necessary */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 673 | z = scalbn(z, -q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 674 | if (z >= two24) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 675 | fw = static_cast(static_cast(twon24 * z)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 676 | iq[jz] = z - two24 * fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 677 | jz += 1; [ 343s] | ~~~~~~~~ [ 343s] 678 | q0 += 24; [ 343s] | ~~~~~~~~~ [ 343s] 679 | iq[jz] = fw; [ 343s] | ~~~~~~~~~~~~ [ 343s] 680 | } else { [ 343s] | ~~~~~~~~ [ 343s] 681 | iq[jz] = z; [ 343s] | ~~~~~~~~~~~ [ 343s] 682 | } [ 343s] | ~ [ 343s] 683 | } [ 343s] | ~ [ 343s] 684 | [ 343s] | [ 343s] 685 | /* convert integer "bit" chunk to floating-point value */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 686 | fw = scalbn(one, q0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 687 | for (i = jz; i >= 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 688 | q[i] = fw * iq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 689 | fw *= twon24; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 690 | } [ 343s] | ~ [ 343s] 691 | [ 343s] | [ 343s] 692 | /* compute PIo2[0,...,jp]*q[jz,...,0] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 693 | for (i = jz; i >= 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 694 | for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 695 | fw += PIo2[k] * q[i + k]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 696 | fq[jz - i] = fw; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 697 | } [ 343s] | ~ [ 343s] 698 | [ 343s] | [ 343s] 699 | /* compress fq[] into y[] */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 700 | switch (prec) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 701 | case 0: [ 343s] | ~~~~~~~ [ 343s] 702 | fw = 0.0; [ 343s] | ~~~~~~~~~ [ 343s] 703 | for (i = jz; i >= 0; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 704 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 705 | y[0] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 706 | break; [ 343s] | ~~~~~~ [ 343s] 707 | case 1: [ 343s] | ~~~~~~~ [ 343s] 708 | case 2: [ 343s] | ~~~~~~~ [ 343s] 709 | fw = 0.0; [ 343s] | ~~~~~~~~~ [ 343s] 710 | for (i = jz; i >= 0; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 711 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 712 | y[0] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 713 | fw = fq[0] - fw; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 714 | for (i = 1; i <= jz; i++) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 715 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 716 | y[1] = (ih == 0) ? fw : -fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 717 | break; [ 343s] | ~~~~~~ [ 343s] 718 | case 3: /* painful */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 719 | for (i = jz; i > 0; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 720 | fw = fq[i - 1] + fq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 721 | fq[i] += fq[i - 1] - fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 722 | fq[i - 1] = fw; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 723 | } [ 343s] | ~ [ 343s] 724 | for (i = jz; i > 1; i--) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 725 | fw = fq[i - 1] + fq[i]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 726 | fq[i] += fq[i - 1] - fw; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 727 | fq[i - 1] = fw; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 728 | } [ 343s] | ~ [ 343s] 729 | for (fw = 0.0, i = jz; i >= 2; i--) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 730 | fw += fq[i]; [ 343s] | ~~~~~~~~~~~~ [ 343s] 731 | if (ih == 0) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 732 | y[0] = fq[0]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 733 | y[1] = fq[1]; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 734 | y[2] = fw; [ 343s] | ~~~~~~~~~~ [ 343s] 735 | } else { [ 343s] | ~~~~~~~~ [ 343s] 736 | y[0] = -fq[0]; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 737 | y[1] = -fq[1]; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 738 | y[2] = -fw; [ 343s] | ~~~~~~~~~~~ [ 343s] 739 | } [ 343s] | ~ [ 343s] 740 | } [ 343s] | ~ [ 343s] 741 | return n & 7; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 742 | } [ 343s] | ~ [ 343s] 743 | [ 343s] | [ 343s] 744 | /* __kernel_sin( x, y, iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 745 | * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 746 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 747 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 748 | * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 749 | * [ 343s] | ~ [ 343s] 750 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 751 | * 1. Since sin(-x) = -sin(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 752 | * 2. if x < 2^-27 (hx<0x3E400000 0), return x with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 753 | * 3. sin(x) is approximated by a polynomial of degree 13 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 754 | * [0,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 755 | * 3 13 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 756 | * sin(x) ~ x + S1*x + ... + S6*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 757 | * where [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 758 | * [ 343s] | ~ [ 343s] 759 | * |sin(x) 2 4 6 8 10 12 | -58 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 760 | * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 761 | * | x | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 762 | * [ 343s] | ~ [ 343s] 763 | * 4. sin(x+y) = sin(x) + sin'(x')*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 764 | * ~ sin(x) + (1-x*x/2)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 765 | * For better accuracy, let [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 766 | * 3 2 2 2 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 767 | * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 768 | * then 3 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 769 | * sin(x) = x + (S1*x + (x *(r-y/2)+y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 770 | */ [ 343s] | ~~ [ 343s] 771 | ALWAYS_INLINE double __kernel_sin(double x, double y, int iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 772 | { [ 343s] | ~ [ 343s] 773 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 774 | half [ 343s] | ~~~~ [ 343s] 775 | = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 776 | S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 777 | S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 778 | S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 779 | S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 780 | S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 781 | S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 782 | [ 343s] | [ 343s] 783 | double z, r, v; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 784 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 785 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 786 | ix &= 0x7FFFFFFF; /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 787 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* |x| < 2**-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 788 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 789 | } /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 790 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 791 | v = z * x; [ 343s] | ~~~~~~~~~~ [ 343s] 792 | r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 793 | if (iy == 0) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 794 | return x + v * (S1 + z * r); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 795 | } else { [ 343s] | ~~~~~~~~ [ 343s] 796 | return x - ((z * (half * y - v * r) - y) - v * S1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 797 | } [ 343s] | ~ [ 343s] 798 | } [ 343s] | ~ [ 343s] 799 | [ 343s] | [ 343s] 800 | /* __kernel_tan( x, y, k ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 801 | * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 802 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 803 | * Input y is the tail of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 804 | * Input k indicates whether tan (if k=1) or [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 805 | * -1/tan (if k= -1) is returned. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 806 | * [ 343s] | ~ [ 343s] 807 | * Algorithm [ 343s] | ~~~~~~~~~~~ [ 343s] 808 | * 1. Since tan(-x) = -tan(x), we need only to consider positive x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 809 | * 2. if x < 2^-28 (hx<0x3E300000 0), return x with inexact if x!=0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 810 | * 3. tan(x) is approximated by a odd polynomial of degree 27 on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 811 | * [0,0.67434] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 812 | * 3 27 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 813 | * tan(x) ~ x + T1*x + ... + T13*x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 814 | * where [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 815 | * [ 343s] | ~ [ 343s] 816 | * |tan(x) 2 4 26 | -59.2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 817 | * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 818 | * | x | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 819 | * [ 343s] | ~ [ 343s] 820 | * Note: tan(x+y) = tan(x) + tan'(x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 821 | * ~ tan(x) + (1+x*x)*y [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 822 | * Therefore, for better accuracy in computing tan(x+y), let [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 823 | * 3 2 2 2 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 824 | * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 825 | * then [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 826 | * 3 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 827 | * tan(x+y) = x + (T1*x + (x *(r+y)+y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 828 | * [ 343s] | ~ [ 343s] 829 | * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 830 | * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 831 | * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 832 | */ [ 343s] | ~~ [ 343s] 833 | double __kernel_tan(double x, double y, int iy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 834 | { [ 343s] | ~ [ 343s] 835 | constexpr double xxx[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 836 | 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 837 | 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 838 | 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 839 | 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 840 | 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 841 | 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 842 | 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 843 | 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 844 | 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 845 | 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 846 | 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 847 | -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 848 | 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 849 | /* one */ 1.00000000000000000000e+00, /* 3FF00000, 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 850 | /* pio4 */ 7.85398163397448278999e-01, /* 3FE921FB, 54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 851 | /* pio4lo */ 3.06161699786838301793e-17 /* 3C81A626, 33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 852 | }; [ 343s] | ~~ [ 343s] 853 | #define one xxx[13] [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 854 | #define pio4 xxx[14] [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 855 | #define pio4lo xxx[15] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 856 | #define T xxx [ 343s] | ~~~~~~~~~~~~~ [ 343s] 857 | [ 343s] | [ 343s] 858 | double z, r, v, w, s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 859 | int32_t ix, hx; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 860 | [ 343s] | [ 343s] 861 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 862 | ix = hx & 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 863 | if (ix < 0x3E300000 && static_cast(x) == 0) { /* x < 2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 864 | /* generate inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 865 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 866 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 867 | if (((ix | low) | (iy + 1)) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 868 | return one / fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 869 | } else { [ 343s] | ~~~~~~~~ [ 343s] 870 | if (iy == 1) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 871 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 872 | } else { /* compute -1 / (x+y) carefully */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 873 | double a, t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 874 | [ 343s] | [ 343s] 875 | z = w = x + y; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 876 | SET_LOW_WORD(z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 877 | v = y - (z - x); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 878 | t = a = -one / w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 879 | SET_LOW_WORD(t, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 880 | s = one + t * z; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 881 | return t + a * (s + t * v); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 882 | } [ 343s] | ~ [ 343s] 883 | } [ 343s] | ~ [ 343s] 884 | } [ 343s] | ~ [ 343s] 885 | if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 886 | if (hx < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 887 | x = -x; [ 343s] | ~~~~~~~ [ 343s] 888 | y = -y; [ 343s] | ~~~~~~~ [ 343s] 889 | } [ 343s] | ~ [ 343s] 890 | z = pio4 - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 891 | w = pio4lo - y; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 892 | x = z + w; [ 343s] | ~~~~~~~~~~ [ 343s] 893 | y = 0.0; [ 343s] | ~~~~~~~~ [ 343s] 894 | } [ 343s] | ~ [ 343s] 895 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 896 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 897 | /* [ 343s] | ~~ [ 343s] 898 | * Break x^5*(T[1]+x^2*T[2]+...) into [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 899 | * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 900 | * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 901 | */ [ 343s] | ~~ [ 343s] 902 | r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 903 | v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 904 | s = z * x; [ 343s] | ~~~~~~~~~~ [ 343s] 905 | r = y + z * (s * (r + v) + y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 906 | r += T[0] * s; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 907 | w = x + r; [ 343s] | ~~~~~~~~~~ [ 343s] 908 | if (ix >= 0x3FE59428) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 909 | v = iy; [ 343s] | ~~~~~~~ [ 343s] 910 | return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 911 | } [ 343s] | ~ [ 343s] 912 | if (iy == 1) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 913 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 914 | } else { [ 343s] | ~~~~~~~~ [ 343s] 915 | /* [ 343s] | ~~ [ 343s] 916 | * if allow error up to 2 ulp, simply return [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 917 | * -1.0 / (x+r) here [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 918 | */ [ 343s] | ~~ [ 343s] 919 | /* compute -1.0 / (x+r) accurately */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 920 | double a, t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 921 | z = w; [ 343s] | ~~~~~~ [ 343s] 922 | SET_LOW_WORD(z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 923 | v = r - (z - x); /* z+v = r+x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 924 | t = a = -1.0 / w; /* a = -1.0/w */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 925 | SET_LOW_WORD(t, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 926 | s = 1.0 + t * z; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 927 | return t + a * (s + t * v); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 928 | } [ 343s] | ~ [ 343s] 929 | [ 343s] | [ 343s] 930 | #undef one [ 343s] | ~~~~~~~~~~ [ 343s] 931 | #undef pio4 [ 343s] | ~~~~~~~~~~~ [ 343s] 932 | #undef pio4lo [ 343s] | ~~~~~~~~~~~~~ [ 343s] 933 | #undef T [ 343s] | ~~~~~~~~ [ 343s] 934 | } [ 343s] | ~ [ 343s] 935 | [ 343s] | [ 343s] 936 | } // namespace [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 937 | [ 343s] | [ 343s] 938 | /* acos(x) [ 343s] | ~~~~~~~~~~ [ 343s] 939 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 940 | * acos(x) = pi/2 - asin(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 941 | * acos(-x) = pi/2 + asin(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 942 | * For |x|<=0.5 [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 943 | * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 944 | * For x>0.5 [ 343s] | ~~~~~~~~~~~ [ 343s] 945 | * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 946 | * = 2asin(sqrt((1-x)/2)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 947 | * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 948 | * = 2f + (2c + 2s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 949 | * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 950 | * for f so that f+c ~ sqrt(z). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 951 | * For x<-0.5 [ 343s] | ~~~~~~~~~~~~ [ 343s] 952 | * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 953 | * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 954 | * [ 343s] | ~ [ 343s] 955 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 956 | * if x is NaN, return x itself; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 957 | * if |x|>1, return NaN with invalid signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 958 | * [ 343s] | ~ [ 343s] 959 | * Function needed: sqrt [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 960 | */ [ 343s] | ~~ [ 343s] 961 | double acos(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 962 | { [ 343s] | ~ [ 343s] 963 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 964 | one [ 343s] | ~~~ [ 343s] 965 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 966 | pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 967 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 968 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 969 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 970 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 971 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 972 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 973 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 974 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 975 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 976 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 977 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 978 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 979 | [ 343s] | [ 343s] 980 | double z, p, q, r, w, s, c, df; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 981 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 982 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 983 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 984 | if (ix >= 0x3FF00000) { /* |x| >= 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 985 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 986 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 987 | if (((ix - 0x3FF00000) | lx) == 0) { /* |x|==1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 988 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 989 | return 0.0; /* acos(1) = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 990 | else [ 343s] | ~~~~ [ 343s] 991 | return pi + 2.0 * pio2_lo; /* acos(-1)= pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 992 | } [ 343s] | ~ [ 343s] 993 | return (x - x) / (x - x); /* acos(|x|>1) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 994 | } [ 343s] | ~ [ 343s] 995 | if (ix < 0x3FE00000) { /* |x| < 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 996 | if (ix <= 0x3C600000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 997 | return pio2_hi + pio2_lo; /*if|x|<2**-57*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 998 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 999 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1000 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1001 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1002 | return pio2_hi - (x - (pio2_lo - x * r)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1003 | } else if (hx < 0) { /* x < -0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1004 | z = (one + x) * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1005 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1006 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1007 | s = sqrt(z); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1008 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1009 | w = r * s - pio2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1010 | return pi - 2.0 * (s + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1011 | } else { /* x > 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1012 | z = (one - x) * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1013 | s = sqrt(z); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1014 | df = s; [ 343s] | ~~~~~~~ [ 343s] 1015 | SET_LOW_WORD(df, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1016 | c = (z - df * df) / (s + df); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1017 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1018 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1019 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1020 | w = r * s + c; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1021 | return 2.0 * (df + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1022 | } [ 343s] | ~ [ 343s] 1023 | } [ 343s] | ~ [ 343s] 1024 | [ 343s] | [ 343s] 1025 | /* acosh(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 1026 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1027 | * Based on [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1028 | * acosh(x) = log [ x + sqrt(x*x-1) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1029 | * we have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1030 | * acosh(x) := log(x)+ln2, if x is large; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1031 | * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1032 | * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1033 | * [ 343s] | ~ [ 343s] 1034 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1035 | * acosh(x) is NaN with signal if x<1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1036 | * acosh(NaN) is NaN without signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1037 | */ [ 343s] | ~~ [ 343s] 1038 | double acosh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1039 | { [ 343s] | ~ [ 343s] 1040 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1041 | one [ 343s] | ~~~ [ 343s] 1042 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 1043 | ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1044 | double t; [ 343s] | ~~~~~~~~~ [ 343s] 1045 | int32_t hx; [ 343s] | ~~~~~~~~~~~ [ 343s] 1046 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1047 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1048 | if (hx < 0x3FF00000) { /* x < 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1049 | return (x - x) / (x - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1050 | } else if (hx >= 0x41B00000) { /* x > 2**28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1051 | if (hx >= 0x7FF00000) { /* x is inf of NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1052 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1053 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1054 | return log(x) + ln2; /* acosh(huge)=log(2x) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1055 | } [ 343s] | ~ [ 343s] 1056 | } else if (((hx - 0x3FF00000) | lx) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1057 | return 0.0; /* acosh(1) = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1058 | } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1059 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1060 | return log(2.0 * x - one / (x + sqrt(t - one))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1061 | } else { /* 10.98 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1081 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1082 | * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1083 | * For x<=0.98, let pio4_hi = pio2_hi/2, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1084 | * f = hi part of s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1085 | * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1086 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 1087 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1088 | * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1089 | * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1090 | * [ 343s] | ~ [ 343s] 1091 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1092 | * if x is NaN, return x itself; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1093 | * if |x|>1, return NaN with invalid signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1094 | */ [ 343s] | ~~ [ 343s] 1095 | double asin(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1096 | { [ 343s] | ~ [ 343s] 1097 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1098 | one [ 343s] | ~~~ [ 343s] 1099 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1100 | huge = 1.000e+300, [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1101 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1102 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1103 | pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1104 | /* coefficient for R(x^2) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1105 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1106 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1107 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1108 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1109 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1110 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1111 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1112 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1113 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1114 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1115 | [ 343s] | [ 343s] 1116 | double t, w, p, q, c, r, s; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1117 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1118 | [ 343s] | [ 343s] 1119 | t = 0; [ 343s] | ~~~~~~ [ 343s] 1120 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1121 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1122 | if (ix >= 0x3FF00000) { /* |x|>= 1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1123 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1124 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1125 | if (((ix - 0x3FF00000) | lx) == 0) /* asin(1)=+-pi/2 with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1126 | return x * pio2_hi + x * pio2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1127 | return (x - x) / (x - x); /* asin(|x|>1) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1128 | } else if (ix < 0x3FE00000) { /* |x|<0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1129 | if (ix < 0x3E400000 && huge + x > one) { /* if |x| < 2**-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1130 | return x; /* return x with inexact if x!=0*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1131 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1132 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1133 | } [ 343s] | ~ [ 343s] 1134 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1135 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1136 | w = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1137 | return x + x * w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1138 | } [ 343s] | ~ [ 343s] 1139 | /* 1> |x|>= 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1140 | w = one - fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1141 | t = w * 0.5; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1142 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1143 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1144 | s = sqrt(t); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1145 | if (ix >= 0x3FEF3333) { /* if |x| > 0.975 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1146 | w = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1147 | t = pio2_hi - (2.0 * (s + s * w) - pio2_lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1148 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1149 | w = s; [ 343s] | ~~~~~~ [ 343s] 1150 | SET_LOW_WORD(w, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1151 | c = (t - w * w) / (s + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1152 | r = p / q; [ 343s] | ~~~~~~~~~~ [ 343s] 1153 | p = 2.0 * s * r - (pio2_lo - 2.0 * c); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1154 | q = pio4_hi - 2.0 * w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1155 | t = pio4_hi - (p - q); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1156 | } [ 343s] | ~ [ 343s] 1157 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1158 | return t; [ 343s] | ~~~~~~~~~ [ 343s] 1159 | else [ 343s] | ~~~~ [ 343s] 1160 | return -t; [ 343s] | ~~~~~~~~~~ [ 343s] 1161 | } [ 343s] | ~ [ 343s] 1162 | /* asinh(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 1163 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1164 | * Based on [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1165 | * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1166 | * we have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1167 | * asinh(x) := x if 1+x*x=1, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1168 | * := sign(x)*(log(x)+ln2)) for large |x|, else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1169 | * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1170 | * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1171 | */ [ 343s] | ~~ [ 343s] 1172 | double asinh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1173 | { [ 343s] | ~ [ 343s] 1174 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1175 | one [ 343s] | ~~~ [ 343s] 1176 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1177 | ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1178 | huge = 1.00000000000000000000e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1179 | [ 343s] | [ 343s] 1180 | double t, w; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1181 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1182 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1183 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1184 | if (ix >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1185 | return x + x; /* x is inf or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1186 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1187 | return x; /* return x inexact except 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1188 | } [ 343s] | ~ [ 343s] 1189 | if (ix > 0x41B00000) { /* |x| > 2**28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1190 | w = log(fabs(x)) + ln2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1191 | } else if (ix > 0x40000000) { /* 2**28 > |x| > 2.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1192 | t = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1193 | w = log(2.0 * t + one / (sqrt(x * x + one) + t)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1194 | } else { /* 2.0 > |x| > 2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1195 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1196 | w = log1p(fabs(x) + t / (one + sqrt(one + t))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1197 | } [ 343s] | ~ [ 343s] 1198 | if (hx > 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1199 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 1200 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1201 | return -w; [ 343s] | ~~~~~~~~~~ [ 343s] 1202 | } [ 343s] | ~ [ 343s] 1203 | } [ 343s] | ~ [ 343s] 1204 | [ 343s] | [ 343s] 1205 | /* atan(x) [ 343s] | ~~~~~~~~~~ [ 343s] 1206 | * Method [ 343s] | ~~~~~~~~ [ 343s] 1207 | * 1. Reduce x to positive by atan(x) = -atan(-x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1208 | * 2. According to the integer k=4t+0.25 chopped, t=x, the argument [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1209 | * is further reduced to one of the following intervals and the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1210 | * arctangent of t is evaluated by the corresponding formula: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1211 | * [ 343s] | ~ [ 343s] 1212 | * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1213 | * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1214 | * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1215 | * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1216 | * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1217 | * [ 343s] | ~ [ 343s] 1218 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1219 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1220 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1221 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1222 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1223 | */ [ 343s] | ~~ [ 343s] 1224 | double atan(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1225 | { [ 343s] | ~ [ 343s] 1226 | constexpr double atanhi[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1227 | 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1228 | 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1229 | 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1230 | 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1231 | }; [ 343s] | ~~ [ 343s] 1232 | [ 343s] | [ 343s] 1233 | constexpr double atanlo[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1234 | 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1235 | 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1236 | 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1237 | 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1238 | }; [ 343s] | ~~ [ 343s] 1239 | [ 343s] | [ 343s] 1240 | constexpr double aT[] = { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1241 | 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1242 | -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1243 | 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1244 | -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1245 | 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1246 | -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1247 | 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1248 | -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1249 | 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1250 | -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1251 | 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1252 | }; [ 343s] | ~~ [ 343s] 1253 | [ 343s] | [ 343s] 1254 | constexpr double one = 1.0, huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1255 | [ 343s] | [ 343s] 1256 | double w, s1, s2, z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1257 | int32_t ix, hx, id; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1258 | [ 343s] | [ 343s] 1259 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1260 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1261 | if (ix >= 0x44100000) { /* if |x| >= 2^66 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1262 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1263 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1264 | if (ix > 0x7FF00000 || (ix == 0x7FF00000 && (low != 0))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1265 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1266 | if (hx > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1267 | return atanhi[3] + *(volatile double *)&atanlo[3]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1268 | else [ 343s] | ~~~~ [ 343s] 1269 | return -atanhi[3] - *(volatile double *)&atanlo[3]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1270 | } [ 343s] | ~ [ 343s] 1271 | if (ix < 0x3FDC0000) { /* |x| < 0.4375 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1272 | if (ix < 0x3E400000 && huge + x > one) { /* |x| < 2^-27 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1273 | return x; /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1274 | } [ 343s] | ~ [ 343s] 1275 | id = -1; [ 343s] | ~~~~~~~~ [ 343s] 1276 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1277 | x = fabs(x); [ 343s] | ~~~~~~~~~~~~ [ 343s] 1278 | if (ix < 0x3FF30000) { /* |x| < 1.1875 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1279 | if (ix < 0x3FE60000) { /* 7/16 <=|x|<11/16 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1280 | id = 0; [ 343s] | ~~~~~~~ [ 343s] 1281 | x = (2.0 * x - one) / (2.0 + x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1282 | } else { /* 11/16<=|x|< 19/16 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1283 | id = 1; [ 343s] | ~~~~~~~ [ 343s] 1284 | x = (x - one) / (x + one); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1285 | } [ 343s] | ~ [ 343s] 1286 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1287 | if (ix < 0x40038000) { /* |x| < 2.4375 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1288 | id = 2; [ 343s] | ~~~~~~~ [ 343s] 1289 | x = (x - 1.5) / (one + 1.5 * x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1290 | } else { /* 2.4375 <= |x| < 2^66 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1291 | id = 3; [ 343s] | ~~~~~~~ [ 343s] 1292 | x = -1.0 / x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1293 | } [ 343s] | ~ [ 343s] 1294 | } [ 343s] | ~ [ 343s] 1295 | } [ 343s] | ~ [ 343s] 1296 | /* end of argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1297 | z = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1298 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 1299 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1300 | s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1301 | s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1302 | if (id < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1303 | return x - x * (s1 + s2); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1304 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1305 | z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1306 | return (hx < 0) ? -z : z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1307 | } [ 343s] | ~ [ 343s] 1308 | } [ 343s] | ~ [ 343s] 1309 | [ 343s] | [ 343s] 1310 | /* atan2(y,x) [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1311 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1312 | * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1313 | * 2. Reduce x to positive by (if x and y are unexceptional): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1314 | * ARG (x+iy) = arctan(y/x) ... if x > 0, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1315 | * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1316 | * [ 343s] | ~ [ 343s] 1317 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1318 | * [ 343s] | ~ [ 343s] 1319 | * ATAN2((anything), NaN ) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1320 | * ATAN2(NAN , (anything) ) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1321 | * ATAN2(+-0, +(anything but NaN)) is +-0 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1322 | * ATAN2(+-0, -(anything but NaN)) is +-pi ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1323 | * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1324 | * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1325 | * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1326 | * ATAN2(+-INF,+INF ) is +-pi/4 ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1327 | * ATAN2(+-INF,-INF ) is +-3pi/4; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1328 | * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1329 | * [ 343s] | ~ [ 343s] 1330 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1331 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1332 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1333 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1334 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1335 | */ [ 343s] | ~~ [ 343s] 1336 | double atan2(double y, double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1337 | { [ 343s] | ~ [ 343s] 1338 | constexpr volatile double tiny = 1.0e-300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1339 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1340 | zero [ 343s] | ~~~~ [ 343s] 1341 | = 0.0, [ 343s] | ~~~~~~ [ 343s] 1342 | pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1343 | pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1344 | pi = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1345 | constexpr volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1346 | [ 343s] | [ 343s] 1347 | double z; [ 343s] | ~~~~~~~~~ [ 343s] 1348 | int32_t k, m, hx, hy, ix, iy; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1349 | uint32_t lx, ly; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1350 | [ 343s] | [ 343s] 1351 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1352 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1353 | EXTRACT_WORDS(hy, ly, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1354 | iy = hy & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1355 | if (((ix | ((lx | -static_cast(lx)) >> 31)) > 0x7FF00000) || ((iy | ((ly | -static_cast(ly)) >> 31)) > 0x7FF00000)) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1356 | return x + y; /* x or y is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1357 | } [ 343s] | ~ [ 343s] 1358 | if (((hx - 0x3FF00000) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1359 | return atan(y); /* x=1.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1360 | m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1361 | [ 343s] | [ 343s] 1362 | /* when y = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1363 | if ((iy | ly) == 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1364 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1365 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1366 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1367 | return y; /* atan(+-0,+anything)=+-0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1368 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1369 | return pi + tiny; /* atan(+0,-anything) = pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1370 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1371 | return -pi - tiny; /* atan(-0,-anything) =-pi */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1372 | } [ 343s] | ~ [ 343s] 1373 | } [ 343s] | ~ [ 343s] 1374 | /* when x = 0 */ [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1375 | if ((ix | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1376 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1377 | [ 343s] | [ 343s] 1378 | /* when x is INF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1379 | if (ix == 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1380 | if (iy == 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1381 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1382 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1383 | return pi_o_4 + tiny; /* atan(+INF,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1384 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1385 | return -pi_o_4 - tiny; /* atan(-INF,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1386 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1387 | return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1388 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1389 | return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1390 | } [ 343s] | ~ [ 343s] 1391 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1392 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1393 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1394 | return zero; /* atan(+...,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1395 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1396 | return -zero; /* atan(-...,+INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1397 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1398 | return pi + tiny; /* atan(+...,-INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1399 | case 3: [ 343s] | ~~~~~~~ [ 343s] 1400 | return -pi - tiny; /* atan(-...,-INF) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1401 | } [ 343s] | ~ [ 343s] 1402 | } [ 343s] | ~ [ 343s] 1403 | } [ 343s] | ~ [ 343s] 1404 | /* when y is INF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1405 | if (iy == 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1406 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1407 | [ 343s] | [ 343s] 1408 | /* compute y/x */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1409 | k = (iy - ix) >> 20; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1410 | if (k > 60) { /* |y/x| > 2**60 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1411 | z = pi_o_2 + 0.5 * pi_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1412 | m &= 1; [ 343s] | ~~~~~~~ [ 343s] 1413 | } else if (hx < 0 && k < -60) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1414 | z = 0.0; /* 0 > |y|/x > -2**-60 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1415 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1416 | z = atan(fabs(y / x)); /* safe to do y/x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1417 | } [ 343s] | ~ [ 343s] 1418 | switch (m) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1419 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1420 | return z; /* atan(+,+) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1421 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1422 | return -z; /* atan(-,+) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1423 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1424 | return pi - (z - pi_lo); /* atan(+,-) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1425 | default: /* case 3 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1426 | return (z - pi_lo) - pi; /* atan(-,-) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1427 | } [ 343s] | ~ [ 343s] 1428 | } [ 343s] | ~ [ 343s] 1429 | [ 343s] | [ 343s] 1430 | /* cos(x) [ 343s] | ~~~~~~~~~ [ 343s] 1431 | * Return cosine function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1432 | * [ 343s] | ~ [ 343s] 1433 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1434 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1435 | * __kernel_cos ... cosine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1436 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1437 | * [ 343s] | ~ [ 343s] 1438 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 1439 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1440 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1441 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1442 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1443 | * [ 343s] | ~ [ 343s] 1444 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1445 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1446 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1447 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1448 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1449 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1450 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1451 | * [ 343s] | ~ [ 343s] 1452 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1453 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1454 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1455 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1456 | * [ 343s] | ~ [ 343s] 1457 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1458 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1459 | */ [ 343s] | ~~ [ 343s] 1460 | double cos(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1461 | { [ 343s] | ~ [ 343s] 1462 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1463 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1464 | [ 343s] | [ 343s] 1465 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1466 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1467 | [ 343s] | [ 343s] 1468 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1469 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1470 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1471 | return __kernel_cos(x, z); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1472 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1473 | /* cos(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1474 | return x - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1475 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1476 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1477 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1478 | switch (n & 3) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1479 | case 0: [ 343s] | ~~~~~~~ [ 343s] 1480 | return __kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1481 | case 1: [ 343s] | ~~~~~~~ [ 343s] 1482 | return -__kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1483 | case 2: [ 343s] | ~~~~~~~ [ 343s] 1484 | return -__kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1485 | default: [ 343s] | ~~~~~~~~ [ 343s] 1486 | return __kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1487 | } [ 343s] | ~ [ 343s] 1488 | } [ 343s] | ~ [ 343s] 1489 | } [ 343s] | ~ [ 343s] 1490 | [ 343s] | [ 343s] 1491 | /* exp(x) [ 343s] | ~~~~~~~~~ [ 343s] 1492 | * Returns the exponential of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1493 | * [ 343s] | ~ [ 343s] 1494 | * Method [ 343s] | ~~~~~~~~ [ 343s] 1495 | * 1. Argument reduction: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1496 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1497 | * Given x, find r and integer k such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1498 | * [ 343s] | ~ [ 343s] 1499 | * x = k*ln2 + r, |r| <= 0.5*ln2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1500 | * [ 343s] | ~ [ 343s] 1501 | * Here r will be represented as r = hi-lo for better [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1502 | * accuracy. [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1503 | * [ 343s] | ~ [ 343s] 1504 | * 2. Approximation of exp(r) by a special rational function on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1505 | * the interval [0,0.34658]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1506 | * Write [ 343s] | ~~~~~~~~~~~~ [ 343s] 1507 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1508 | * We use a special Remes algorithm on [0,0.34658] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1509 | * a polynomial of degree 5 to approximate R. The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1510 | * of this polynomial approximation is bounded by 2**-59. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1511 | * other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1512 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1513 | * (where z=r*r, and the values of P1 to P5 are listed below) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1514 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 1515 | * | 5 | -59 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1516 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1517 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1518 | * The computation of exp(r) thus becomes [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1519 | * 2*r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1520 | * exp(r) = 1 + ------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1521 | * R - r [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1522 | * r*R1(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1523 | * = 1 + r + ----------- (for better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1524 | * 2 - R1(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1525 | * where [ 343s] | ~~~~~~~~~~~~ [ 343s] 1526 | * 2 4 10 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1527 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1528 | * [ 343s] | ~ [ 343s] 1529 | * 3. Scale back to obtain exp(x): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1530 | * From step 1, we have [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1531 | * exp(x) = 2^k * exp(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1532 | * [ 343s] | ~ [ 343s] 1533 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1534 | * exp(INF) is INF, exp(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1535 | * exp(-INF) is 0, and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1536 | * for finite argument, only exp(0)=1 is exact. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1537 | * [ 343s] | ~ [ 343s] 1538 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1539 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1540 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1541 | * [ 343s] | ~ [ 343s] 1542 | * Misc. info. [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1543 | * For IEEE double [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1544 | * if x > 7.09782712893383973096e+02 then exp(x) overflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1545 | * if x < -7.45133219101941108420e+02 then exp(x) underflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1546 | * [ 343s] | ~ [ 343s] 1547 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1548 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1549 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1550 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1551 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1552 | */ [ 343s] | ~~ [ 343s] 1553 | double exp(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1554 | { [ 343s] | ~ [ 343s] 1555 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1556 | one [ 343s] | ~~~ [ 343s] 1557 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 1558 | halF[2] = { 0.5, -0.5 }, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1559 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1560 | u_threshold = -7.45133219101941108420e+02, /* 0xC0874910, 0xD52D3051 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1561 | ln2HI[2] = { 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1562 | -6.93147180369123816490e-01 }, /* 0xBFE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1563 | ln2LO[2] = { 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1564 | -1.90821492927058770002e-10 }, /* 0xBDEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1565 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1566 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1567 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1568 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1569 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1570 | P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1571 | E = 2.718281828459045; /* 0x4005BF0A, 0x8B145769 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1572 | [ 343s] | [ 343s] 1573 | constexpr volatile double [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1574 | huge [ 343s] | ~~~~ [ 343s] 1575 | = 1.0e+300, [ 343s] | ~~~~~~~~~~~ [ 343s] 1576 | twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1577 | two1023 = 8.988465674311579539e307; /* 0x1p1023 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1578 | [ 343s] | [ 343s] 1579 | double y, hi = 0.0, lo = 0.0, c, t, twopk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1580 | int32_t k = 0, xsb; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1581 | uint32_t hx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1582 | [ 343s] | [ 343s] 1583 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1584 | xsb = (hx >> 31) & 1; /* sign bit of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1585 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1586 | [ 343s] | [ 343s] 1587 | /* filter out non-finite argument */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1588 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1589 | if (hx >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1590 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1591 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1592 | if (((hx & 0xFFFFF) | lx) != 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1593 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1594 | else [ 343s] | ~~~~ [ 343s] 1595 | return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1596 | } [ 343s] | ~ [ 343s] 1597 | if (x > o_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1598 | return huge * huge; /* overflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1599 | if (x < u_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1600 | return twom1000 * twom1000; /* underflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1601 | } [ 343s] | ~ [ 343s] 1602 | [ 343s] | [ 343s] 1603 | /* argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1604 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1605 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1606 | /* TODO(rtoy): We special case exp(1) here to return the correct [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1607 | * value of E, as the computation below would get the last bit [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1608 | * wrong. We should probably fix the algorithm instead. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1609 | */ [ 343s] | ~~ [ 343s] 1610 | if (x == 1.0) [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1611 | return E; [ 343s] | ~~~~~~~~~ [ 343s] 1612 | hi = x - ln2HI[xsb]; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1613 | lo = ln2LO[xsb]; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1614 | k = 1 - xsb - xsb; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1615 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1616 | k = static_cast(invln2 * x + halF[xsb]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1617 | t = k; [ 343s] | ~~~~~~ [ 343s] 1618 | hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1619 | lo = t * ln2LO[0]; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1620 | } [ 343s] | ~ [ 343s] 1621 | STRICT_ASSIGN(double, x, hi - lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1622 | } else if (hx < 0x3E300000) { /* when |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1623 | if (huge + x > one) [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1624 | return one + x; /* trigger inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1625 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1626 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1627 | } [ 343s] | ~ [ 343s] 1628 | [ 343s] | [ 343s] 1629 | /* x is now in primary range */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1630 | t = x * x; [ 343s] | ~~~~~~~~~~ [ 343s] 1631 | if (k >= -1021) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1632 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1633 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1634 | INSERT_WORDS(twopk, 0x3FF00000 + ((k + 1000) << 20), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1635 | } [ 343s] | ~ [ 343s] 1636 | c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1637 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1638 | return one - ((x * c) / (c - 2.0) - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1639 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1640 | y = one - ((lo - (x * c) / (2.0 - c)) - hi); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1641 | } [ 343s] | ~ [ 343s] 1642 | if (k >= -1021) { [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1643 | if (k == 1024) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1644 | return y * 2.0 * two1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1645 | return y * twopk; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1646 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1647 | return y * twopk * twom1000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1648 | } [ 343s] | ~ [ 343s] 1649 | } [ 343s] | ~ [ 343s] 1650 | [ 343s] | [ 343s] 1651 | /* [ 343s] | ~~ [ 343s] 1652 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1653 | * 1.Reduced x to positive by atanh(-x) = -atanh(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1654 | * 2.For x>=0.5 [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1655 | * 1 2x x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1656 | * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1657 | * 2 1 - x 1 - x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1658 | * [ 343s] | ~ [ 343s] 1659 | * For x<0.5 [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1660 | * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1661 | * [ 343s] | ~ [ 343s] 1662 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1663 | * atanh(x) is NaN if |x| > 1 with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1664 | * atanh(NaN) is that NaN with no signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1665 | * atanh(+-1) is +-INF with signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1666 | * [ 343s] | ~ [ 343s] 1667 | */ [ 343s] | ~~ [ 343s] 1668 | double atanh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1669 | { [ 343s] | ~ [ 343s] 1670 | constexpr double one = 1.0, huge = 1e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1671 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1672 | [ 343s] | [ 343s] 1673 | double t; [ 343s] | ~~~~~~~~~ [ 343s] 1674 | int32_t hx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1675 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1676 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1677 | ix = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1678 | if ((ix | ((lx | -static_cast(lx)) >> 31)) > 0x3FF00000) /* |x|>1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1679 | return (x - x) / (x - x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1680 | if (ix == 0x3FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1681 | return x / zero; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1682 | if (ix < 0x3E300000 && (huge + x) > zero) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1683 | return x; /* x<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1684 | SET_HIGH_WORD(x, ix); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1685 | if (ix < 0x3FE00000) { /* x < 0.5 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1686 | t = x + x; [ 343s] | ~~~~~~~~~~ [ 343s] 1687 | t = 0.5 * log1p(t + t * x / (one - x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1688 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1689 | t = 0.5 * log1p((x + x) / (one - x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1690 | } [ 343s] | ~ [ 343s] 1691 | if (hx >= 0) [ 343s] | ~~~~~~~~~~~~ [ 343s] 1692 | return t; [ 343s] | ~~~~~~~~~ [ 343s] 1693 | else [ 343s] | ~~~~ [ 343s] 1694 | return -t; [ 343s] | ~~~~~~~~~~ [ 343s] 1695 | } [ 343s] | ~ [ 343s] 1696 | [ 343s] | [ 343s] 1697 | /* log(x) [ 343s] | ~~~~~~~~~ [ 343s] 1698 | * Return the logrithm of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1699 | * [ 343s] | ~ [ 343s] 1700 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1701 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1702 | * x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1703 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1704 | * [ 343s] | ~ [ 343s] 1705 | * 2. Approximation of log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1706 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1707 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1708 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1709 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1710 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1711 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1712 | * other words, [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1713 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1714 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1715 | * (the values of Lg1 to Lg7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1716 | * and [ 343s] | ~~~~~~ [ 343s] 1717 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1718 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1719 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1720 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1721 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1722 | * by [ 343s] | ~~~~~ [ 343s] 1723 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1724 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1725 | * [ 343s] | ~ [ 343s] 1726 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1727 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1728 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1729 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1730 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1731 | * [ 343s] | ~ [ 343s] 1732 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1733 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1734 | * log(+INF) is +INF; log(0) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1735 | * log(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1736 | * [ 343s] | ~ [ 343s] 1737 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1738 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1739 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1740 | * [ 343s] | ~ [ 343s] 1741 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1742 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1743 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1744 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1745 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1746 | */ [ 343s] | ~~ [ 343s] 1747 | double log(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1748 | { [ 343s] | ~ [ 343s] 1749 | constexpr double /* -- */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1750 | ln2_hi [ 343s] | ~~~~~~ [ 343s] 1751 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1752 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1753 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1754 | Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1755 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1756 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1757 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1758 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1759 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1760 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1761 | [ 343s] | [ 343s] 1762 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1763 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1764 | [ 343s] | [ 343s] 1765 | double hfsq, f, s, z, R, w, t1, t2, dk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1766 | int32_t k, hx, i, j; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1767 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1768 | [ 343s] | [ 343s] 1769 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1770 | [ 343s] | [ 343s] 1771 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1772 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1773 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1774 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1775 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1776 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1777 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 1778 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1779 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1780 | } [ 343s] | ~ [ 343s] 1781 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1782 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1783 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1784 | hx &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1785 | i = (hx + 0x95F64) & 0x100000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1786 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1787 | k += (i >> 20); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1788 | f = x - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1789 | if ((0x000FFFFF & (2 + hx)) < 3) { /* -2**-20 <= f < 2**-20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1790 | if (f == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1791 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1792 | return zero; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1793 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1794 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1795 | return dk * ln2_hi + dk * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1796 | } [ 343s] | ~ [ 343s] 1797 | } [ 343s] | ~ [ 343s] 1798 | R = f * f * (0.5 - 0.33333333333333333 * f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1799 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1800 | return f - R; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1801 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1802 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1803 | return dk * ln2_hi - ((R - dk * ln2_lo) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1804 | } [ 343s] | ~ [ 343s] 1805 | } [ 343s] | ~ [ 343s] 1806 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1807 | dk = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1808 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 1809 | i = hx - 0x6147A; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1810 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 1811 | j = 0x6B851 - hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1812 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1813 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1814 | i |= j; [ 343s] | ~~~~~~~ [ 343s] 1815 | R = t2 + t1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1816 | if (i > 0) { [ 343s] | ~~~~~~~~~~~~ [ 343s] 1817 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1818 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1819 | return f - (hfsq - s * (hfsq + R)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1820 | else [ 343s] | ~~~~ [ 343s] 1821 | return dk * ln2_hi - ((hfsq - (s * (hfsq + R) + dk * ln2_lo)) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1822 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1823 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1824 | return f - s * (f - R); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1825 | else [ 343s] | ~~~~ [ 343s] 1826 | return dk * ln2_hi - ((s * (f - R) - dk * ln2_lo) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1827 | } [ 343s] | ~ [ 343s] 1828 | } [ 343s] | ~ [ 343s] 1829 | [ 343s] | [ 343s] 1830 | /* double log1p(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1831 | * [ 343s] | ~ [ 343s] 1832 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 1833 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1834 | * 1+x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1835 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1836 | * [ 343s] | ~ [ 343s] 1837 | * Note. If k=0, then f=x is exact. However, if k!=0, then f [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1838 | * may not be representable exactly. In that case, a correction [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1839 | * term is need. Let u=1+x rounded. Let c = (1+x)-u, then [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1840 | * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1841 | * and add back the correction term c/u. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1842 | * (Note: when x > 2**53, one can simply return log(x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1843 | * [ 343s] | ~ [ 343s] 1844 | * 2. Approximation of log1p(f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1845 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1846 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1847 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 1848 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1849 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1850 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1851 | * other words, [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 1852 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1853 | * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1854 | * (the values of Lp1 to Lp7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1855 | * and [ 343s] | ~~~~~~ [ 343s] 1856 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1857 | * | Lp1*s +...+Lp7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1858 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1859 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1860 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1861 | * by [ 343s] | ~~~~~ [ 343s] 1862 | * log1p(f) = f - (hfsq - s*(hfsq+R)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1863 | * [ 343s] | ~ [ 343s] 1864 | * 3. Finally, log1p(x) = k*ln2 + log1p(f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1865 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1866 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1867 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1868 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1869 | * [ 343s] | ~ [ 343s] 1870 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1871 | * log1p(x) is NaN with signal if x < -1 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1872 | * log1p(+INF) is +INF; log1p(-1) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1873 | * log1p(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1874 | * [ 343s] | ~ [ 343s] 1875 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 1876 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1877 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1878 | * [ 343s] | ~ [ 343s] 1879 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 1880 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1881 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1882 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1883 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1884 | * [ 343s] | ~ [ 343s] 1885 | * Note: Assuming log() return accurate answer, the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1886 | * algorithm can be used to compute log1p(x) to within a few ULP: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1887 | * [ 343s] | ~ [ 343s] 1888 | * u = 1+x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1889 | * if(u==1.0) return x ; else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1890 | * return log(u)*(x/(u-1.0)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1891 | * [ 343s] | ~ [ 343s] 1892 | * See HP-15C Advanced Functions Handbook, p.193. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1893 | */ [ 343s] | ~~ [ 343s] 1894 | double log1p(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1895 | { [ 343s] | ~ [ 343s] 1896 | constexpr double /* -- */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1897 | ln2_hi [ 343s] | ~~~~~~ [ 343s] 1898 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1899 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1900 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1901 | Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1902 | Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1903 | Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1904 | Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1905 | Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1906 | Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1907 | Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1908 | [ 343s] | [ 343s] 1909 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1910 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1911 | [ 343s] | [ 343s] 1912 | double hfsq, f, c, s, z, R, u; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1913 | int32_t k, hx, hu, ax; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1914 | [ 343s] | [ 343s] 1915 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1916 | ax = hx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1917 | [ 343s] | [ 343s] 1918 | c = 0; [ 343s] | ~~~~~~ [ 343s] 1919 | k = 1; [ 343s] | ~~~~~~ [ 343s] 1920 | if (hx < 0x3FDA827A) { /* 1+x < sqrt(2)+ */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1921 | if (ax >= 0x3FF00000) { /* x <= -1.0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1922 | if (x == -1.0) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 1923 | return -two54 / vzero; /* log1p(-1)=+inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1924 | else [ 343s] | ~~~~ [ 343s] 1925 | return (x - x) / (x - x); /* log1p(x<-1)=NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1926 | } [ 343s] | ~ [ 343s] 1927 | if (ax < 0x3E200000) { /* |x| < 2**-29 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1928 | if (two54 + x > zero /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1929 | && ax < 0x3C900000) /* |x| < 2**-54 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1930 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 1931 | else [ 343s] | ~~~~ [ 343s] 1932 | return x - x * x * 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1933 | } [ 343s] | ~ [ 343s] 1934 | if (hx > 0 || hx <= static_cast(0xBFD2BEC4)) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1935 | k = 0; [ 343s] | ~~~~~~ [ 343s] 1936 | f = x; [ 343s] | ~~~~~~ [ 343s] 1937 | hu = 1; [ 343s] | ~~~~~~~ [ 343s] 1938 | } /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1939 | } [ 343s] | ~ [ 343s] 1940 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1941 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1942 | if (k != 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1943 | if (hx < 0x43400000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1944 | STRICT_ASSIGN(double, u, 1.0 + x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1945 | GET_HIGH_WORD(hu, u); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1946 | k = (hu >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1947 | c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1948 | c /= u; [ 343s] | ~~~~~~~ [ 343s] 1949 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1950 | u = x; [ 343s] | ~~~~~~ [ 343s] 1951 | GET_HIGH_WORD(hu, u); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1952 | k = (hu >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1953 | c = 0; [ 343s] | ~~~~~~ [ 343s] 1954 | } [ 343s] | ~ [ 343s] 1955 | hu &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 1956 | /* [ 343s] | ~~ [ 343s] 1957 | * The approximation to sqrt(2) used in thresholds is not [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1958 | * critical. However, the ones used above must give less [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1959 | * strict bounds than the one here so that the k==0 case is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1960 | * never reached from here, since here we have committed to [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1961 | * using the correction term but don't use it if k==0. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1962 | */ [ 343s] | ~~ [ 343s] 1963 | if (hu < 0x6A09E) { /* u ~< sqrt(2) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1964 | SET_HIGH_WORD(u, hu | 0x3FF00000); /* normalize u */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1965 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1966 | k += 1; [ 343s] | ~~~~~~~ [ 343s] 1967 | SET_HIGH_WORD(u, hu | 0x3FE00000); /* normalize u/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1968 | hu = (0x00100000 - hu) >> 2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1969 | } [ 343s] | ~ [ 343s] 1970 | f = u - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1971 | } [ 343s] | ~ [ 343s] 1972 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 1973 | if (hu == 0) { /* |f| < 2**-20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1974 | if (f == zero) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1975 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1976 | return zero; [ 343s] | ~~~~~~~~~~~~ [ 343s] 1977 | } else { [ 343s] | ~~~~~~~~ [ 343s] 1978 | c += k * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 1979 | return k * ln2_hi + c; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1980 | } [ 343s] | ~ [ 343s] 1981 | } [ 343s] | ~ [ 343s] 1982 | R = hfsq * (1.0 - 0.66666666666666666 * f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1983 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1984 | return f - R; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1985 | else [ 343s] | ~~~~ [ 343s] 1986 | return k * ln2_hi - ((R - (k * ln2_lo + c)) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1987 | } [ 343s] | ~ [ 343s] 1988 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 1989 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 1990 | R = z * (Lp1 + z * (Lp2 + z * (Lp3 + z * (Lp4 + z * (Lp5 + z * (Lp6 + z * Lp7)))))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1991 | if (k == 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 1992 | return f - (hfsq - s * (hfsq + R)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1993 | else [ 343s] | ~~~~ [ 343s] 1994 | return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 1995 | } [ 343s] | ~ [ 343s] 1996 | [ 343s] | [ 343s] 1997 | /* [ 343s] | ~~ [ 343s] 1998 | * k_log1p(f): [ 343s] | ~~~~~~~~~~~~~ [ 343s] 1999 | * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)]. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2000 | * [ 343s] | ~ [ 343s] 2001 | * The following describes the overall strategy for computing [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2002 | * logarithms in base e. The argument reduction and adding the final [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2003 | * term of the polynomial are done by the caller for increased accuracy [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2004 | * when different bases are used. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2005 | * [ 343s] | ~ [ 343s] 2006 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2007 | * 1. Argument Reduction: find k and f such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2008 | * x = 2^k * (1+f), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2009 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2010 | * [ 343s] | ~ [ 343s] 2011 | * 2. Approximation of log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2012 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2013 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2014 | * = 2s + s*R [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2015 | * We use a special Reme algorithm on [0,0.1716] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2016 | * a polynomial of degree 14 to approximate R The maximum error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2017 | * of this polynomial approximation is bounded by 2**-58.45. In [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2018 | * other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2019 | * 2 4 6 8 10 12 14 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2020 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2021 | * (the values of Lg1 to Lg7 are listed in the program) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2022 | * and [ 343s] | ~~~~~~~~~~ [ 343s] 2023 | * | 2 14 | -58.45 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2024 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2025 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2026 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2027 | * In order to guarantee error in log below 1ulp, we compute log [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2028 | * by [ 343s] | ~~~~~~~~~ [ 343s] 2029 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2030 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2031 | * [ 343s] | ~ [ 343s] 2032 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2033 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2034 | * Here ln2 is split into two floating point number: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2035 | * ln2_hi + ln2_lo, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2036 | * where n*ln2_hi is always exact for |n| < 2000. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2037 | * [ 343s] | ~ [ 343s] 2038 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2039 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2040 | * log(+INF) is +INF; log(0) is -INF with signal; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2041 | * log(NaN) is that NaN with no signal. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2042 | * [ 343s] | ~ [ 343s] 2043 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2044 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2045 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2046 | * [ 343s] | ~ [ 343s] 2047 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 2048 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2049 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2050 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2051 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2052 | */ [ 343s] | ~~ [ 343s] 2053 | [ 343s] | [ 343s] 2054 | constexpr double Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2055 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2056 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2057 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2058 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2059 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2060 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2061 | [ 343s] | [ 343s] 2062 | /* [ 343s] | ~~ [ 343s] 2063 | * We always inline k_log1p(), since doing so produces a [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2064 | * substantial performance improvement (~40% on amd64). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2065 | */ [ 343s] | ~~ [ 343s] 2066 | static inline double k_log1p(double f) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2067 | { [ 343s] | ~ [ 343s] 2068 | double hfsq, s, z, R, w, t1, t2; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2069 | [ 343s] | [ 343s] 2070 | s = f / (2.0 + f); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2071 | z = s * s; [ 343s] | ~~~~~~~~~~ [ 343s] 2072 | w = z * z; [ 343s] | ~~~~~~~~~~ [ 343s] 2073 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2074 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2075 | R = t2 + t1; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2076 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2077 | return s * (hfsq + R); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2078 | } [ 343s] | ~ [ 343s] 2079 | [ 343s] | [ 343s] 2080 | /* [ 343s] | ~~ [ 343s] 2081 | * Return the base 2 logarithm of x. See e_log.c and k_log.h for most [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2082 | * comments. [ 343s] | ~~~~~~~~~~~ [ 343s] 2083 | * [ 343s] | ~ [ 343s] 2084 | * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2085 | * then does the combining and scaling steps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2086 | * log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2087 | * in not-quite-routine extra precision. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2088 | */ [ 343s] | ~~ [ 343s] 2089 | double log2(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2090 | { [ 343s] | ~ [ 343s] 2091 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2092 | two54 [ 343s] | ~~~~~ [ 343s] 2093 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2094 | ivln2hi = 1.44269504072144627571e+00, /* 0x3FF71547, 0x65200000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2095 | ivln2lo = 1.67517131648865118353e-10; /* 0x3DE705FC, 0x2EEFA200 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2096 | [ 343s] | [ 343s] 2097 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2098 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2099 | [ 343s] | [ 343s] 2100 | double f, hfsq, hi, lo, r, val_hi, val_lo, w, y; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2101 | int32_t i, k, hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2102 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2103 | [ 343s] | [ 343s] 2104 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2105 | [ 343s] | [ 343s] 2106 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2107 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2108 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2109 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2110 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 2111 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2112 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 2113 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2114 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2115 | } [ 343s] | ~ [ 343s] 2116 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2117 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2118 | if (hx == 0x3FF00000 && lx == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2119 | return zero; /* log(1) = +0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2120 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2121 | hx &= 0x000FFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2122 | i = (hx + 0x95F64) & 0x100000; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2123 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2124 | k += (i >> 20); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2125 | y = static_cast(k); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2126 | f = x - 1.0; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2127 | hfsq = 0.5 * f * f; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2128 | r = k_log1p(f); [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2129 | [ 343s] | [ 343s] 2130 | /* [ 343s] | ~~ [ 343s] 2131 | * f-hfsq must (for args near 1) be evaluated in extra precision [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2132 | * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2133 | * This is fairly efficient since f-hfsq only depends on f, so can [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2134 | * be evaluated in parallel with R. Not combining hfsq with R also [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2135 | * keeps R small (though not as small as a true `lo' term would be), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2136 | * so that extra precision is not needed for terms involving R. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2137 | * [ 343s] | ~ [ 343s] 2138 | * Compiler bugs involving extra precision used to break Dekker's [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2139 | * theorem for spitting f-hfsq as hi+lo, unless double_t was used [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2140 | * or the multi-precision calculations were avoided when double_t [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2141 | * has extra precision. These problems are now automatically [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2142 | * avoided as a side effect of the optimization of combining the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2143 | * Dekker splitting step with the clear-low-bits step. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2144 | * [ 343s] | ~ [ 343s] 2145 | * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2146 | * precision to avoid a very large cancellation when x is very near [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2147 | * these values. Unlike the above cancellations, this problem is [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2148 | * specific to base 2. It is strange that adding +-1 is so much [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2149 | * harder than adding +-ln2 or +-log10_2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2150 | * [ 343s] | ~ [ 343s] 2151 | * This uses Dekker's theorem to normalize y+val_hi, so the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2152 | * compiler bugs are back in some configurations, sigh. And I [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2153 | * don't want to used double_t to avoid them, since that gives a [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2154 | * pessimization and the support for avoiding the pessimization [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2155 | * is not yet available. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2156 | * [ 343s] | ~ [ 343s] 2157 | * The multi-precision calculations for the multiplications are [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2158 | * routine. [ 343s] | ~~~~~~~~~~ [ 343s] 2159 | */ [ 343s] | ~~ [ 343s] 2160 | hi = f - hfsq; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2161 | SET_LOW_WORD(hi, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2162 | lo = (f - hi) - hfsq + r; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2163 | val_hi = hi * ivln2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2164 | val_lo = (lo + hi) * ivln2lo + lo * ivln2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2165 | [ 343s] | [ 343s] 2166 | /* spadd(val_hi, val_lo, y), except for not using double_t: */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2167 | w = y + val_hi; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2168 | val_lo += (y - w) + val_hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2169 | val_hi = w; [ 343s] | ~~~~~~~~~~~ [ 343s] 2170 | [ 343s] | [ 343s] 2171 | return val_lo + val_hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2172 | } [ 343s] | ~ [ 343s] 2173 | [ 343s] | [ 343s] 2174 | /* [ 343s] | ~~ [ 343s] 2175 | * Return the base 10 logarithm of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2176 | * [ 343s] | ~ [ 343s] 2177 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2178 | * Let log10_2hi = leading 40 bits of log10(2) and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2179 | * log10_2lo = log10(2) - log10_2hi, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2180 | * ivln10 = 1/log(10) rounded. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2181 | * Then [ 343s] | ~~~~~~~~~~~ [ 343s] 2182 | * n = ilogb(x), [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2183 | * if(n<0) n = n+1; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2184 | * x = scalbn(x,-n); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2185 | * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2186 | * [ 343s] | ~ [ 343s] 2187 | * Note 1: [ 343s] | ~~~~~~~~~~ [ 343s] 2188 | * To guarantee log10(10**n)=n, where 10**n is normal, the rounding [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2189 | * mode must set to Round-to-Nearest. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2190 | * Note 2: [ 343s] | ~~~~~~~~~~ [ 343s] 2191 | * [1/log(10)] rounded to 53 bits has error .198 ulps; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2192 | * log10 is monotonic at all binary break points. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2193 | * [ 343s] | ~ [ 343s] 2194 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2195 | * log10(x) is NaN if x < 0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2196 | * log10(+INF) is +INF; log10(0) is -INF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2197 | * log10(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2198 | * log10(10**N) = N for N=0,1,...,22. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2199 | */ [ 343s] | ~~ [ 343s] 2200 | double log10(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2201 | { [ 343s] | ~ [ 343s] 2202 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2203 | two54 [ 343s] | ~~~~~ [ 343s] 2204 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2205 | ivln10 = 4.34294481903251816668e-01, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2206 | log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2207 | log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2208 | [ 343s] | [ 343s] 2209 | constexpr double zero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2210 | constexpr volatile double vzero = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2211 | [ 343s] | [ 343s] 2212 | double y; [ 343s] | ~~~~~~~~~ [ 343s] 2213 | int32_t i, k, hx; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2214 | uint32_t lx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2215 | [ 343s] | [ 343s] 2216 | EXTRACT_WORDS(hx, lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2217 | [ 343s] | [ 343s] 2218 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2219 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2220 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2221 | return -two54 / vzero; /* log(+-0)=-inf */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2222 | if (hx < 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 2223 | return (x - x) / zero; /* log(-#) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2224 | k -= 54; [ 343s] | ~~~~~~~~ [ 343s] 2225 | x *= two54; /* subnormal number, scale up x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2226 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2227 | GET_LOW_WORD(lx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2228 | } [ 343s] | ~ [ 343s] 2229 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2230 | return x + x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2231 | if (hx == 0x3FF00000 && lx == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2232 | return zero; /* log(1) = +0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2233 | k += (hx >> 20) - 1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2234 | [ 343s] | [ 343s] 2235 | i = (k & 0x80000000) >> 31; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2236 | hx = (hx & 0x000FFFFF) | ((0x3FF - i) << 20); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2237 | y = k + i; [ 343s] | ~~~~~~~~~~ [ 343s] 2238 | SET_HIGH_WORD(x, hx); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2239 | SET_LOW_WORD(x, lx); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2240 | [ 343s] | [ 343s] 2241 | double z = y * log10_2lo + ivln10 * log(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2242 | return z + y * log10_2hi; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2243 | } [ 343s] | ~ [ 343s] 2244 | [ 343s] | [ 343s] 2245 | /* expm1(x) [ 343s] | ~~~~~~~~~~~ [ 343s] 2246 | * Returns exp(x)-1, the exponential of x minus 1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2247 | * [ 343s] | ~ [ 343s] 2248 | * Method [ 343s] | ~~~~~~~~ [ 343s] 2249 | * 1. Argument reduction: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2250 | * Given x, find r and integer k such that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2251 | * [ 343s] | ~ [ 343s] 2252 | * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2253 | * [ 343s] | ~ [ 343s] 2254 | * Here a correction term c will be computed to compensate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2255 | * the error in r when rounded to a floating-point number. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2256 | * [ 343s] | ~ [ 343s] 2257 | * 2. Approximating expm1(r) by a special rational function on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2258 | * the interval [0,0.34658]: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2259 | * Since [ 343s] | ~~~~~~~~ [ 343s] 2260 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2261 | * we define R1(r*r) by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2262 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2263 | * That is, [ 343s] | ~~~~~~~~~~~ [ 343s] 2264 | * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2265 | * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2266 | * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2267 | * We use a special Reme algorithm on [0,0.347] to generate [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2268 | * a polynomial of degree 5 in r*r to approximate R1. The [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2269 | * maximum error of this polynomial approximation is bounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2270 | * by 2**-61. In other words, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2271 | * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2272 | * where Q1 = -1.6666666666666567384E-2, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2273 | * Q2 = 3.9682539681370365873E-4, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2274 | * Q3 = -9.9206344733435987357E-6, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2275 | * Q4 = 2.5051361420808517002E-7, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2276 | * Q5 = -6.2843505682382617102E-9; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2277 | * z = r*r, [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2278 | * with error bounded by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2279 | * | 5 | -61 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2280 | * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2281 | * | | [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2282 | * [ 343s] | ~ [ 343s] 2283 | * expm1(r) = exp(r)-1 is then computed by the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2284 | * specific way which minimize the accumulation rounding error: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2285 | * 2 3 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2286 | * r r [ 3 - (R1 + R1*r/2) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2287 | * expm1(r) = r + --- + --- * [--------------------] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2288 | * 2 2 [ 6 - r*(3 - R1*r/2) ] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2289 | * [ 343s] | ~ [ 343s] 2290 | * To compensate the error in the argument reduction, we use [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2291 | * expm1(r+c) = expm1(r) + c + expm1(r)*c [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2292 | * ~ expm1(r) + c + r*c [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2293 | * Thus c+r*c will be added in as the correction terms for [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2294 | * expm1(r+c). Now rearrange the term to avoid optimization [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2295 | * screw up: [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2296 | * ( 2 2 ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2297 | * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2298 | * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2299 | * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2300 | * ( ) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2301 | * [ 343s] | ~ [ 343s] 2302 | * = r - E [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2303 | * 3. Scale back to obtain expm1(x): [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2304 | * From step 1, we have [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2305 | * expm1(x) = either 2^k*[expm1(r)+1] - 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2306 | * = or 2^k*[expm1(r) + (1-2^-k)] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2307 | * 4. Implementation notes: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2308 | * (A). To save one multiplication, we scale the coefficient Qi [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2309 | * to Qi*2^i, and replace z by (x^2)/2. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2310 | * (B). To achieve maximum accuracy, we compute expm1(x) by [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2311 | * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2312 | * (ii) if k=0, return r-E [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2313 | * (iii) if k=-1, return 0.5*(r-E)-0.5 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2314 | * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2315 | * else return 1.0+2.0*(r-E); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2316 | * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2317 | * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2318 | * (vii) return 2^k(1-((E+2^-k)-r)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2319 | * [ 343s] | ~ [ 343s] 2320 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2321 | * expm1(INF) is INF, expm1(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2322 | * expm1(-INF) is -1, and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2323 | * for finite argument, only expm1(0)=0 is exact. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2324 | * [ 343s] | ~ [ 343s] 2325 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2326 | * according to an error analysis, the error is always less than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2327 | * 1 ulp (unit in the last place). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2328 | * [ 343s] | ~ [ 343s] 2329 | * Misc. info. [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2330 | * For IEEE double [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2331 | * if x > 7.09782712893383973096e+02 then expm1(x) overflow [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2332 | * [ 343s] | ~ [ 343s] 2333 | * Constants: [ 343s] | ~~~~~~~~~~~~ [ 343s] 2334 | * The hexadecimal values are the intended ones for the following [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2335 | * constants. The decimal values may be used, provided that the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2336 | * compiler will convert from decimal to binary accurately enough [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2337 | * to produce the hexadecimal values shown. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2338 | */ [ 343s] | ~~ [ 343s] 2339 | double expm1(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2340 | { [ 343s] | ~ [ 343s] 2341 | constexpr double [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2342 | one [ 343s] | ~~~ [ 343s] 2343 | = 1.0, [ 343s] | ~~~~~~ [ 343s] 2344 | tiny = 1.0e-300, [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2345 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2346 | ln2_hi = 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2347 | ln2_lo = 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2348 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2349 | /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2350 | x*x/2: */ [ 343s] | ~~~~~~~~~ [ 343s] 2351 | Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2352 | Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2353 | Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2354 | Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2355 | Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2356 | [ 343s] | [ 343s] 2357 | constexpr volatile double huge = 1.0e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2358 | [ 343s] | [ 343s] 2359 | double y, hi, lo, c, t, e, hxs, hfx, r1, twopk; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2360 | int32_t k, xsb; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2361 | uint32_t hx; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2362 | [ 343s] | [ 343s] 2363 | GET_HIGH_WORD(hx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2364 | xsb = hx & 0x80000000; /* sign bit of x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2365 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2366 | [ 343s] | [ 343s] 2367 | /* filter out huge and non-finite argument */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2368 | if (hx >= 0x4043687A) { /* if |x|>=56*ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2369 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2370 | if (hx >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2371 | uint32_t low; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2372 | GET_LOW_WORD(low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2373 | if (((hx & 0xFFFFF) | low) != 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2374 | return x + x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2375 | else [ 343s] | ~~~~ [ 343s] 2376 | return (xsb == 0) ? x : -1.0; /* exp(+-inf)={inf,-1} */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2377 | } [ 343s] | ~ [ 343s] 2378 | if (x > o_threshold) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2379 | return huge * huge; /* overflow */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2380 | } [ 343s] | ~ [ 343s] 2381 | if (xsb != 0 && x + tiny < 0.0) { /* x < -56*ln2, return -1.0 with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2382 | /* raise inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2383 | return tiny - one; /* return -1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2384 | } [ 343s] | ~ [ 343s] 2385 | } [ 343s] | ~ [ 343s] 2386 | [ 343s] | [ 343s] 2387 | /* argument reduction */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2388 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2389 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2390 | if (xsb == 0) { [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2391 | hi = x - ln2_hi; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2392 | lo = ln2_lo; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2393 | k = 1; [ 343s] | ~~~~~~ [ 343s] 2394 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2395 | hi = x + ln2_hi; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2396 | lo = -ln2_lo; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2397 | k = -1; [ 343s] | ~~~~~~~ [ 343s] 2398 | } [ 343s] | ~ [ 343s] 2399 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2400 | k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2401 | t = k; [ 343s] | ~~~~~~ [ 343s] 2402 | hi = x - t * ln2_hi; /* t*ln2_hi is exact here */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2403 | lo = t * ln2_lo; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2404 | } [ 343s] | ~ [ 343s] 2405 | STRICT_ASSIGN(double, x, hi - lo); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2406 | c = (hi - x) - lo; [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2407 | } else if (hx < 0x3C900000) { /* when |x|<2**-54, return x */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2408 | t = huge + x; /* return x with inexact flags when x!=0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2409 | return x - (t - (huge + x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2410 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2411 | k = 0; [ 343s] | ~~~~~~ [ 343s] 2412 | } [ 343s] | ~ [ 343s] 2413 | [ 343s] | [ 343s] 2414 | /* x is now in primary range */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2415 | hfx = 0.5 * x; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2416 | hxs = x * hfx; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2417 | r1 = one + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2418 | t = 3.0 - r1 * hfx; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2419 | e = hxs * ((r1 - t) / (6.0 - x * t)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2420 | if (k == 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2421 | return x - (x * e - hxs); /* c is 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2422 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2423 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); /* 2^k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2424 | e = (x * (e - c) - c); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2425 | e -= hxs; [ 343s] | ~~~~~~~~~ [ 343s] 2426 | if (k == -1) [ 343s] | ~~~~~~~~~~~~ [ 343s] 2427 | return 0.5 * (x - e) - 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2428 | if (k == 1) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2429 | if (x < -0.25) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2430 | return -2.0 * (e - (x + 0.5)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2431 | else [ 343s] | ~~~~ [ 343s] 2432 | return one + 2.0 * (x - e); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2433 | } [ 343s] | ~ [ 343s] 2434 | if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2435 | y = one - (e - x); [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2436 | // TODO(mvstanton): is this replacement for the hex float [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2437 | // sufficient? [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2438 | // if (k == 1024) y = y*2.0*0x1p1023; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2439 | if (k == 1024) [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2440 | y = y * 2.0 * 8.98846567431158e+307; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2441 | else [ 343s] | ~~~~ [ 343s] 2442 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2443 | return y - one; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2444 | } [ 343s] | ~ [ 343s] 2445 | t = one; [ 343s] | ~~~~~~~~ [ 343s] 2446 | if (k < 20) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2447 | SET_HIGH_WORD(t, 0x3FF00000 - (0x200000 >> k)); /* t=1-2^-k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2448 | y = t - (e - x); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2449 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2450 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2451 | SET_HIGH_WORD(t, ((0x3FF - k) << 20)); /* 2^-k */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2452 | y = x - (e + t); [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2453 | y += one; [ 343s] | ~~~~~~~~~ [ 343s] 2454 | y = y * twopk; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2455 | } [ 343s] | ~ [ 343s] 2456 | } [ 343s] | ~ [ 343s] 2457 | return y; [ 343s] | ~~~~~~~~~ [ 343s] 2458 | } [ 343s] | ~ [ 343s] 2459 | [ 343s] | [ 343s] 2460 | double cbrt(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2461 | { [ 343s] | ~ [ 343s] 2462 | constexpr uint32_t [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2463 | B1 [ 343s] | ~~ [ 343s] 2464 | = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2465 | B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2466 | [ 343s] | [ 343s] 2467 | /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2468 | constexpr double P0 = 1.87595182427177009643, /* 0x3FFE03E6, 0x0F61E692 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2469 | P1 = -1.88497979543377169875, /* 0xBFFE28E0, 0x92F02420 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2470 | P2 = 1.621429720105354466140, /* 0x3FF9F160, 0x4A49D6C2 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2471 | P3 = -0.758397934778766047437, /* 0xBFE844CB, 0xBEE751D9 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2472 | P4 = 0.145996192886612446982; /* 0x3FC2B000, 0xD4E4EDD7 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2473 | [ 343s] | [ 343s] 2474 | int32_t hx; [ 343s] | ~~~~~~~~~~~ [ 343s] 2475 | union { [ 343s] | ~~~~~~~ [ 343s] 2476 | double value; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2477 | uint64_t bits; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2478 | } u; [ 343s] | ~~~~ [ 343s] 2479 | double r, s, t = 0.0, w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2480 | uint32_t sign; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2481 | uint32_t high, low; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2482 | [ 343s] | [ 343s] 2483 | EXTRACT_WORDS(hx, low, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2484 | sign = hx & 0x80000000; /* sign= sign(x) */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2485 | hx ^= sign; [ 343s] | ~~~~~~~~~~~ [ 343s] 2486 | if (hx >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2487 | return (x + x); /* cbrt(NaN,INF) is itself */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2488 | [ 343s] | [ 343s] 2489 | /* [ 343s] | ~~ [ 343s] 2490 | * Rough cbrt to 5 bits: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2491 | * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2492 | * where e is integral and >= 0, m is real and in [0, 1), and "/" and [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2493 | * "%" are integer division and modulus with rounding towards minus [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2494 | * infinity. The RHS is always >= the LHS and has a maximum relative [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2495 | * error of about 1 in 16. Adding a bias of -0.03306235651 to the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2496 | * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2497 | * floating point representation, for finite positive normal values, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2498 | * ordinary integer division of the value in bits magically gives [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2499 | * almost exactly the RHS of the above provided we first subtract the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2500 | * exponent bias (1023 for doubles) and later add it back. We do the [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2501 | * subtraction virtually to keep e >= 0 so that ordinary integer [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2502 | * division rounds towards minus infinity; this is also efficient. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2503 | */ [ 343s] | ~~ [ 343s] 2504 | if (hx < 0x00100000) { /* zero or subnormal? */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2505 | if ((hx | low) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2506 | return (x); /* cbrt(0) is itself */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2507 | SET_HIGH_WORD(t, 0x43500000); /* set t= 2**54 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2508 | t *= x; [ 343s] | ~~~~~~~ [ 343s] 2509 | GET_HIGH_WORD(high, t); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2510 | INSERT_WORDS(t, sign | ((high & 0x7FFFFFFF) / 3 + B2), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2511 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2512 | INSERT_WORDS(t, sign | (hx / 3 + B1), 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2513 | } [ 343s] | ~ [ 343s] 2514 | [ 343s] | [ 343s] 2515 | /* [ 343s] | ~~ [ 343s] 2516 | * New cbrt to 23 bits: [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2517 | * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2518 | * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2519 | * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2520 | * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2521 | * gives us bounds for r = t**3/x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2522 | * [ 343s] | ~ [ 343s] 2523 | * Try to optimize for parallel evaluation as in k_tanf.c. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2524 | */ [ 343s] | ~~ [ 343s] 2525 | r = (t * t) * (t / x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2526 | t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2527 | [ 343s] | [ 343s] 2528 | /* [ 343s] | ~~ [ 343s] 2529 | * Round t away from zero to 23 bits (sloppily except for ensuring that [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2530 | * the result is larger in magnitude than cbrt(x) but not much more than [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2531 | * 2 23-bit ulps larger). With rounding towards zero, the error bound [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2532 | * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2533 | * in the rounded t, the infinite-precision error in the Newton [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2534 | * approximation barely affects third digit in the final error [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2535 | * 0.667; the error in the rounded t can be up to about 3 23-bit ulps [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2536 | * before the final error is larger than 0.667 ulps. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2537 | */ [ 343s] | ~~ [ 343s] 2538 | u.value = t; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2539 | u.bits = (u.bits + 0x80000000) & 0xFFFFFFFFC0000000ULL; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2540 | t = u.value; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2541 | [ 343s] | [ 343s] 2542 | /* one step Newton iteration to 53 bits with error < 0.667 ulps */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2543 | s = t * t; /* t*t is exact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2544 | r = x / s; /* error <= 0.5 ulps; |r| < |t| */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2545 | w = t + t; /* t+t is exact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2546 | r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2547 | t = t + t * r; /* error <= 0.5 + 0.5/3 + epsilon */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2548 | [ 343s] | [ 343s] 2549 | return (t); [ 343s] | ~~~~~~~~~~~ [ 343s] 2550 | } [ 343s] | ~ [ 343s] 2551 | [ 343s] | [ 343s] 2552 | /* sin(x) [ 343s] | ~~~~~~~~~ [ 343s] 2553 | * Return sine function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2554 | * [ 343s] | ~ [ 343s] 2555 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2556 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2557 | * __kernel_cos ... cose function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2558 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2559 | * [ 343s] | ~ [ 343s] 2560 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 2561 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2562 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2563 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2564 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2565 | * [ 343s] | ~ [ 343s] 2566 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2567 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2568 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2569 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2570 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2571 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2572 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2573 | * [ 343s] | ~ [ 343s] 2574 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2575 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2576 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2577 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2578 | * [ 343s] | ~ [ 343s] 2579 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2580 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2581 | */ [ 343s] | ~~ [ 343s] 2582 | double sin(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2583 | { [ 343s] | ~ [ 343s] 2584 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2585 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2586 | [ 343s] | [ 343s] 2587 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2588 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2589 | [ 343s] | [ 343s] 2590 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2591 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2592 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2593 | return __kernel_sin(x, z, 0); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2594 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2595 | /* sin(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2596 | return x - x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2597 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2598 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2599 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2600 | switch (n & 3) { [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2601 | case 0: [ 343s] | ~~~~~~~ [ 343s] 2602 | return __kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2603 | case 1: [ 343s] | ~~~~~~~ [ 343s] 2604 | return __kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2605 | case 2: [ 343s] | ~~~~~~~ [ 343s] 2606 | return -__kernel_sin(y[0], y[1], 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2607 | default: [ 343s] | ~~~~~~~~ [ 343s] 2608 | return -__kernel_cos(y[0], y[1]); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2609 | } [ 343s] | ~ [ 343s] 2610 | } [ 343s] | ~ [ 343s] 2611 | } [ 343s] | ~ [ 343s] 2612 | [ 343s] | [ 343s] 2613 | /* tan(x) [ 343s] | ~~~~~~~~~ [ 343s] 2614 | * Return tangent function of x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2615 | * [ 343s] | ~ [ 343s] 2616 | * kernel function: [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2617 | * __kernel_tan ... tangent function on [-pi/4,pi/4] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2618 | * __ieee754_rem_pio2 ... argument reduction routine [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2619 | * [ 343s] | ~ [ 343s] 2620 | * Method. [ 343s] | ~~~~~~~~~ [ 343s] 2621 | * Let S,C and T denote the sin, cos and tan respectively on [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2622 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2623 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2624 | * We have [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2625 | * [ 343s] | ~ [ 343s] 2626 | * n sin(x) cos(x) tan(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2627 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2628 | * 0 S C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2629 | * 1 C -S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2630 | * 2 -S -C T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2631 | * 3 -C S -1/T [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2632 | * ---------------------------------------------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2633 | * [ 343s] | ~ [ 343s] 2634 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2635 | * Let trig be any of sin, cos, or tan. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2636 | * trig(+-INF) is NaN, with signals; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2637 | * trig(NaN) is that NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2638 | * [ 343s] | ~ [ 343s] 2639 | * Accuracy: [ 343s] | ~~~~~~~~~~~ [ 343s] 2640 | * TRIG(x) returns trig(x) nearly rounded [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2641 | */ [ 343s] | ~~ [ 343s] 2642 | double tan(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2643 | { [ 343s] | ~ [ 343s] 2644 | double y[2], z = 0.0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2645 | int32_t n, ix; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2646 | [ 343s] | [ 343s] 2647 | /* High word of x. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2648 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2649 | [ 343s] | [ 343s] 2650 | /* |x| ~< pi/4 */ [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2651 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2652 | if (ix <= 0x3FE921FB) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2653 | return __kernel_tan(x, z, 1); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2654 | } else if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2655 | /* tan(Inf or NaN) is NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2656 | return x - x; /* NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2657 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2658 | /* argument reduction needed */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2659 | n = __ieee754_rem_pio2(x, y); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2660 | /* 1 -> n even, -1 -> n odd */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2661 | return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2662 | } [ 343s] | ~ [ 343s] 2663 | } [ 343s] | ~ [ 343s] 2664 | [ 343s] | [ 343s] 2665 | /* [ 343s] | ~~ [ 343s] 2666 | * ES6 draft 09-27-13, section 20.2.2.12. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2667 | * Math.cosh [ 343s] | ~~~~~~~~~~~ [ 343s] 2668 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2669 | * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2670 | * 1. Replace x by |x| (cosh(x) = cosh(-x)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2671 | * 2. [ 343s] | ~~~~~~~~~ [ 343s] 2672 | * [ exp(x) - 1 ]^2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2673 | * 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2674 | * 2*exp(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2675 | * [ 343s] | ~ [ 343s] 2676 | * exp(x) + 1/exp(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2677 | * ln2/2 <= x <= 22 : cosh(x) := ------------------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2678 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2679 | * 22 <= x <= lnovft : cosh(x) := exp(x)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2680 | * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2681 | * ln2ovft < x : cosh(x) := huge*huge (overflow) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2682 | * [ 343s] | ~ [ 343s] 2683 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2684 | * cosh(x) is |x| if x is +INF, -INF, or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2685 | * only cosh(0)=1 is exact for finite x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2686 | */ [ 343s] | ~~ [ 343s] 2687 | double cosh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2688 | { [ 343s] | ~ [ 343s] 2689 | constexpr double KCOSH_OVERFLOW = 710.4758600739439; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2690 | constexpr double one = 1.0, half = 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2691 | constexpr volatile double huge = 1.0e+300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2692 | [ 343s] | [ 343s] 2693 | int32_t ix; [ 343s] | ~~~~~~~~~~~ [ 343s] 2694 | [ 343s] | [ 343s] 2695 | /* High word of |x|. */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2696 | GET_HIGH_WORD(ix, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2697 | ix &= 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2698 | [ 343s] | [ 343s] 2699 | // |x| in [0,0.5*log2], return 1+expm1(|x|)^2/(2*exp(|x|)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2700 | if (ix < 0x3FD62E43) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2701 | double t = expm1(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2702 | double w = one + t; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2703 | // For |x| < 2^-55, cosh(x) = 1 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2704 | if (ix < 0x3C800000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2705 | return w; [ 343s] | ~~~~~~~~~ [ 343s] 2706 | return one + (t * t) / (w + w); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2707 | } [ 343s] | ~ [ 343s] 2708 | [ 343s] | [ 343s] 2709 | // |x| in [0.5*log2, 22], return (exp(|x|)+1/exp(|x|)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2710 | if (ix < 0x40360000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2711 | double t = exp(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2712 | return half * t + half / t; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2713 | } [ 343s] | ~ [ 343s] 2714 | [ 343s] | [ 343s] 2715 | // |x| in [22, log(maxdouble)], return half*exp(|x|) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2716 | if (ix < 0x40862E42) [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2717 | return half * exp(fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2718 | [ 343s] | [ 343s] 2719 | // |x| in [log(maxdouble), overflowthreshold] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2720 | if (fabs(x) <= KCOSH_OVERFLOW) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2721 | double w = exp(half * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2722 | double t = half * w; [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2723 | return t * w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2724 | } [ 343s] | ~ [ 343s] 2725 | [ 343s] | [ 343s] 2726 | /* x is INF or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2727 | if (ix >= 0x7FF00000) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2728 | return x * x; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2729 | [ 343s] | [ 343s] 2730 | // |x| > overflowthreshold. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2731 | return huge * huge; [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2732 | } [ 343s] | ~ [ 343s] 2733 | [ 343s] | [ 343s] 2734 | /* [ 343s] | ~~ [ 343s] 2735 | * ES6 draft 09-27-13, section 20.2.2.30. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2736 | * Math.sinh [ 343s] | ~~~~~~~~~~~ [ 343s] 2737 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2738 | * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2739 | * 1. Replace x by |x| (sinh(-x) = -sinh(x)). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2740 | * 2. [ 343s] | ~~~~~~~~~ [ 343s] 2741 | * E + E/(E+1) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2742 | * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2743 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2744 | * [ 343s] | ~ [ 343s] 2745 | * 22 <= x <= lnovft : sinh(x) := exp(x)/2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2746 | * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2747 | * ln2ovft < x : sinh(x) := x*shuge (overflow) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2748 | * [ 343s] | ~ [ 343s] 2749 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2750 | * sinh(x) is |x| if x is +Infinity, -Infinity, or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2751 | * only sinh(0)=0 is exact for finite x. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2752 | */ [ 343s] | ~~ [ 343s] 2753 | double sinh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2754 | { [ 343s] | ~ [ 343s] 2755 | constexpr double KSINH_OVERFLOW = 710.4758600739439, [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2756 | TWO_M28 = 3.725290298461914e-9, // 2^-28, empty lower half [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2757 | LOG_MAXD = 709.7822265625; // 0x40862E42 00000000, empty lower half [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2758 | constexpr double shuge = 1.0e307; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2759 | [ 343s] | [ 343s] 2760 | double h = (x < 0) ? -0.5 : 0.5; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2761 | // |x| in [0, 22]. return sign(x)*0.5*(E+E/(E+1)) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2762 | double ax = fabs(x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~ [ 343s] 2763 | if (ax < 22) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2764 | // For |x| < 2^-28, sinh(x) = x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2765 | if (ax < TWO_M28) [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2766 | return x; [ 343s] | ~~~~~~~~~ [ 343s] 2767 | double t = expm1(ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2768 | if (ax < 1) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2769 | return h * (2 * t - t * t / (t + 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2770 | } [ 343s] | ~ [ 343s] 2771 | return h * (t + t / (t + 1)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2772 | } [ 343s] | ~ [ 343s] 2773 | // |x| in [22, log(maxdouble)], return 0.5 * exp(|x|) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2774 | if (ax < LOG_MAXD) [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2775 | return h * exp(ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2776 | // |x| in [log(maxdouble), overflowthreshold] [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2777 | // overflowthreshold = 710.4758600739426 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2778 | if (ax <= KSINH_OVERFLOW) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2779 | double w = exp(0.5 * ax); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2780 | double t = h * w; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2781 | return t * w; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2782 | } [ 343s] | ~ [ 343s] 2783 | // |x| > overflowthreshold or is NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2784 | // Return Infinity of the appropriate sign or NaN. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2785 | return x * shuge; [ 343s] | ~~~~~~~~~~~~~~~~~ [ 343s] 2786 | } [ 343s] | ~ [ 343s] 2787 | [ 343s] | [ 343s] 2788 | /* Tanh(x) [ 343s] | ~~~~~~~~~~ [ 343s] 2789 | * Return the Hyperbolic Tangent of x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2790 | * [ 343s] | ~ [ 343s] 2791 | * Method : [ 343s] | ~~~~~~~~~~ [ 343s] 2792 | * x -x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2793 | * e - e [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2794 | * 0. tanh(x) is defined to be ----------- [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2795 | * x -x [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2796 | * e + e [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2797 | * 1. reduce x to non-negative by tanh(-x) = -tanh(x). [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2798 | * 2. 0 <= x < 2**-28 : tanh(x) := x with inexact if x != 0 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2799 | * -t [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2800 | * 2**-28 <= x < 1 : tanh(x) := -----; t = expm1(-2x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2801 | * t + 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2802 | * 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2803 | * 1 <= x < 22 : tanh(x) := 1 - -----; t = expm1(2x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2804 | * t + 2 [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2805 | * 22 <= x <= INF : tanh(x) := 1. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2806 | * [ 343s] | ~ [ 343s] 2807 | * Special cases: [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2808 | * tanh(NaN) is NaN; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2809 | * only tanh(0)=0 is exact for finite argument. [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2810 | */ [ 343s] | ~~ [ 343s] 2811 | double tanh(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2812 | { [ 343s] | ~ [ 343s] 2813 | constexpr volatile double tiny = 1.0e-300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2814 | constexpr double one = 1.0, two = 2.0, huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2815 | double t, z; [ 343s] | ~~~~~~~~~~~~ [ 343s] 2816 | int32_t jx, ix; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2817 | [ 343s] | [ 343s] 2818 | GET_HIGH_WORD(jx, x); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2819 | ix = jx & 0x7FFFFFFF; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2820 | [ 343s] | [ 343s] 2821 | /* x is INF or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2822 | if (ix >= 0x7FF00000) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2823 | if (jx >= 0) [ 343s] | ~~~~~~~~~~~~ [ 343s] 2824 | return one / x + one; /* tanh(+-inf)=+-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2825 | else [ 343s] | ~~~~ [ 343s] 2826 | return one / x - one; /* tanh(NaN) = NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2827 | } [ 343s] | ~ [ 343s] 2828 | [ 343s] | [ 343s] 2829 | /* |x| < 22 */ [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2830 | if (ix < 0x40360000) { /* |x|<22 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2831 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2832 | return x; /* tanh(tiny) = tiny with inexact */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2833 | } [ 343s] | ~ [ 343s] 2834 | if (ix >= 0x3FF00000) { /* |x|>=1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2835 | t = expm1(two * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2836 | z = one - two / (t + two); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2837 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2838 | t = expm1(-two * fabs(x)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2839 | z = -t / (t + two); [ 343s] | ~~~~~~~~~~~~~~~~~~~ [ 343s] 2840 | } [ 343s] | ~ [ 343s] 2841 | /* |x| >= 22, return +-1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2842 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2843 | z = one - tiny; /* raise inexact flag */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2844 | } [ 343s] | ~ [ 343s] 2845 | return (jx >= 0) ? z : -z; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2846 | } [ 343s] | ~ [ 343s] 2847 | [ 343s] | [ 343s] 2848 | double ceil(double x) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2849 | { [ 343s] | ~ [ 343s] 2850 | constexpr double huge = 1.0e300; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2851 | int i0, i1, j0; [ 343s] | ~~~~~~~~~~~~~~~ [ 343s] 2852 | unsigned i, j; [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2853 | i0 = __HI(x); [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2854 | i1 = __LO(x); [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2855 | j0 = ((i0 >> 20) & 0x7ff) - 0x3ff; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2856 | if (j0 < 20) { [ 343s] | ~~~~~~~~~~~~~~ [ 343s] 2857 | if (j0 < 0) { /* raise inexact if x != 0 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2858 | if (huge + x > 0.0) { /* return 0*sign(x) if |x|<1 */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2859 | if (i0 < 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2860 | i0 = 0x80000000; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2861 | i1 = 0; [ 343s] | ~~~~~~~ [ 343s] 2862 | } else if ((i0 | i1) != 0) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2863 | i0 = 0x3ff00000; [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2864 | i1 = 0; [ 343s] | ~~~~~~~ [ 343s] 2865 | } [ 343s] | ~ [ 343s] 2866 | } [ 343s] | ~ [ 343s] 2867 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2868 | i = (0x000fffff) >> j0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2869 | if (((i0 & i) | i1) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2870 | return x; /* x is integral */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2871 | if (huge + x > 0.0) { /* raise inexact flag */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2872 | if (i0 > 0) [ 343s] | ~~~~~~~~~~~ [ 343s] 2873 | i0 += (0x00100000) >> j0; [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2874 | i0 &= (~i); [ 343s] | ~~~~~~~~~~~ [ 343s] 2875 | i1 = 0; [ 343s] | ~~~~~~~ [ 343s] 2876 | } [ 343s] | ~ [ 343s] 2877 | } [ 343s] | ~ [ 343s] 2878 | } else if (j0 > 51) { [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2879 | if (j0 == 0x400) [ 343s] | ~~~~~~~~~~~~~~~~ [ 343s] 2880 | return x + x; /* inf or NaN */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2881 | else [ 343s] | ~~~~ [ 343s] 2882 | return x; /* x is integral */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2883 | } else { [ 343s] | ~~~~~~~~ [ 343s] 2884 | i = ((unsigned)(0xffffffff)) >> (j0 - 20); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2885 | if ((i1 & i) == 0) [ 343s] | ~~~~~~~~~~~~~~~~~~ [ 343s] 2886 | return x; /* x is integral */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2887 | if (huge + x > 0.0) { /* raise inexact flag */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2888 | if (i0 > 0) { [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2889 | if (j0 == 20) [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2890 | i0 += 1; [ 343s] | ~~~~~~~~ [ 343s] 2891 | else { [ 343s] | ~~~~~~ [ 343s] 2892 | j = i1 + (1 << (52 - j0)); [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2893 | if (j < (unsigned)i1) [ 343s] | ~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2894 | i0 += 1; /* got a carry */ [ 343s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 343s] 2895 | i1 = j; [ 343s] | ~~~~~~~ [ 343s] 2896 | } [ 343s] | ~ [ 343s] 2897 | } [ 343s] | ~ [ 343s] 2898 | i1 &= (~i); [ 343s] | ~~~~~~~~~~~ [ 343s] 2899 | } [ 343s] | ~ [ 343s] 2900 | } [ 343s] | ~ [ 343s] 2901 | __HI(x) = i0; [ 343s] | ~~~~~~~~~~~~~ [ 343s] 2902 | __LO(x) = i1; [ 343s] | ~~~~~~ [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:2902:5: note: in expansion of macro '__LO' [ 343s] 2902 | __LO(x) = i1; [ 343s] | ^~~~ [ 343s] third_party/escargot/src/runtime/IEEE754.cpp: In function 'int Escargot::ieee754::{anonymous}::__kernel_rem_pio2(double*, double*, int, int, int, const int32_t*)': [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:713:18: warning: 'fq[0]' may be used uninitialized in this function [-Wmaybe-uninitialized] [ 343s] 713 | fw = fq[0] - fw; [ 343s] | ~~~~^ [ 343s] third_party/escargot/src/runtime/IEEE754.cpp:713:18: warning: 'fq[0]' may be used uninitialized in this function [-Wmaybe-uninitialized] [ 343s] [1015/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinWeakSet.cpp.o [ 343s] [1016/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectProxyObject.cpp.o [ 343s] [1017/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinRegExp.cpp.o [ 343s] [1018/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Job.cpp.o [ 343s] [1019/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ObjectStructurePropertyDescriptor.cpp.o [ 343s] [1020/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IteratorObject.cpp.o [ 344s] [1021/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/JobQueue.cpp.o [ 344s] [1022/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinJSON.cpp.o [ 344s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 344s] from third_party/escargot/src/Escargot.h:208, [ 344s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In static member function 'static bool Escargot::builtinJSONStringify(Escargot::ExecutionState&, Escargot::Value, size_t, Escargot::Value*, Escargot::Optional)::::_FUN(Escargot::ExecutionState&, Escargot::Object*, const Escargot::ObjectPropertyName&, const Escargot::ObjectStructurePropertyDescriptor&, void*)': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1195 | _M_realloc_insert(end(), __x); [ 344s] | ^~~~~~~~~~~~~~~~~ [ 344s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 344s] from third_party/escargot/src/Escargot.h:187, [ 344s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'Escargot::Value Escargot::builtinJSONStringify(Escargot::ExecutionState&, Escargot::Value, size_t, Escargot::Value*, Escargot::Optional)': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1967:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1967 | std::__introsort_loop(__first, __last, [ 344s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ [ 344s] 1968 | std::__lg(__last - __first) * 2, [ 344s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 344s] 1969 | __comp); [ 344s] | ~~~~~~~ [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1884:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1884 | std::__insertion_sort(__first, __first + int(_S_threshold), __comp); [ 344s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1889:23: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1889 | std::__insertion_sort(__first, __last, __comp); [ 344s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 344s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 344s] from third_party/escargot/src/Escargot.h:208, [ 344s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long unsigned int&}; _Tp = long long unsigned int; _Alloc = std::allocator]': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 344s] 426 | vector<_Tp, _Alloc>:: [ 344s] | ^~~~~~~~~~~~~~~~~~~ [ 344s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 344s] from third_party/escargot/src/Escargot.h:187, [ 344s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Size = int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1939 | __introsort_loop(_RandomAccessIterator __first, [ 344s] | ^~~~~~~~~~~~~~~~ [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1953:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1953 | std::__introsort_loop(__cut, __last, __depth_limit, __comp); [ 344s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 1839 | __insertion_sort(_RandomAccessIterator __first, [ 344s] | ^~~~~~~~~~~~~~~~ [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:61, [ 344s] from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 344s] from third_party/escargot/src/Escargot.h:187, [ 344s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Distance = int; _Tp = long long unsigned int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 344s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:214:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 344s] 214 | __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, [ 344s] | ^~~~~~~~~~~~~ [ 344s] [1023/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ModuleNamespaceObject.cpp.o [ 345s] [1024/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/MapObject.cpp.o [ 345s] [1025/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/NativeFunctionObject.cpp.o [ 345s] [1026/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlCollator.cpp.o [ 346s] [1027/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlNumberFormat.cpp.o [ 346s] [1028/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/PointerValue.cpp.o [ 346s] [1029/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ObjectStructure.cpp.o [ 346s] [1030/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlDateTimeFormat.cpp.o [ 347s] [1031/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinString.cpp.o [ 347s] [1032/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlLocale.cpp.o [ 347s] [1033/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/NumberObject.cpp.o [ 347s] [1034/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ProxyObject.cpp.o [ 347s] [1035/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/RopeString.cpp.o [ 347s] [1036/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptAsyncGeneratorFunctionObject.cpp.o [ 347s] [1037/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/PromiseObject.cpp.o [ 349s] [1038/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SandBox.cpp.o [ 349s] [1039/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringView.cpp.o [ 349s] [1040/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptArrowFunctionObject.cpp.o [ 349s] [1041/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SetObject.cpp.o [ 349s] [1042/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptAsyncFunctionObject.cpp.o [ 349s] [1043/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptClassMethodFunctionObject.cpp.o [ 349s] [1044/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptClassConstructorFunctionObject.cpp.o [ 349s] [1045/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringBuilder.cpp.o [ 350s] [1046/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/RegExpObject.cpp.o [ 350s] [1047/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Symbol.cpp.o [ 350s] [1048/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringObject.cpp.o [ 350s] [1049/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptGeneratorFunctionObject.cpp.o [ 350s] [1050/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/String.cpp.o [ 351s] [1051/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ToStringRecursionPreventer.cpp.o [ 351s] [1052/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SymbolObject.cpp.o [ 351s] [1053/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptFunctionObject.cpp.o [ 351s] [1054/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/Vector.cpp.o [ 351s] [1055/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/BasicString.cpp.o [ 351s] [1056/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/TypedArrayObject.cpp.o [ 352s] [1057/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Object.cpp.o [ 352s] [1058/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/WeakMapObject.cpp.o [ 352s] [1059/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/PageBlock.cpp.o [ 352s] [1060/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/Util.cpp.o [ 352s] [1061/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/bignum-dtoa.cc.o [ 352s] [1062/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/OSAllocatorWin.cpp.o [ 352s] [1063/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/WeakSetObject.cpp.o [ 352s] [1064/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/cached-powers.cc.o [ 352s] [1065/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/OSAllocatorPosix.cpp.o [ 352s] [1066/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/diy-fp.cc.o [ 352s] [1067/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Value.cpp.o [ 352s] [1068/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/backgraph.c.o [ 353s] [1069/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/fixed-dtoa.cc.o [ 353s] [1070/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/fast-dtoa.cc.o [ 353s] [1071/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrCanonicalizeUnicode.cpp.o [ 353s] [1072/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrErrorCode.cpp.o [ 353s] [1073/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/blacklst.c.o [ 353s] [1074/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrCanonicalizeUCS2.cpp.o [ 353s] [1075/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/checksums.c.o [ 353s] [1076/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/darwin_stop_world.c.o [ 353s] [1077/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/bignum.cc.o [ 353s] [1078/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/strtod.cc.o [ 353s] [1079/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/dyn_load.c.o [ 353s] [1080/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/fnlz_mlc.c.o [ 353s] [1081/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/gc_dlopen.c.o [ 353s] [1082/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/gcj_mlc.c.o [ 353s] [1083/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/win32_threads.c.o [ 353s] [1084/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mach_dep.c.o [ 353s] [1085/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/allchblk.c.o [ 353s] [1086/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/double-conversion.cc.o [ 353s] [1087/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/headers.c.o [ 353s] [1088/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/dbg_mlc.c.o [ 353s] [1089/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/alloc.c.o [ 353s] [1090/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/obj_map.c.o [ 353s] [1091/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/malloc.c.o [ 353s] [1092/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mallocx.c.o [ 353s] [1093/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_stop_world.c.o [ 353s] [1094/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/new_hblk.c.o [ 353s] [1095/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_start.c.o [ 353s] [1096/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mark_rts.c.o [ 353s] [1097/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_support.c.o [ 354s] [1098/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/thread_local_alloc.c.o [ 354s] [1099/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/specific.c.o [ 354s] [1100/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/finalize.c.o [ 354s] [1101/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/ptr_chck.c.o [ 354s] [1102/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/os_dep.c.o [ 354s] [1103/1122] Building CXX object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/LeakChecker.cpp.o [ 354s] [1104/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/misc.c.o [ 354s] [1105/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/reclaim.c.o [ 354s] [1106/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Intl.cpp.o [ 354s] [1107/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/typd_mlc.c.o [ 354s] [1108/1122] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mark.c.o [ 354s] [1109/1122] Building CXX object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/Allocator.cpp.o [ 354s] [1110/1122] Linking CXX static library out_tizen/unified_tv/release/lib/libgc-lib.a [ 354s] [1111/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinTypedArray.cpp.o [ 354s] [1112/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/VMInstance.cpp.o [ 354s] [1113/1122] Building CXX object third_party/escargot/third_party/runtime_icu_binder/CMakeFiles/runtime-icu-binder-static.dir/RuntimeICUBinder.cpp.o [ 354s] [1114/1122] Linking CXX static library out_tizen/unified_tv/release/lib/libruntime-icu-binder-static.a [ 355s] [1115/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StaticStrings.cpp.o [ 355s] [1116/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrSyntaxChecker.cpp.o [ 356s] [1117/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/lz4/lz4.cpp.o [ 358s] [1118/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrInterpreter.cpp.o [ 359s] [1119/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrPattern.cpp.o [ 387s] [1120/1122] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrUnicodeProperties.cpp.o [ 392s] [1121/1122] Linking CXX static library out_tizen/unified_tv/release/lib/libescargot.a [ 893s] [1122/1122] Linking CXX shared library out_tizen/unified_tv/release/lib/liblightweight-web-engine-dali-plugin.tv.so [ 893s] + rm -f CMakeCache.txt [ 893s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_tv -DBACKEND=efl_cairo_gl -DLTO=1 -DTARGETNAME=lightweight-web-engine.tv -G Ninja [ 894s] -- The C compiler identification is GNU 9.2.0 [ 894s] -- The CXX compiler identification is GNU 9.2.0 [ 894s] -- Check for working C compiler: /bin/cc [ 894s] -- Check for working C compiler: /bin/cc -- works [ 894s] -- Detecting C compiler ABI info [ 894s] -- Detecting C compiler ABI info - done [ 894s] -- Detecting C compile features [ 894s] -- Detecting C compile features - done [ 894s] -- Check for working CXX compiler: /bin/c++ [ 894s] -- Check for working CXX compiler: /bin/c++ -- works [ 894s] -- Detecting CXX compiler ABI info [ 894s] -- Detecting CXX compiler ABI info - done [ 894s] -- Detecting CXX compile features [ 895s] -- Detecting CXX compile features - done [ 895s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 895s] -- Checking for modules 'libpng;freetype2;fontconfig;harfbuzz;elementary;ecore;ecore-imf' [ 896s] -- Found libpng, version 1.6.37 [ 896s] -- Found freetype2, version 23.1.17 [ 896s] -- Found fontconfig, version 2.13.1 [ 896s] -- Found harfbuzz, version 2.6.4 [ 896s] -- Found elementary, version 1.24.0 [ 896s] -- Found ecore, version 1.24.0 [ 896s] -- Found ecore-imf, version 1.24.0 [ 900s] -- Checking for module 'ecore-imf-evas' [ 900s] -- Found ecore-imf-evas, version 1.24.0 [ 900s] -- Checking for module 'libtbm' [ 901s] -- Found libtbm, version 3.0.0 [ 901s] -- Checking for module 'cairo' [ 901s] -- Found cairo, version 1.14.2 [ 902s] -- Checking for modules 'capi-network-connection;capi-media-player' [ 902s] -- Found capi-network-connection, version [ 903s] -- Found capi-media-player, version [ 903s] -- Looking for cap_set_flag in cap [ 903s] -- Looking for cap_set_flag in cap - not found [ 903s] -- Checking for module 'dlog' [ 903s] -- Found dlog, version 1.0 [ 904s] -- Starfish [ 904s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-fno-rtti-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0 [ 904s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrixpthreadcurlsslcryptojpeggifturbojpegrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine.so.1png16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreeflecore_imfecore_inputeoeinapthreadcairoecore_imf_evasefleoeinapthreadtbmcapi-base-commoncapi-network-connectioncapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-base-common [ 904s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_ENABLE_MULTI_THREAD_IMAGE_DECODING-DSTARFISH_TIZEN_TV-DSTARFISH_TIZEN_CAPI_LOCATION_MANAGER_ENABLED-DNDEBUG-DSTARFISH_EFL_CAIRO [ 904s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 904s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-ipc-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/libmount/usr/include/blkid/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ecore-1/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/network/usr/include/media/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 904s] -- Configuring done [ 904s] -- Generating done [ 904s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 904s] + ninja starfish.shared_library [ 905s] [1/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 905s] [2/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 905s] [3/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 905s] [4/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 905s] [5/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 905s] [6/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 905s] [7/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 905s] [8/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 905s] [9/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 905s] [10/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 905s] [11/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 905s] [12/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 905s] [13/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 908s] [14/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 908s] [15/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 908s] [16/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 908s] [17/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 908s] [18/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 908s] [19/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 908s] [20/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 908s] [21/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 908s] [22/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 908s] [23/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 909s] [24/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 909s] [25/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 909s] [26/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 909s] [27/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 909s] [28/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 909s] [29/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 909s] [30/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 910s] [31/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 910s] [32/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 911s] [33/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 911s] [34/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 911s] [35/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 911s] [36/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 911s] [37/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 911s] [38/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 911s] [39/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 912s] [40/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 912s] [41/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 912s] [42/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 912s] [43/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 912s] [44/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 913s] [45/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 913s] [46/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 913s] [47/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 913s] [48/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 913s] [49/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 913s] [50/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 913s] [51/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 914s] [52/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 914s] [53/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 915s] [54/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 915s] [55/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 915s] [56/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 915s] [57/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 915s] [58/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 915s] [59/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 915s] [60/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 916s] [61/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 916s] [62/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 916s] [63/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 916s] [64/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 917s] [65/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 917s] [66/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 917s] [67/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 917s] [68/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 917s] [69/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 918s] [70/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 918s] [71/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 918s] [72/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 918s] [73/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 918s] [74/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 918s] [75/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 919s] [76/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 919s] [77/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 919s] [78/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 919s] [79/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 919s] [80/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 920s] [81/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 920s] [82/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 920s] [83/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 920s] [84/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 920s] [85/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 921s] [86/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 921s] [87/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 921s] [88/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 922s] [89/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 922s] [90/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 922s] [91/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 922s] [92/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 922s] [93/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 922s] [94/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 922s] [95/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 923s] [96/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 923s] [97/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 923s] [98/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 923s] [99/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 923s] [100/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 923s] [101/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 923s] [102/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 923s] [103/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 923s] [104/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 923s] [105/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 924s] [106/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 924s] [107/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 925s] [108/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 925s] [109/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 926s] [110/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 926s] [111/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 927s] [112/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 927s] [113/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 927s] [114/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 927s] [115/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 927s] [116/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 928s] [117/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 928s] [118/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 928s] [119/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 928s] [120/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 928s] [121/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 928s] [122/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 928s] [123/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 928s] [124/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 928s] [125/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 928s] [126/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 929s] [127/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 929s] [128/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 929s] [129/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 930s] [130/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 930s] [131/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 931s] [132/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 932s] [133/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 932s] [134/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 932s] [135/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 932s] [136/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 932s] [137/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 932s] [138/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 933s] [139/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 933s] [140/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 933s] [141/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 933s] [142/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 933s] [143/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 933s] [144/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 934s] [145/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 934s] [146/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 934s] [147/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 934s] [148/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 934s] [149/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 936s] [150/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 936s] [151/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 937s] [152/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 937s] [153/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 937s] [154/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 937s] [155/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 937s] [156/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 937s] [157/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 937s] [158/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 938s] [159/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 938s] [160/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 938s] [161/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 938s] [162/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 938s] [163/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 938s] [164/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 939s] [165/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 939s] [166/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 939s] [167/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 939s] [168/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 939s] [169/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 939s] [170/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 939s] [171/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 940s] [172/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 941s] [173/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 941s] [174/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 941s] [175/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 941s] [176/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 941s] [177/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 941s] [178/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 941s] [179/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 941s] [180/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 941s] [181/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 942s] [182/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 942s] [183/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 942s] [184/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 942s] [185/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 942s] [186/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 942s] [187/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 942s] [188/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 942s] [189/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 942s] [190/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 942s] [191/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 942s] [192/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 942s] [193/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 942s] [194/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 942s] [195/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 942s] [196/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 943s] [197/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 943s] [198/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 943s] [199/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 943s] [200/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 944s] [201/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 944s] [202/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 944s] [203/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 944s] [204/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 944s] [205/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 944s] [206/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 945s] [207/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 945s] [208/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 945s] [209/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 945s] [210/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 945s] [211/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 945s] [212/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 945s] [213/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 945s] [214/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 945s] [215/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 945s] [216/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 945s] [217/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 945s] [218/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 945s] [219/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 945s] [220/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 945s] [221/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 945s] [222/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 945s] [223/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 945s] [224/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 945s] [225/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 945s] [226/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 945s] [227/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 945s] [228/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 945s] [229/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 945s] [230/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 945s] [231/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 945s] [232/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 945s] [233/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 945s] [234/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 945s] [235/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 945s] [236/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 945s] [237/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 945s] [238/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 945s] [239/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 945s] [240/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 946s] [241/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 946s] [242/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 946s] [243/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 946s] [244/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 946s] [245/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 946s] [246/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 946s] [247/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 946s] [248/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 946s] [249/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 946s] [250/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 946s] [251/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 946s] [252/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 946s] [253/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 947s] [254/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 947s] [255/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 947s] [256/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 948s] [257/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 948s] [258/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 948s] [259/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 948s] [260/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 948s] [261/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 948s] [262/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 948s] [263/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 948s] [264/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 948s] [265/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 949s] [266/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 949s] [267/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 949s] [268/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 949s] [269/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 949s] [270/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 950s] [271/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 950s] [272/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 951s] [273/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 951s] [274/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 951s] [275/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 951s] [276/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 951s] [277/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 952s] [278/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 952s] [279/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 953s] [280/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 953s] [281/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 953s] [282/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 954s] [283/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 954s] [284/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 954s] [285/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 954s] [286/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 954s] [287/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 955s] [288/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 955s] [289/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 955s] [290/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 955s] [291/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 955s] [292/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 955s] [293/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 955s] [294/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 955s] [295/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 955s] [296/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 955s] [297/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 955s] [298/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 955s] [299/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 955s] [300/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 955s] [301/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 955s] [302/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 955s] [303/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 956s] [304/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 956s] [305/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 956s] [306/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 956s] [307/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 956s] [308/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 956s] [309/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 956s] [310/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 956s] [311/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 956s] [312/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 956s] [313/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 956s] [314/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 956s] [315/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 957s] [316/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 957s] [317/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 957s] [318/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 957s] [319/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 958s] [320/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 959s] [321/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 959s] [322/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 959s] [323/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 959s] [324/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 959s] [325/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 959s] [326/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 959s] [327/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 959s] [328/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 959s] [329/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 960s] [330/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 960s] [331/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 960s] [332/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 960s] [333/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 960s] [334/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 960s] [335/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 960s] [336/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 960s] [337/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 960s] [338/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 960s] [339/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 960s] [340/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 960s] [341/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 960s] [342/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 960s] [343/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 961s] [344/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 961s] [345/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 961s] [346/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 962s] [347/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 962s] [348/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 963s] [349/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 963s] [350/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 963s] [351/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 963s] [352/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 963s] [353/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 963s] [354/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 963s] [355/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 964s] [356/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 964s] [357/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 965s] [358/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 965s] [359/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 965s] [360/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 965s] [361/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 965s] [362/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 965s] [363/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 965s] [364/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 966s] [365/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 966s] [366/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 966s] [367/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 966s] [368/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 966s] [369/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 967s] [370/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 967s] [371/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 967s] [372/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 967s] [373/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 968s] [374/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 968s] [375/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 968s] [376/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 968s] [377/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 969s] [378/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 969s] [379/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 969s] [380/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 969s] [381/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 970s] [382/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 970s] [383/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 970s] [384/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 970s] [385/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 970s] [386/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 971s] [387/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 971s] [388/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 971s] [389/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 972s] [390/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 972s] [391/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 972s] [392/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 972s] [393/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 972s] [394/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 972s] [395/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 973s] [396/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 973s] [397/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 973s] [398/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 974s] [399/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 975s] [400/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 975s] [401/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 975s] [402/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 976s] [403/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 976s] [404/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 976s] [405/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 976s] [406/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 977s] [407/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 977s] [408/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 977s] [409/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 978s] [410/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 978s] [411/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 978s] [412/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 978s] [413/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 978s] [414/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 979s] [415/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 980s] [416/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 980s] [417/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 980s] [418/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 980s] [419/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 981s] [420/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 981s] [421/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 981s] [422/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 981s] [423/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 982s] [424/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 982s] [425/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 982s] [426/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 982s] [427/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 982s] [428/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 983s] [429/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 983s] [430/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 983s] [431/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 984s] [432/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 984s] [433/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 984s] [434/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 984s] [435/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 984s] [436/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 985s] [437/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 985s] [438/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 985s] [439/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 985s] [440/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 986s] [441/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 986s] [442/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 987s] [443/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 987s] [444/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 987s] [445/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 987s] [446/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 987s] [447/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 988s] [448/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 988s] [449/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 988s] [450/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 989s] [451/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 989s] [452/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 989s] [453/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 989s] [454/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 989s] [455/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 989s] [456/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 990s] [457/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 990s] [458/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 990s] [459/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 990s] [460/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 990s] [461/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 990s] [462/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 990s] [463/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 990s] [464/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 990s] [465/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 990s] [466/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 991s] [467/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 991s] [468/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 992s] [469/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 993s] [470/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 993s] [471/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 993s] [472/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 993s] [473/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 993s] [474/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 993s] [475/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 993s] [476/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 993s] [477/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 993s] [478/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 993s] [479/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 994s] [480/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 994s] [481/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 994s] [482/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 994s] [483/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 994s] [484/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 994s] [485/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 994s] [486/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 994s] [487/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 994s] [488/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 994s] [489/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 995s] [490/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 995s] [491/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 995s] [492/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 995s] [493/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 995s] [494/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 996s] [495/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 996s] [496/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 996s] [497/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 996s] [498/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 997s] [499/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 997s] [500/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 997s] [501/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 997s] [502/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 997s] [503/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 998s] [504/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 998s] [505/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 998s] [506/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 999s] [507/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 999s] [508/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 999s] [509/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 1000s] [510/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 1000s] [511/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 1000s] [512/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 1000s] [513/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 1001s] [514/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 1001s] [515/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 1001s] [516/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 1002s] [517/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 1002s] [518/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 1002s] [519/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 1002s] [520/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 1002s] [521/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 1003s] [522/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 1003s] [523/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 1003s] [524/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 1003s] [525/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 1004s] [526/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 1004s] [527/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 1004s] [528/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 1004s] [529/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 1004s] [530/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 1004s] [531/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 1005s] [532/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 1005s] [533/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 1005s] [534/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 1005s] [535/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 1005s] [536/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 1006s] [537/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 1006s] [538/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 1006s] [539/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 1006s] [540/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 1006s] [541/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 1006s] [542/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 1007s] [543/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 1007s] [544/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 1007s] [545/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 1007s] [546/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 1007s] [547/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 1007s] [548/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 1008s] [549/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 1008s] [550/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 1008s] [551/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 1012s] [552/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 1012s] [553/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 1012s] [554/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 1012s] [555/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 1013s] [556/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 1014s] [557/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 1014s] [558/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 1014s] [559/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 1014s] [560/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 1014s] [561/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 1014s] [562/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 1015s] [563/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 1015s] [564/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 1015s] [565/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 1015s] [566/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 1016s] [567/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 1017s] [568/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 1018s] [569/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 1019s] [570/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 1020s] [571/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 1020s] [572/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 1020s] [573/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 1021s] [574/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 1021s] [575/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 1021s] [576/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 1022s] [577/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 1022s] [578/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 1022s] [579/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 1023s] [580/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 1023s] [581/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 1023s] [582/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 1023s] [583/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 1023s] [584/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 1023s] [585/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 1025s] [586/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 1025s] [587/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 1025s] [588/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 1025s] [589/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 1025s] [590/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 1026s] [591/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 1026s] [592/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 1026s] [593/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 1026s] [594/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 1027s] [595/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 1027s] [596/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 1027s] [597/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 1027s] [598/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 1027s] [599/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 1027s] [600/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 1027s] [601/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 1027s] [602/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 1027s] [603/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 1027s] [604/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 1027s] [605/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 1027s] [606/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 1027s] [607/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 1027s] [608/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 1027s] [609/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 1028s] [610/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 1028s] [611/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 1028s] [612/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 1028s] [613/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 1028s] [614/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 1028s] [615/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 1028s] [616/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 1028s] [617/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 1028s] [618/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 1028s] [619/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 1028s] [620/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 1028s] [621/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 1028s] [622/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 1028s] [623/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 1028s] [624/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 1028s] [625/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 1028s] [626/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 1028s] [627/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 1028s] [628/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 1028s] [629/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 1028s] [630/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 1028s] [631/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 1028s] [632/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 1028s] [633/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 1028s] [634/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 1028s] [635/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 1028s] [636/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 1029s] [637/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 1029s] [638/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 1029s] [639/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 1029s] [640/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 1029s] [641/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 1029s] [642/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 1029s] [643/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 1029s] [644/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 1029s] [645/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 1029s] [646/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 1029s] [647/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 1029s] [648/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 1030s] [649/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 1030s] [650/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 1030s] [651/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 1030s] [652/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 1030s] [653/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 1031s] [654/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 1031s] [655/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 1031s] [656/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 1031s] [657/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 1031s] [658/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 1031s] [659/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 1031s] [660/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 1031s] [661/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 1031s] [662/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 1031s] [663/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 1031s] [664/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 1031s] [665/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 1031s] [666/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 1031s] [667/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 1031s] [668/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 1031s] [669/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 1031s] [670/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 1032s] [671/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 1032s] [672/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 1032s] [673/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 1032s] [674/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 1032s] [675/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 1032s] [676/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 1032s] [677/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 1032s] [678/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 1032s] [679/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 1032s] [680/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 1032s] [681/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 1032s] [682/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 1032s] [683/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 1032s] [684/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 1032s] [685/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 1032s] [686/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 1032s] [687/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 1032s] [688/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 1032s] [689/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 1032s] [690/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 1032s] [691/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 1032s] [692/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 1033s] [693/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 1033s] [694/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 1033s] [695/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 1033s] [696/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 1033s] [697/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 1033s] [698/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 1033s] [699/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 1034s] [700/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 1034s] [701/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 1034s] [702/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 1034s] [703/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 1035s] [704/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 1035s] [705/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 1036s] [706/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 1036s] [707/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 1036s] [708/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 1037s] [709/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 1037s] [710/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 1037s] [711/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 1037s] [712/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 1038s] [713/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 1038s] [714/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 1038s] [715/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 1038s] [716/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 1038s] [717/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 1039s] [718/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 1039s] [719/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 1039s] [720/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 1039s] [721/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 1040s] [722/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 1040s] [723/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 1041s] [724/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 1041s] [725/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 1042s] [726/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 1042s] [727/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 1042s] [728/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 1042s] [729/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 1043s] [730/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 1043s] [731/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 1043s] [732/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 1043s] [733/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 1043s] [734/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 1044s] [735/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 1044s] [736/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 1044s] [737/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 1045s] [738/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 1045s] [739/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 1046s] [740/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 1046s] [741/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 1046s] [742/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 1046s] [743/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 1046s] [744/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 1047s] [745/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 1048s] [746/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 1048s] [747/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 1048s] [748/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 1048s] [749/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 1048s] [750/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 1048s] [751/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 1048s] [752/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 1049s] [753/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 1049s] [754/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 1049s] [755/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 1049s] [756/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 1049s] [757/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 1049s] [758/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 1049s] [759/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 1050s] [760/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 1050s] [761/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 1050s] [762/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 1051s] [763/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 1051s] [764/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 1051s] [765/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 1051s] [766/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 1051s] [767/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 1051s] [768/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 1051s] [769/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 1051s] [770/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 1052s] [771/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 1052s] [772/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 1052s] [773/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 1052s] [774/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 1053s] [775/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 1053s] [776/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 1053s] [777/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 1054s] [778/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 1054s] [779/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 1054s] [780/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 1054s] [781/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 1054s] [782/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 1054s] [783/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 1054s] [784/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 1055s] [785/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 1055s] [786/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 1055s] [787/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 1055s] [788/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 1056s] [789/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 1056s] [790/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 1056s] [791/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 1057s] [792/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 1057s] [793/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 1057s] [794/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 1057s] [795/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 1057s] [796/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 1057s] [797/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 1057s] [798/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 1058s] [799/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 1058s] [800/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 1059s] [801/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 1059s] [802/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 1059s] [803/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 1059s] [804/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 1059s] [805/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 1059s] [806/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 1060s] [807/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 1060s] [808/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 1060s] [809/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 1060s] [810/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 1060s] [811/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 1060s] [812/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 1060s] [813/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 1060s] [814/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 1060s] [815/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 1060s] [816/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 1060s] [817/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 1060s] [818/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 1060s] [819/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 1060s] [820/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 1060s] [821/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 1060s] [822/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 1060s] [823/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 1061s] [824/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 1061s] [825/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 1061s] [826/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 1061s] [827/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 1061s] [828/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 1061s] [829/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 1061s] [830/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 1061s] [831/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 1061s] [832/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 1061s] [833/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 1061s] [834/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 1062s] [835/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 1062s] [836/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 1062s] [837/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 1062s] [838/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 1062s] [839/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 1062s] [840/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 1062s] [841/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 1063s] [842/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 1063s] [843/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 1063s] [844/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 1063s] [845/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 1063s] [846/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 1063s] [847/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 1064s] [848/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 1064s] [849/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 1064s] [850/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 1064s] [851/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 1064s] [852/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 1064s] [853/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 1064s] [854/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 1065s] [855/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 1065s] [856/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 1065s] [857/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 1065s] [858/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 1065s] [859/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 1066s] [860/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 1066s] [861/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 1066s] [862/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 1066s] [863/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 1066s] [864/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 1067s] [865/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 1067s] [866/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 1067s] [867/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 1067s] [868/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 1067s] [869/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 1067s] [870/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 1068s] [871/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 1585s] [872/872] Linking CXX shared library out_tizen/unified_tv/release/lib/liblightweight-web-engine.tv.so [ 1585s] + ninja starfish.executable [ 1587s] [1/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/testRunner.cpp.o [ 1588s] [2/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/shell.cpp.o [ 2094s] [3/3] Linking CXX executable out_tizen/unified_tv/release/lightweight-web-engine.tv [ 2094s] + rm -f CMakeCache.txt [ 2094s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_mobile -DBACKEND=dali -DLTO=1 -DTARGETNAME=lightweight-web-engine-dali-plugin.mobile -G Ninja [ 2094s] -- The C compiler identification is GNU 9.2.0 [ 2094s] -- The CXX compiler identification is GNU 9.2.0 [ 2094s] -- Check for working C compiler: /bin/cc [ 2094s] -- Check for working C compiler: /bin/cc -- works [ 2094s] -- Detecting C compiler ABI info [ 2094s] -- Detecting C compiler ABI info - done [ 2094s] -- Detecting C compile features [ 2095s] -- Detecting C compile features - done [ 2095s] -- Check for working CXX compiler: /bin/c++ [ 2095s] -- Check for working CXX compiler: /bin/c++ -- works [ 2095s] -- Detecting CXX compiler ABI info [ 2095s] -- Detecting CXX compiler ABI info - done [ 2095s] -- Detecting CXX compile features [ 2095s] -- Detecting CXX compile features - done [ 2095s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 2095s] -- Checking for modules 'dlog;libpng;freetype2;fontconfig;harfbuzz;elementary;ecore' [ 2096s] -- Found dlog, version 1.0 [ 2096s] -- Found libpng, version 1.6.37 [ 2096s] -- Found freetype2, version 23.1.17 [ 2096s] -- Found fontconfig, version 2.13.1 [ 2097s] -- Found harfbuzz, version 2.6.4 [ 2097s] -- Found elementary, version 1.24.0 [ 2097s] -- Found ecore, version 1.24.0 [ 2100s] -- Checking for module 'cairo' [ 2100s] -- Found cairo, version 1.14.2 [ 2101s] -- Checking for modules 'capi-media-player;capi-network-connection' [ 2101s] -- Found capi-media-player, version [ 2101s] -- Found capi-network-connection, version [ 2102s] -- Looking for cap_set_flag in cap [ 2102s] -- Looking for cap_set_flag in cap - not found [ 2102s] -- Checking for module 'dlog' [ 2102s] -- Found dlog, version 1.0 [ 2103s] -- Starfish [ 2103s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0 [ 2103s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/out_tizen/unified_mobile/release/lib/libtuv.sopthreadcurlsslcryptojpeggif-Llib/tizendali-coredali-adaptordali-toolkitrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine-dali-plugin.so.1dlogpng16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_imfecore_inputecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreefleoeinapthreadcairocapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-network-connectioncapi-base-common [ 2103s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_ENABLE_MULTIMEDIA-DSTARFISH_ENABLE_MULTI_THREAD_IMAGE_DECODING-DNDEBUG-DSTARFISH_DALI [ 2103s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 2103s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/ecore-input-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/eeze-1/usr/include/libmount/usr/include/blkid/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-file-1/usr/include/ecore-ipc-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/usr/include/dali/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/media/usr/include/network/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 2103s] -- Configuring done [ 2103s] -- Generating done [ 2103s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 2103s] + ninja starfish.shared_library [ 2104s] [1/881] Linking CXX static library out_tizen/unified_mobile/release/lib/libruntime-icu-binder-static.a [ 2104s] [2/881] COPY TUV [ 2104s] [3/881] cd /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 && echo TUV\ TARGET [ 2104s] TUV TARGET [ 2104s] [4/881] Linking CXX static library out_tizen/unified_mobile/release/lib/libgc-lib.a [ 2104s] [5/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 2104s] [6/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 2104s] [7/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 2104s] [8/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 2104s] [9/881] Linking CXX shared library out_tizen/unified_mobile/release/lib/libclipper.so [ 2104s] [10/881] Linking CXX shared library out_tizen/unified_mobile/release/lib/libskia_matrix.so [ 2104s] [11/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 2104s] [12/881] Linking CXX shared library out_tizen/unified_mobile/release/lib/libwebm.so [ 2104s] [13/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 2104s] [14/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 2104s] [15/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 2104s] [16/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 2104s] [17/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 2104s] [18/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 2104s] [19/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 2104s] [20/881] Linking CXX shared library out_tizen/unified_mobile/release/lib/libmp4parse.so [ 2107s] [21/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 2107s] [22/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 2107s] [23/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 2107s] [24/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 2107s] [25/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 2107s] [26/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 2107s] [27/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 2107s] [28/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 2107s] [29/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 2107s] [30/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 2107s] [31/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 2107s] [32/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 2107s] [33/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 2108s] [34/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 2108s] [35/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 2109s] [36/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 2109s] [37/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 2110s] [38/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 2110s] [39/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 2110s] [40/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 2110s] [41/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 2110s] [42/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 2110s] [43/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 2110s] [44/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 2110s] [45/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 2110s] [46/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 2110s] [47/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 2111s] [48/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 2111s] [49/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 2111s] [50/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 2112s] [51/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 2112s] [52/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 2112s] [53/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 2112s] [54/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 2112s] [55/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 2112s] [56/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 2112s] [57/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 2113s] [58/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 2113s] [59/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 2113s] [60/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 2113s] [61/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 2114s] [62/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 2114s] [63/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 2114s] [64/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 2114s] [65/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 2115s] [66/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 2115s] [67/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 2115s] [68/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 2115s] [69/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 2115s] [70/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 2115s] [71/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 2115s] [72/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 2116s] [73/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 2116s] [74/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 2116s] [75/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 2116s] [76/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 2117s] [77/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 2117s] [78/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 2117s] [79/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 2117s] [80/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 2117s] [81/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 2118s] [82/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 2118s] [83/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 2118s] [84/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 2118s] [85/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 2118s] [86/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 2118s] [87/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 2118s] [88/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 2118s] [89/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 2119s] [90/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 2119s] [91/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 2119s] [92/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 2119s] [93/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 2121s] [94/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 2121s] [95/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 2121s] [96/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 2121s] [97/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 2121s] [98/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 2121s] [99/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 2121s] [100/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 2121s] [101/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 2121s] [102/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 2121s] [103/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 2122s] [104/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 2122s] [105/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 2122s] [106/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 2122s] [107/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 2122s] [108/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 2122s] [109/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 2122s] [110/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 2123s] [111/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 2123s] [112/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 2124s] [113/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 2124s] [114/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 2125s] [115/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 2125s] [116/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 2125s] [117/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 2126s] [118/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 2126s] [119/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 2126s] [120/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 2126s] [121/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 2126s] [122/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 2127s] [123/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 2127s] [124/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 2127s] [125/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 2127s] [126/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 2127s] [127/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 2127s] [128/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 2128s] [129/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 2128s] [130/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 2128s] [131/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 2128s] [132/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 2128s] [133/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 2129s] [134/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 2129s] [135/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 2129s] [136/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 2130s] [137/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 2130s] [138/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 2131s] [139/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 2131s] [140/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 2131s] [141/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 2131s] [142/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 2131s] [143/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 2132s] [144/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 2132s] [145/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 2132s] [146/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 2132s] [147/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 2133s] [148/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 2133s] [149/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 2133s] [150/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 2134s] [151/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 2134s] [152/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 2134s] [153/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 2135s] [154/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 2135s] [155/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 2135s] [156/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 2136s] [157/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 2136s] [158/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 2136s] [159/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 2136s] [160/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 2136s] [161/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 2136s] [162/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 2137s] [163/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 2137s] [164/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 2137s] [165/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 2137s] [166/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 2137s] [167/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 2137s] [168/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 2138s] [169/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 2138s] [170/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 2139s] [171/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 2139s] [172/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 2139s] [173/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 2140s] [174/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 2140s] [175/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 2140s] [176/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 2140s] [177/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 2141s] [178/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 2141s] [179/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 2141s] [180/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 2141s] [181/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 2141s] [182/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 2142s] [183/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 2142s] [184/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 2142s] [185/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 2142s] [186/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 2142s] [187/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 2142s] [188/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 2142s] [189/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 2142s] [190/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 2142s] [191/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 2142s] [192/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 2142s] [193/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 2142s] [194/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 2143s] [195/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 2143s] [196/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 2143s] [197/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 2143s] [198/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 2143s] [199/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 2143s] [200/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 2143s] [201/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 2143s] [202/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 2144s] [203/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 2144s] [204/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 2144s] [205/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 2144s] [206/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 2144s] [207/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 2144s] [208/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 2145s] [209/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 2145s] [210/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 2145s] [211/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 2145s] [212/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 2145s] [213/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 2145s] [214/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 2145s] [215/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 2145s] [216/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 2145s] [217/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 2146s] [218/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 2146s] [219/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 2146s] [220/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 2146s] [221/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 2146s] [222/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 2146s] [223/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 2146s] [224/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 2146s] [225/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 2146s] [226/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 2146s] [227/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 2146s] [228/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 2146s] [229/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 2146s] [230/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 2146s] [231/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 2146s] [232/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 2146s] [233/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 2146s] [234/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 2146s] [235/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 2146s] [236/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 2146s] [237/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 2146s] [238/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 2146s] [239/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 2146s] [240/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 2146s] [241/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 2146s] [242/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 2146s] [243/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 2146s] [244/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 2146s] [245/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 2147s] [246/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 2147s] [247/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 2147s] [248/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 2147s] [249/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 2147s] [250/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 2147s] [251/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 2147s] [252/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 2147s] [253/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 2147s] [254/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 2147s] [255/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 2147s] [256/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 2147s] [257/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 2147s] [258/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 2147s] [259/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 2147s] [260/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 2147s] [261/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 2148s] [262/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 2148s] [263/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 2148s] [264/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 2149s] [265/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 2149s] [266/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 2149s] [267/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 2149s] [268/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 2149s] [269/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 2149s] [270/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 2149s] [271/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 2150s] [272/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 2150s] [273/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 2150s] [274/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 2150s] [275/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 2150s] [276/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 2150s] [277/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 2150s] [278/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 2152s] [279/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 2152s] [280/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 2152s] [281/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 2152s] [282/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 2152s] [283/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 2152s] [284/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 2153s] [285/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 2153s] [286/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 2154s] [287/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 2154s] [288/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 2154s] [289/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 2154s] [290/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 2154s] [291/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 2155s] [292/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 2155s] [293/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 2155s] [294/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 2155s] [295/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 2155s] [296/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 2156s] [297/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 2156s] [298/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 2156s] [299/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 2156s] [300/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 2156s] [301/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 2156s] [302/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 2157s] [303/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 2157s] [304/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 2157s] [305/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 2157s] [306/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 2157s] [307/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 2157s] [308/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 2157s] [309/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 2157s] [310/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 2157s] [311/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 2157s] [312/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 2157s] [313/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 2157s] [314/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 2158s] [315/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 2158s] [316/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 2158s] [317/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 2158s] [318/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 2158s] [319/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 2159s] [320/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 2159s] [321/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 2159s] [322/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 2160s] [323/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 2160s] [324/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 2161s] [325/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 2161s] [326/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 2161s] [327/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 2161s] [328/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 2161s] [329/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 2161s] [330/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 2161s] [331/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 2161s] [332/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 2161s] [333/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 2161s] [334/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 2161s] [335/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 2161s] [336/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 2162s] [337/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 2162s] [338/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 2162s] [339/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 2162s] [340/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 2162s] [341/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 2162s] [342/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 2162s] [343/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 2162s] [344/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 2162s] [345/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 2163s] [346/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 2163s] [347/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 2163s] [348/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 2164s] [349/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 2164s] [350/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 2164s] [351/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 2164s] [352/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 2164s] [353/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 2165s] [354/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 2165s] [355/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 2165s] [356/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 2166s] [357/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 2166s] [358/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 2166s] [359/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 2166s] [360/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 2166s] [361/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 2167s] [362/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 2167s] [363/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 2167s] [364/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 2167s] [365/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 2167s] [366/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 2167s] [367/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 2167s] [368/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 2168s] [369/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 2168s] [370/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 2168s] [371/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 2169s] [372/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 2169s] [373/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 2169s] [374/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 2169s] [375/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 2170s] [376/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 2170s] [377/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 2170s] [378/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 2170s] [379/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 2170s] [380/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 2171s] [381/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 2172s] [382/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 2172s] [383/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 2172s] [384/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 2172s] [385/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 2172s] [386/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 2172s] [387/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 2173s] [388/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 2173s] [389/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 2173s] [390/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 2173s] [391/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 2173s] [392/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 2173s] [393/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 2174s] [394/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 2174s] [395/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 2174s] [396/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 2174s] [397/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 2174s] [398/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 2174s] [399/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 2175s] [400/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 2175s] [401/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 2175s] [402/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 2176s] [403/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 2176s] [404/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 2177s] [405/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 2177s] [406/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 2177s] [407/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 2177s] [408/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 2178s] [409/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 2179s] [410/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 2179s] [411/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 2179s] [412/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 2179s] [413/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 2179s] [414/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 2180s] [415/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 2180s] [416/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 2181s] [417/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 2181s] [418/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 2181s] [419/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 2181s] [420/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 2182s] [421/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 2182s] [422/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 2183s] [423/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 2183s] [424/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 2184s] [425/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 2184s] [426/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 2184s] [427/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 2184s] [428/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 2184s] [429/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 2185s] [430/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 2185s] [431/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 2185s] [432/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 2185s] [433/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 2186s] [434/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 2186s] [435/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 2187s] [436/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 2187s] [437/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 2187s] [438/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 2187s] [439/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 2187s] [440/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 2187s] [441/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 2188s] [442/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 2188s] [443/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 2189s] [444/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 2189s] [445/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 2189s] [446/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 2189s] [447/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 2189s] [448/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 2190s] [449/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 2191s] [450/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 2191s] [451/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 2191s] [452/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 2191s] [453/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 2191s] [454/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 2192s] [455/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 2192s] [456/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 2192s] [457/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 2193s] [458/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 2193s] [459/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 2193s] [460/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 2193s] [461/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 2193s] [462/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 2193s] [463/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 2194s] [464/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 2194s] [465/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 2194s] [466/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 2194s] [467/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 2194s] [468/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 2194s] [469/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 2195s] [470/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 2195s] [471/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 2196s] [472/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 2197s] [473/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 2197s] [474/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 2197s] [475/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 2197s] [476/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 2198s] [477/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 2198s] [478/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 2198s] [479/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 2198s] [480/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 2198s] [481/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 2198s] [482/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 2198s] [483/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 2198s] [484/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 2198s] [485/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 2198s] [486/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 2198s] [487/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 2199s] [488/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 2199s] [489/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 2199s] [490/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 2199s] [491/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 2199s] [492/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 2199s] [493/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 2199s] [494/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 2199s] [495/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 2199s] [496/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 2199s] [497/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 2200s] [498/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 2200s] [499/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 2200s] [500/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 2200s] [501/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 2201s] [502/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 2201s] [503/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 2201s] [504/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 2201s] [505/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 2201s] [506/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 2202s] [507/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 2202s] [508/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 2202s] [509/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 2202s] [510/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 2202s] [511/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 2203s] [512/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 2203s] [513/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 2204s] [514/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 2204s] [515/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 2204s] [516/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 2204s] [517/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 2204s] [518/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 2205s] [519/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 2206s] [520/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 2206s] [521/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 2206s] [522/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 2207s] [523/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 2207s] [524/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 2207s] [525/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 2207s] [526/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 2207s] [527/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 2207s] [528/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 2207s] [529/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 2208s] [530/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 2208s] [531/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 2208s] [532/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 2208s] [533/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 2209s] [534/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 2209s] [535/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 2209s] [536/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 2210s] [537/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 2210s] [538/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 2210s] [539/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 2210s] [540/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 2210s] [541/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 2210s] [542/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 2210s] [543/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 2210s] [544/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 2211s] [545/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 2211s] [546/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 2211s] [547/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 2211s] [548/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 2211s] [549/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 2212s] [550/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 2212s] [551/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 2212s] [552/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 2212s] [553/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 2212s] [554/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 2212s] [555/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 2213s] [556/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 2213s] [557/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 2213s] [558/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 2213s] [559/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 2217s] [560/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 2217s] [561/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 2217s] [562/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 2218s] [563/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 2218s] [564/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 2218s] [565/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 2218s] [566/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 2219s] [567/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 2219s] [568/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 2219s] [569/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 2219s] [570/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 2220s] [571/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 2220s] [572/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 2221s] [573/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 2221s] [574/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 2221s] [575/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 2222s] [576/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 2222s] [577/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 2224s] [578/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 2225s] [579/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 2225s] [580/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 2225s] [581/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 2225s] [582/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 2226s] [583/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 2226s] [584/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 2226s] [585/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 2226s] [586/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 2227s] [587/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 2227s] [588/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 2228s] [589/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 2228s] [590/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 2228s] [591/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 2228s] [592/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 2229s] [593/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 2229s] [594/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 2230s] [595/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 2230s] [596/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 2231s] [597/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 2231s] [598/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 2231s] [599/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 2232s] [600/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 2232s] [601/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 2232s] [602/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 2232s] [603/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 2232s] [604/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 2232s] [605/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 2232s] [606/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 2232s] [607/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 2232s] [608/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 2232s] [609/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 2232s] [610/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 2232s] [611/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 2233s] [612/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 2233s] [613/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 2233s] [614/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 2233s] [615/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 2233s] [616/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 2233s] [617/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 2233s] [618/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 2233s] [619/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 2233s] [620/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 2233s] [621/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 2233s] [622/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 2233s] [623/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 2233s] [624/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 2233s] [625/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 2233s] [626/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 2233s] [627/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 2233s] [628/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 2233s] [629/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 2233s] [630/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 2233s] [631/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 2233s] [632/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 2233s] [633/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 2233s] [634/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 2233s] [635/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 2233s] [636/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 2233s] [637/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 2233s] [638/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 2233s] [639/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 2233s] [640/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 2233s] [641/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 2233s] [642/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 2233s] [643/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 2234s] [644/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 2234s] [645/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 2234s] [646/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 2234s] [647/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 2234s] [648/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 2234s] [649/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 2235s] [650/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 2235s] [651/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 2235s] [652/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 2235s] [653/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 2235s] [654/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 2235s] [655/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 2235s] [656/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 2235s] [657/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 2236s] [658/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 2236s] [659/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 2236s] [660/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 2236s] [661/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 2236s] [662/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 2236s] [663/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 2237s] [664/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 2237s] [665/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 2237s] [666/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 2237s] [667/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 2237s] [668/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 2237s] [669/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 2237s] [670/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 2237s] [671/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 2237s] [672/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 2237s] [673/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 2237s] [674/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 2237s] [675/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 2237s] [676/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 2237s] [677/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 2237s] [678/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 2237s] [679/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 2237s] [680/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 2238s] [681/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 2238s] [682/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 2238s] [683/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 2238s] [684/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 2238s] [685/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 2238s] [686/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 2238s] [687/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 2238s] [688/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 2238s] [689/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 2238s] [690/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 2238s] [691/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 2238s] [692/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 2238s] [693/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 2238s] [694/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 2238s] [695/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 2238s] [696/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 2238s] [697/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 2238s] [698/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 2238s] [699/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 2238s] [700/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 2238s] [701/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 2239s] [702/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 2239s] [703/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 2239s] [704/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 2239s] [705/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 2239s] [706/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 2239s] [707/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 2239s] [708/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 2239s] [709/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 2239s] [710/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 2240s] [711/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 2240s] [712/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 2240s] [713/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 2240s] [714/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 2241s] [715/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 2242s] [716/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 2242s] [717/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 2242s] [718/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 2243s] [719/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 2243s] [720/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 2243s] [721/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 2243s] [722/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 2243s] [723/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 2244s] [724/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 2244s] [725/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 2244s] [726/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 2244s] [727/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 2244s] [728/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 2244s] [729/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 2245s] [730/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 2246s] [731/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 2246s] [732/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 2247s] [733/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 2247s] [734/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 2247s] [735/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 2247s] [736/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 2247s] [737/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 2248s] [738/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 2248s] [739/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 2248s] [740/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 2248s] [741/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 2249s] [742/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 2249s] [743/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 2249s] [744/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 2250s] [745/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 2250s] [746/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 2251s] [747/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 2251s] [748/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 2251s] [749/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 2251s] [750/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 2252s] [751/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 2252s] [752/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 2252s] [753/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 2253s] [754/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 2253s] [755/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 2253s] [756/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 2253s] [757/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 2253s] [758/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 2253s] [759/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 2253s] [760/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 2254s] [761/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 2254s] [762/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 2254s] [763/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 2254s] [764/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 2254s] [765/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 2254s] [766/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 2255s] [767/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 2255s] [768/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 2255s] [769/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 2255s] [770/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 2255s] [771/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 2256s] [772/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 2256s] [773/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 2256s] [774/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 2256s] [775/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 2256s] [776/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 2256s] [777/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 2256s] [778/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 2256s] [779/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 2257s] [780/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 2257s] [781/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 2257s] [782/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 2257s] [783/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 2257s] [784/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 2258s] [785/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 2259s] [786/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 2259s] [787/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 2259s] [788/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 2259s] [789/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 2259s] [790/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 2259s] [791/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 2260s] [792/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 2260s] [793/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 2260s] [794/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 2260s] [795/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 2260s] [796/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 2261s] [797/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 2261s] [798/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 2261s] [799/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 2261s] [800/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 2261s] [801/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 2261s] [802/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 2261s] [803/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 2261s] [804/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 2261s] [805/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 2262s] [806/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 2263s] [807/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 2263s] [808/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 2263s] [809/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 2263s] [810/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 2263s] [811/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 2264s] [812/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 2264s] [813/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 2264s] [814/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 2265s] [815/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 2265s] [816/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 2265s] [817/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 2266s] [818/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 2266s] [819/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 2266s] [820/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 2266s] [821/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 2266s] [822/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 2266s] [823/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 2266s] [824/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 2266s] [825/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 2266s] [826/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 2266s] [827/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 2266s] [828/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 2266s] [829/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 2266s] [830/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 2266s] [831/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 2266s] [832/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 2266s] [833/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 2266s] [834/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 2266s] [835/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 2266s] [836/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 2266s] [837/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 2266s] [838/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 2267s] [839/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 2267s] [840/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 2267s] [841/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 2267s] [842/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 2267s] [843/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 2267s] [844/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 2267s] [845/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 2268s] [846/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 2268s] [847/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 2269s] [848/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 2269s] [849/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 2269s] [850/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 2269s] [851/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 2269s] [852/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 2269s] [853/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 2269s] [854/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 2269s] [855/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 2269s] [856/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 2269s] [857/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 2270s] [858/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 2270s] [859/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 2270s] [860/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 2270s] [861/881] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 2270s] [862/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 2270s] [863/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 2271s] [864/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 2271s] [865/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 2272s] [866/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 2272s] [867/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 2272s] [868/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 2272s] [869/881] Linking CXX static library out_tizen/unified_mobile/release/lib/libescargot.a [ 2272s] [870/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 2272s] [871/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 2272s] [872/881] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 2272s] [873/881] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 2272s] [874/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 2272s] [875/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 2272s] [876/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 2273s] [877/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 2273s] [878/881] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 2273s] [879/881] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 2275s] [880/881] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 2804s] [881/881] Linking CXX shared library out_tizen/unified_mobile/release/lib/liblightweight-web-engine-dali-plugin.mobile.so [ 2804s] + rm -f CMakeCache.txt [ 2804s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_mobile -DBACKEND=efl_cairo_gl -DLTO=1 -DTARGETNAME=lightweight-web-engine.mobile -G Ninja [ 2804s] -- The C compiler identification is GNU 9.2.0 [ 2804s] -- The CXX compiler identification is GNU 9.2.0 [ 2804s] -- Check for working C compiler: /bin/cc [ 2804s] -- Check for working C compiler: /bin/cc -- works [ 2804s] -- Detecting C compiler ABI info [ 2804s] -- Detecting C compiler ABI info - done [ 2804s] -- Detecting C compile features [ 2804s] -- Detecting C compile features - done [ 2804s] -- Check for working CXX compiler: /bin/c++ [ 2805s] -- Check for working CXX compiler: /bin/c++ -- works [ 2805s] -- Detecting CXX compiler ABI info [ 2805s] -- Detecting CXX compiler ABI info - done [ 2805s] -- Detecting CXX compile features [ 2805s] -- Detecting CXX compile features - done [ 2805s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 2805s] -- Checking for modules 'libpng;freetype2;fontconfig;harfbuzz;elementary;ecore;ecore-imf' [ 2806s] -- Found libpng, version 1.6.37 [ 2806s] -- Found freetype2, version 23.1.17 [ 2806s] -- Found fontconfig, version 2.13.1 [ 2806s] -- Found harfbuzz, version 2.6.4 [ 2806s] -- Found elementary, version 1.24.0 [ 2807s] -- Found ecore, version 1.24.0 [ 2807s] -- Found ecore-imf, version 1.24.0 [ 2810s] -- Checking for module 'ecore-imf-evas' [ 2810s] -- Found ecore-imf-evas, version 1.24.0 [ 2811s] -- Checking for module 'libtbm' [ 2811s] -- Found libtbm, version 3.0.0 [ 2811s] -- Checking for module 'cairo' [ 2812s] -- Found cairo, version 1.14.2 [ 2812s] -- Checking for modules 'capi-media-player;capi-network-connection' [ 2813s] -- Found capi-media-player, version [ 2813s] -- Found capi-network-connection, version [ 2813s] -- Looking for cap_set_flag in cap [ 2813s] -- Looking for cap_set_flag in cap - not found [ 2813s] -- Checking for module 'dlog' [ 2814s] -- Found dlog, version 1.0 [ 2814s] -- Starfish [ 2814s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-fno-rtti-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0 [ 2814s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrixpthreadcurlsslcryptojpeggifturbojpegrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine.so.1png16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreeflecore_imfecore_inputeoeinapthreadcairoecore_imf_evasefleoeinapthreadtbmcapi-base-commoncapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-network-connectioncapi-base-common [ 2814s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_ENABLE_MULTIMEDIA-DSTARFISH_ENABLE_MULTI_THREAD_IMAGE_DECODING-DNDEBUG-DSTARFISH_EFL_CAIRO [ 2814s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 2814s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-ipc-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/libmount/usr/include/blkid/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ecore-1/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/media/usr/include/network/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 2814s] -- Configuring done [ 2815s] -- Generating done [ 2815s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 2815s] + ninja starfish.shared_library [ 2815s] [1/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 2815s] [2/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 2816s] [3/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 2816s] [4/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 2816s] [5/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 2816s] [6/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 2816s] [7/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 2816s] [8/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 2816s] [9/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 2816s] [10/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 2818s] [11/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 2818s] [12/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 2818s] [13/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 2818s] [14/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 2818s] [15/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 2818s] [16/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 2818s] [17/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 2818s] [18/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 2819s] [19/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 2819s] [20/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 2819s] [21/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 2819s] [22/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 2819s] [23/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 2819s] [24/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 2819s] [25/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 2819s] [26/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 2819s] [27/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 2819s] [28/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 2819s] [29/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 2819s] [30/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 2820s] [31/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 2820s] [32/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 2821s] [33/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 2821s] [34/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 2821s] [35/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 2821s] [36/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 2821s] [37/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 2821s] [38/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 2822s] [39/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 2822s] [40/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 2822s] [41/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 2822s] [42/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 2822s] [43/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 2822s] [44/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 2822s] [45/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 2823s] [46/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 2823s] [47/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 2823s] [48/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 2824s] [49/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 2824s] [50/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 2824s] [51/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 2824s] [52/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 2824s] [53/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 2825s] [54/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 2825s] [55/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 2825s] [56/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 2825s] [57/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 2825s] [58/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 2825s] [59/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 2826s] [60/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 2826s] [61/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 2826s] [62/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 2826s] [63/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 2826s] [64/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 2827s] [65/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 2827s] [66/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 2827s] [67/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 2827s] [68/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 2828s] [69/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 2828s] [70/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 2828s] [71/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 2828s] [72/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 2828s] [73/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 2828s] [74/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 2828s] [75/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 2828s] [76/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 2829s] [77/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 2829s] [78/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 2829s] [79/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 2829s] [80/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 2829s] [81/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 2830s] [82/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 2830s] [83/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 2830s] [84/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 2831s] [85/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 2831s] [86/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 2831s] [87/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 2831s] [88/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 2832s] [89/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 2832s] [90/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 2832s] [91/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 2832s] [92/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 2833s] [93/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 2833s] [94/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 2833s] [95/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 2833s] [96/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 2833s] [97/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 2833s] [98/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 2833s] [99/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 2833s] [100/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 2834s] [101/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 2834s] [102/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 2834s] [103/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 2834s] [104/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 2834s] [105/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 2834s] [106/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 2834s] [107/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 2834s] [108/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 2836s] [109/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 2836s] [110/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 2836s] [111/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 2837s] [112/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 2837s] [113/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 2838s] [114/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 2838s] [115/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 2838s] [116/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 2838s] [117/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 2838s] [118/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 2838s] [119/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 2838s] [120/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 2838s] [121/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 2838s] [122/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 2839s] [123/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 2839s] [124/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 2839s] [125/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 2839s] [126/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 2839s] [127/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 2840s] [128/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 2840s] [129/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 2840s] [130/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 2841s] [131/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 2842s] [132/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 2842s] [133/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 2842s] [134/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 2843s] [135/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 2843s] [136/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 2843s] [137/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 2844s] [138/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 2844s] [139/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 2844s] [140/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 2844s] [141/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 2844s] [142/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 2844s] [143/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 2844s] [144/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 2844s] [145/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 2845s] [146/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 2846s] [147/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 2846s] [148/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 2846s] [149/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 2847s] [150/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 2847s] [151/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 2847s] [152/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 2848s] [153/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 2848s] [154/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 2848s] [155/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 2848s] [156/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 2849s] [157/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 2849s] [158/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 2849s] [159/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 2849s] [160/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 2849s] [161/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 2849s] [162/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 2850s] [163/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 2850s] [164/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 2850s] [165/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 2851s] [166/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 2851s] [167/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 2851s] [168/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 2851s] [169/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 2852s] [170/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 2852s] [171/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 2852s] [172/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 2853s] [173/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 2853s] [174/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 2853s] [175/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 2853s] [176/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 2853s] [177/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 2853s] [178/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 2853s] [179/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 2853s] [180/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 2853s] [181/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 2853s] [182/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 2853s] [183/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 2854s] [184/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 2854s] [185/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 2854s] [186/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 2854s] [187/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 2854s] [188/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 2854s] [189/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 2854s] [190/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 2854s] [191/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 2854s] [192/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 2854s] [193/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 2854s] [194/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 2854s] [195/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 2854s] [196/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 2855s] [197/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 2855s] [198/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 2855s] [199/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 2856s] [200/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 2856s] [201/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 2856s] [202/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 2856s] [203/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 2856s] [204/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 2856s] [205/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 2856s] [206/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 2856s] [207/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 2856s] [208/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 2857s] [209/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 2857s] [210/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 2857s] [211/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 2857s] [212/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 2857s] [213/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 2857s] [214/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 2857s] [215/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 2857s] [216/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 2857s] [217/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 2857s] [218/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 2857s] [219/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 2857s] [220/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 2857s] [221/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 2857s] [222/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 2857s] [223/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 2857s] [224/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 2857s] [225/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 2857s] [226/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 2857s] [227/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 2857s] [228/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 2857s] [229/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 2857s] [230/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 2857s] [231/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 2857s] [232/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 2857s] [233/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 2857s] [234/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 2857s] [235/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 2857s] [236/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 2857s] [237/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 2857s] [238/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 2857s] [239/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 2857s] [240/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 2857s] [241/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 2857s] [242/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 2857s] [243/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 2858s] [244/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 2858s] [245/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 2858s] [246/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 2858s] [247/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 2858s] [248/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 2858s] [249/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 2858s] [250/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 2858s] [251/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 2858s] [252/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 2858s] [253/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 2859s] [254/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 2859s] [255/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 2860s] [256/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 2860s] [257/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 2860s] [258/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 2860s] [259/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 2860s] [260/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 2860s] [261/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 2860s] [262/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 2860s] [263/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 2860s] [264/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 2860s] [265/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 2861s] [266/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 2861s] [267/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 2861s] [268/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 2861s] [269/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 2862s] [270/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 2862s] [271/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 2863s] [272/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 2863s] [273/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 2863s] [274/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 2863s] [275/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 2864s] [276/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 2865s] [277/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 2865s] [278/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 2865s] [279/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 2865s] [280/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 2865s] [281/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 2866s] [282/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 2866s] [283/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 2866s] [284/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 2866s] [285/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 2866s] [286/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 2866s] [287/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 2866s] [288/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 2867s] [289/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 2867s] [290/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 2867s] [291/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 2867s] [292/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 2867s] [293/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 2867s] [294/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 2867s] [295/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 2867s] [296/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 2867s] [297/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 2867s] [298/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 2867s] [299/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 2868s] [300/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 2868s] [301/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 2868s] [302/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 2868s] [303/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 2868s] [304/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 2868s] [305/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 2869s] [306/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 2869s] [307/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 2869s] [308/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 2869s] [309/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 2869s] [310/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 2869s] [311/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 2869s] [312/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 2870s] [313/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 2870s] [314/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 2871s] [315/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 2871s] [316/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 2871s] [317/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 2871s] [318/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 2871s] [319/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 2872s] [320/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 2872s] [321/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 2872s] [322/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 2872s] [323/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 2872s] [324/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 2873s] [325/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 2873s] [326/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 2873s] [327/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 2873s] [328/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 2873s] [329/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 2873s] [330/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 2873s] [331/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 2873s] [332/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 2873s] [333/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 2873s] [334/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 2873s] [335/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 2873s] [336/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 2873s] [337/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 2873s] [338/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 2874s] [339/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 2874s] [340/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 2874s] [341/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 2875s] [342/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 2875s] [343/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 2875s] [344/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 2876s] [345/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 2876s] [346/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 2876s] [347/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 2876s] [348/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 2876s] [349/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 2877s] [350/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 2877s] [351/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 2877s] [352/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 2877s] [353/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 2878s] [354/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 2878s] [355/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 2878s] [356/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 2878s] [357/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 2878s] [358/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 2879s] [359/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 2879s] [360/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 2879s] [361/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 2879s] [362/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 2879s] [363/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 2879s] [364/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 2880s] [365/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 2880s] [366/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 2880s] [367/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 2880s] [368/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 2880s] [369/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 2881s] [370/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 2881s] [371/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 2881s] [372/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 2882s] [373/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 2882s] [374/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 2882s] [375/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 2882s] [376/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 2883s] [377/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 2883s] [378/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 2883s] [379/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 2883s] [380/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 2883s] [381/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 2883s] [382/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 2883s] [383/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 2884s] [384/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 2884s] [385/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 2884s] [386/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 2884s] [387/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 2884s] [388/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 2885s] [389/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 2885s] [390/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 2885s] [391/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 2885s] [392/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 2886s] [393/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 2887s] [394/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 2887s] [395/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 2887s] [396/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 2888s] [397/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 2888s] [398/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 2888s] [399/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 2889s] [400/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 2889s] [401/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 2889s] [402/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 2890s] [403/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 2890s] [404/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 2890s] [405/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 2890s] [406/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 2890s] [407/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 2891s] [408/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 2891s] [409/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 2892s] [410/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 2892s] [411/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 2892s] [412/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 2893s] [413/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 2894s] [414/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 2894s] [415/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 2894s] [416/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 2894s] [417/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 2894s] [418/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 2895s] [419/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 2895s] [420/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 2895s] [421/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 2896s] [422/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 2896s] [423/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 2896s] [424/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 2896s] [425/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 2897s] [426/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 2897s] [427/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 2898s] [428/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 2898s] [429/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 2898s] [430/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 2898s] [431/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 2898s] [432/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 2898s] [433/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 2899s] [434/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 2899s] [435/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 2899s] [436/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 2899s] [437/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 2899s] [438/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 2900s] [439/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 2901s] [440/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 2901s] [441/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 2902s] [442/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 2902s] [443/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 2902s] [444/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 2902s] [445/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 2903s] [446/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 2903s] [447/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 2903s] [448/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 2903s] [449/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 2903s] [450/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 2903s] [451/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 2904s] [452/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 2904s] [453/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 2904s] [454/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 2904s] [455/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 2904s] [456/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 2905s] [457/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 2905s] [458/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 2905s] [459/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 2905s] [460/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 2905s] [461/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 2906s] [462/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 2906s] [463/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 2907s] [464/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 2908s] [465/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 2908s] [466/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 2908s] [467/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 2908s] [468/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 2908s] [469/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 2908s] [470/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 2909s] [471/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 2909s] [472/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 2909s] [473/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 2909s] [474/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 2909s] [475/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 2909s] [476/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 2909s] [477/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 2909s] [478/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 2909s] [479/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 2909s] [480/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 2910s] [481/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 2910s] [482/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 2910s] [483/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 2910s] [484/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 2910s] [485/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 2910s] [486/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 2910s] [487/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 2910s] [488/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 2910s] [489/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 2910s] [490/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 2911s] [491/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 2911s] [492/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 2911s] [493/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 2911s] [494/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 2911s] [495/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 2912s] [496/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 2912s] [497/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 2912s] [498/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 2913s] [499/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 2913s] [500/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 2913s] [501/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 2913s] [502/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 2913s] [503/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 2914s] [504/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 2915s] [505/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 2915s] [506/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 2915s] [507/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 2915s] [508/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 2915s] [509/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 2915s] [510/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 2916s] [511/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 2916s] [512/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 2917s] [513/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 2917s] [514/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 2918s] [515/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 2918s] [516/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 2918s] [517/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 2918s] [518/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 2918s] [519/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 2918s] [520/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 2918s] [521/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 2918s] [522/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 2919s] [523/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 2919s] [524/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 2920s] [525/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 2920s] [526/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 2920s] [527/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 2920s] [528/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 2920s] [529/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 2921s] [530/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 2921s] [531/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 2921s] [532/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 2921s] [533/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 2921s] [534/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 2921s] [535/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 2921s] [536/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 2921s] [537/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 2922s] [538/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 2922s] [539/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 2922s] [540/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 2922s] [541/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 2922s] [542/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 2922s] [543/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 2923s] [544/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 2923s] [545/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 2923s] [546/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 2923s] [547/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 2924s] [548/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 2924s] [549/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 2924s] [550/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 2924s] [551/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 2928s] [552/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 2928s] [553/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 2929s] [554/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 2929s] [555/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 2929s] [556/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 2930s] [557/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 2930s] [558/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 2930s] [559/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 2930s] [560/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 2930s] [561/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 2930s] [562/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 2931s] [563/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 2932s] [564/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 2932s] [565/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 2932s] [566/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 2933s] [567/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 2933s] [568/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 2934s] [569/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 2935s] [570/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 2935s] [571/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 2935s] [572/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 2936s] [573/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 2936s] [574/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 2936s] [575/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 2937s] [576/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 2937s] [577/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 2937s] [578/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 2938s] [579/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 2938s] [580/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 2939s] [581/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 2939s] [582/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 2939s] [583/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 2939s] [584/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 2939s] [585/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 2940s] [586/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 2940s] [587/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 2941s] [588/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 2941s] [589/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 2942s] [590/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 2942s] [591/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 2942s] [592/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 2942s] [593/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 2942s] [594/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 2942s] [595/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 2942s] [596/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 2942s] [597/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 2943s] [598/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 2943s] [599/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 2943s] [600/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 2943s] [601/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 2943s] [602/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 2943s] [603/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 2943s] [604/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 2944s] [605/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 2944s] [606/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 2944s] [607/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 2944s] [608/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 2944s] [609/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 2944s] [610/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 2944s] [611/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 2944s] [612/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 2944s] [613/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 2944s] [614/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 2944s] [615/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 2944s] [616/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 2944s] [617/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 2944s] [618/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 2944s] [619/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 2944s] [620/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 2944s] [621/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 2944s] [622/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 2944s] [623/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 2944s] [624/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 2944s] [625/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 2944s] [626/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 2944s] [627/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 2944s] [628/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 2944s] [629/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 2944s] [630/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 2944s] [631/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 2944s] [632/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 2944s] [633/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 2944s] [634/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 2944s] [635/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 2944s] [636/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 2945s] [637/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 2945s] [638/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 2945s] [639/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 2945s] [640/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 2945s] [641/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 2945s] [642/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 2945s] [643/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 2946s] [644/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 2946s] [645/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 2946s] [646/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 2946s] [647/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 2946s] [648/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 2946s] [649/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 2947s] [650/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 2947s] [651/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 2947s] [652/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 2947s] [653/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 2947s] [654/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 2947s] [655/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 2947s] [656/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 2947s] [657/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 2947s] [658/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 2947s] [659/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 2947s] [660/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 2947s] [661/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 2948s] [662/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 2948s] [663/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 2948s] [664/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 2948s] [665/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 2948s] [666/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 2948s] [667/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 2948s] [668/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 2948s] [669/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 2948s] [670/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 2948s] [671/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 2948s] [672/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 2948s] [673/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 2948s] [674/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 2948s] [675/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 2948s] [676/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 2948s] [677/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 2948s] [678/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 2948s] [679/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 2948s] [680/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 2948s] [681/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 2948s] [682/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 2948s] [683/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 2949s] [684/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 2949s] [685/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 2949s] [686/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 2949s] [687/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 2949s] [688/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 2949s] [689/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 2949s] [690/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 2949s] [691/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 2949s] [692/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 2949s] [693/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 2949s] [694/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 2949s] [695/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 2950s] [696/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 2950s] [697/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 2950s] [698/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 2950s] [699/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 2950s] [700/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 2950s] [701/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 2951s] [702/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 2951s] [703/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 2951s] [704/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 2951s] [705/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 2952s] [706/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 2953s] [707/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 2953s] [708/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 2953s] [709/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 2953s] [710/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 2953s] [711/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 2954s] [712/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 2954s] [713/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 2954s] [714/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 2955s] [715/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 2955s] [716/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 2955s] [717/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 2955s] [718/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 2955s] [719/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 2955s] [720/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 2956s] [721/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 2956s] [722/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 2957s] [723/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 2958s] [724/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 2958s] [725/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 2958s] [726/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 2958s] [727/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 2958s] [728/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 2958s] [729/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 2959s] [730/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 2959s] [731/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 2959s] [732/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 2959s] [733/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 2960s] [734/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 2960s] [735/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 2960s] [736/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 2961s] [737/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 2961s] [738/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 2961s] [739/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 2961s] [740/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 2961s] [741/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 2962s] [742/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 2962s] [743/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 2962s] [744/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 2963s] [745/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 2963s] [746/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 2964s] [747/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 2964s] [748/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 2964s] [749/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 2964s] [750/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 2964s] [751/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 2964s] [752/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 2964s] [753/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 2965s] [754/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 2965s] [755/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 2965s] [756/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 2965s] [757/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 2965s] [758/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 2965s] [759/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 2966s] [760/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 2966s] [761/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 2966s] [762/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 2966s] [763/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 2967s] [764/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 2967s] [765/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 2967s] [766/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 2967s] [767/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 2967s] [768/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 2967s] [769/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 2967s] [770/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 2968s] [771/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 2968s] [772/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 2968s] [773/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 2968s] [774/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 2968s] [775/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 2969s] [776/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 2969s] [777/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 2970s] [778/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 2970s] [779/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 2970s] [780/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 2970s] [781/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 2970s] [782/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 2970s] [783/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 2970s] [784/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 2971s] [785/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 2971s] [786/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 2971s] [787/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 2971s] [788/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 2972s] [789/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 2972s] [790/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 2972s] [791/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 2972s] [792/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 2972s] [793/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 2972s] [794/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 2972s] [795/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 2973s] [796/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 2973s] [797/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 2974s] [798/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 2974s] [799/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 2974s] [800/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 2974s] [801/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 2974s] [802/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 2974s] [803/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 2975s] [804/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 2975s] [805/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 2975s] [806/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 2976s] [807/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 2976s] [808/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 2977s] [809/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 2977s] [810/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 2977s] [811/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 2977s] [812/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 2977s] [813/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 2977s] [814/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 2977s] [815/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 2977s] [816/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 2977s] [817/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 2977s] [818/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 2977s] [819/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 2977s] [820/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 2978s] [821/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 2978s] [822/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 2978s] [823/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 2978s] [824/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 2978s] [825/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 2978s] [826/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 2978s] [827/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 2978s] [828/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 2978s] [829/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 2979s] [830/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 2979s] [831/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 2979s] [832/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 2979s] [833/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 2979s] [834/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 2979s] [835/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 2980s] [836/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 2980s] [837/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 2980s] [838/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 2980s] [839/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 2980s] [840/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 2981s] [841/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 2981s] [842/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 2981s] [843/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 2981s] [844/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 2981s] [845/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 2981s] [846/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 2981s] [847/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 2981s] [848/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 2981s] [849/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 2982s] [850/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 2982s] [851/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 2983s] [852/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 2983s] [853/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 2983s] [854/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 2983s] [855/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 2983s] [856/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 2983s] [857/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 2984s] [858/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 2984s] [859/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 2984s] [860/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 2984s] [861/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 2984s] [862/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 2984s] [863/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 2984s] [864/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 2984s] [865/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 2984s] [866/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 2985s] [867/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 2985s] [868/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 2985s] [869/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 2985s] [870/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 2986s] [871/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 3510s] [872/872] Linking CXX shared library out_tizen/unified_mobile/release/lib/liblightweight-web-engine.mobile.so [ 3510s] + ninja starfish.executable [ 3513s] [1/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/testRunner.cpp.o [ 3514s] [2/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/shell.cpp.o [ 4045s] [3/3] Linking CXX executable out_tizen/unified_mobile/release/lightweight-web-engine.mobile [ 4045s] + CFLAGS+=' -Os ' [ 4045s] + CXXFLAGS+=' -Os ' [ 4045s] + rm -f CMakeCache.txt [ 4045s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_wearable -DBACKEND=dali -DLTO=1 -DTARGETNAME=lightweight-web-engine-dali-plugin.wearable -G Ninja [ 4045s] -- The C compiler identification is GNU 9.2.0 [ 4045s] -- The CXX compiler identification is GNU 9.2.0 [ 4045s] -- Check for working C compiler: /bin/cc [ 4045s] -- Check for working C compiler: /bin/cc -- works [ 4045s] -- Detecting C compiler ABI info [ 4045s] -- Detecting C compiler ABI info - done [ 4045s] -- Detecting C compile features [ 4046s] -- Detecting C compile features - done [ 4046s] -- Check for working CXX compiler: /bin/c++ [ 4046s] -- Check for working CXX compiler: /bin/c++ -- works [ 4046s] -- Detecting CXX compiler ABI info [ 4046s] -- Detecting CXX compiler ABI info - done [ 4046s] -- Detecting CXX compile features [ 4047s] -- Detecting CXX compile features - done [ 4047s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 4047s] -- Checking for modules 'dlog;libpng;freetype2;fontconfig;harfbuzz;elementary;ecore' [ 4047s] -- Found dlog, version 1.0 [ 4047s] -- Found libpng, version 1.6.37 [ 4047s] -- Found freetype2, version 23.1.17 [ 4048s] -- Found fontconfig, version 2.13.1 [ 4048s] -- Found harfbuzz, version 2.6.4 [ 4048s] -- Found elementary, version 1.24.0 [ 4048s] -- Found ecore, version 1.24.0 [ 4051s] -- Checking for module 'cairo' [ 4051s] -- Found cairo, version 1.14.2 [ 4052s] -- Checking for modules 'dlog;capi-media-player;capi-media-sound-manager;capi-system-info;capi-system-device' [ 4052s] -- Found dlog, version 1.0 [ 4053s] -- Found capi-media-player, version [ 4053s] -- Found capi-media-sound-manager, version 0.0.1 [ 4053s] -- Found capi-system-info, version 0.2.0 [ 4053s] -- Found capi-system-device, version [ 4054s] -- Checking for module 'bundle' [ 4054s] -- Found bundle, version 0.4.5 [ 4054s] -- Looking for cap_set_flag in cap [ 4054s] -- Looking for cap_set_flag in cap - not found [ 4054s] -- Checking for module 'dlog' [ 4055s] -- Found dlog, version 1.0 [ 4055s] -- Starfish [ 4055s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0-Os [ 4055s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/out_tizen/unified_wearable/release/lib/libtuv.sopthreadcurlsslcryptojpeggif-Llib/tizendali-coredali-adaptordali-toolkitrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine-dali-plugin.so.1dlogpng16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_imfecore_inputecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreefleoeinapthreadcairodlogcapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-system-infocapi-system-devicecapi-base-commonbundlecapi-base-common [ 4055s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_TIZEN_WEARABLE_WIDGET-DSTARFISH_TIZEN_CAPI_LOCATION_MANAGER_ENABLED-DSTARFISH_DISABLE_OVERFLOW_SCROLL-DSTARFISH_ENABLE_OBSOLETE_SPEC-DSTARFISH_ENABLE_BATTERY_STATUS-DNDEBUG-DSTARFISH_DALI [ 4055s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 4055s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/ecore-input-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/eeze-1/usr/include/libmount/usr/include/blkid/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-file-1/usr/include/ecore-ipc-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/usr/include/dali/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libtuv/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/dlog/usr/include/media/usr/include/system/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 4055s] -- Configuring done [ 4056s] -- Generating done [ 4056s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 4056s] + ninja starfish.shared_library [ 4057s] [1/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SDTP.cpp.o [ 4057s] [2/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PADB.cpp.o [ 4057s] [3/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.DataAtom.cpp.o [ 4057s] [4/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.Atom.cpp.o [ 4057s] [5/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CO64.cpp.o [ 4057s] [6/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FREE.cpp.o [ 4057s] [7/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.HDLR.cpp.o [ 4057s] [8/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.HMHD.cpp.o [ 4057s] [9/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MEHD.cpp.o [ 4057s] [10/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IPMC.cpp.o [ 4057s] [11/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STDP.cpp.o [ 4057s] [12/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MFHD.cpp.o [ 4057s] [13/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PDIN.cpp.o [ 4058s] [14/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SGPD.cpp.o [ 4058s] [15/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CPRT.cpp.o [ 4058s] [16/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IINF.cpp.o [ 4058s] [17/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SCHI.cpp.o [ 4058s] [18/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ESDS.cpp.o [ 4058s] [19/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.BXML.cpp.o [ 4058s] [20/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.DREF.cpp.o [ 4058s] [21/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FullBox.cpp.o [ 4058s] [22/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ILOC.cpp.o [ 4058s] [23/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SMHD.cpp.o [ 4058s] [24/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.CTTS.cpp.o [ 4058s] [25/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.IMIF.cpp.o [ 4058s] [26/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.File.cpp.o [ 4058s] [27/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ELST.cpp.o [ 4058s] [28/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FTYP.cpp.o [ 4058s] [29/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MDAT.cpp.o [ 4058s] [30/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.Parser.cpp.o [ 4059s] [31/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SBGP.cpp.o [ 4059s] [32/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SCHM.cpp.o [ 4059s] [33/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.BinaryStream.cpp.o [ 4059s] [34/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MP4A.cpp.o [ 4059s] [35/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.ContainerAtom.cpp.o [ 4059s] [36/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.AVCC.cpp.o [ 4059s] [37/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.FRMA.cpp.o [ 4059s] [38/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.PITM.cpp.o [ 4059s] [39/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MDHD.cpp.o [ 4059s] [40/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MVHD.cpp.o [ 4059s] [41/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STCO.cpp.o [ 4059s] [42/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSC.cpp.o [ 4059s] [43/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STZ2.cpp.o [ 4059s] [44/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSD.cpp.o [ 4059s] [45/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMallocPixelRef.cpp.o [ 4059s] [46/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSH.cpp.o [ 4060s] [47/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.MFRO.cpp.o [ 4060s] [48/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSZ.cpp.o [ 4060s] [49/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STSS.cpp.o [ 4060s] [50/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.STTS.cpp.o [ 4060s] [51/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFDT.cpp.o [ 4060s] [52/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.SUBS.cpp.o [ 4060s] [53/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TREF.cpp.o [ 4060s] [54/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFHD.cpp.o [ 4060s] [55/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TFRA.cpp.o [ 4060s] [56/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMath.cpp.o [ 4060s] [57/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TREX.cpp.o [ 4060s] [58/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TKHD.cpp.o [ 4060s] [59/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/ports/SkDebug_stdio.cpp.o [ 4060s] [60/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkPoint.cpp.o [ 4060s] [61/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkUtils.cpp.o [ 4060s] [62/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/ports/SkMemory_malloc.cpp.o [ 4060s] [63/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.XML.cpp.o [ 4060s] [64/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.VMHD.cpp.o [ 4060s] [65/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.UDTA.cpp.o [ 4060s] [66/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.TRUN.cpp.o [ 4061s] [67/1121] Building CXX object CMakeFiles/mp4parse.dir/third_party/MP4Parse/source/MP4.UnknownAtom.cpp.o [ 4061s] [68/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMatrix44.cpp.o [ 4061s] [69/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkStringUtils.cpp.o [ 4061s] [70/1121] Linking CXX shared library out_tizen/unified_wearable/release/lib/libmp4parse.so [ 4061s] [71/1121] Building CXX object CMakeFiles/webm.dir/third_party/webm/webvtt/webvttparser.cc.o [ 4061s] [72/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkRect.cpp.o [ 4061s] [73/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkString.cpp.o [ 4062s] [74/1121] Building CXX object CMakeFiles/skia_matrix.dir/third_party/skia_matrix/src/core/SkMatrix.cpp.o [ 4062s] [75/1121] Linking CXX shared library out_tizen/unified_wearable/release/lib/libskia_matrix.so [ 4063s] [76/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/DebuggerTcp.cpp.o [ 4063s] [77/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/CustomAllocator.cpp.o [ 4063s] [78/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinMap.cpp.o [ 4064s] [79/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinMath.cpp.o [ 4064s] [80/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AtomicString.cpp.o [ 4064s] [81/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArgumentsObject.cpp.o [ 4064s] [82/1121] COPY TUV [ 4064s] [83/1121] cd /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 && echo TUV\ TARGET [ 4064s] TUV TARGET [ 4064s] [84/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ast/Node.cpp.o [ 4064s] [85/1121] Building CXX object CMakeFiles/clipper.dir/third_party/clipper/cpp/clipper.cpp.o [ 4064s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 4064s] from third_party/clipper/cpp/clipper.hpp:52, [ 4064s] from third_party/clipper/cpp/clipper.cpp:41: [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long int&}; _Tp = long long int; _Alloc = std::allocator]': [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector >::iterator' {aka '__gnu_cxx::__normal_iterator > >'} changed in GCC 7.1 [ 4064s] 426 | vector<_Tp, _Alloc>:: [ 4064s] | ^~~~~~~~~~~~~~~~~~~ [ 4064s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/queue:62, [ 4064s] from third_party/clipper/cpp/clipper.hpp:59, [ 4064s] from third_party/clipper/cpp/clipper.cpp:41: [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >; _Distance = int; _Tp = long long int; _Compare = __gnu_cxx::__ops::_Iter_comp_val >]': [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:128:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator > >' changed in GCC 7.1 [ 4064s] 128 | __push_heap(_RandomAccessIterator __first, [ 4064s] | ^~~~~~~~~~~ [ 4064s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 4064s] from third_party/clipper/cpp/clipper.hpp:52, [ 4064s] from third_party/clipper/cpp/clipper.cpp:41: [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void ClipperLib::Clipper::InsertScanbeam(ClipperLib::cInt)': [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator > >' changed in GCC 7.1 [ 4064s] 1195 | _M_realloc_insert(end(), __x); [ 4064s] | ^~~~~~~~~~~~~~~~~ [ 4064s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 4064s] from third_party/clipper/cpp/clipper.hpp:52, [ 4064s] from third_party/clipper/cpp/clipper.cpp:41: [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {ClipperLib::DoublePoint}; _Tp = ClipperLib::DoublePoint; _Alloc = std::allocator]': [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 4064s] 426 | vector<_Tp, _Alloc>:: [ 4064s] | ^~~~~~~~~~~~~~~~~~~ [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {ClipperLib::DoublePoint}; _Tp = ClipperLib::DoublePoint; _Alloc = std::allocator]': [ 4064s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:121:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4064s] 121 | _M_realloc_insert(end(), std::forward<_Args>(__args)...); [ 4064s] | ^~~~~~~~~~~~~~~~~ [ 4064s] [86/1121] Linking CXX shared library out_tizen/unified_wearable/release/lib/libclipper.so [ 4065s] [87/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ASTAllocator.cpp.o [ 4065s] [88/1121] Building CXX object CMakeFiles/webm.dir/third_party/webm/mkvparser/mkvparser.cc.o [ 4065s] [89/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/ScriptParser.cpp.o [ 4065s] [90/1121] Linking CXX shared library out_tizen/unified_wearable/release/lib/libwebm.so [ 4065s] [91/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/Heap.cpp.o [ 4066s] [92/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/heap/LeakCheckerBridge.cpp.o [ 4066s] [93/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Environment.cpp.o [ 4066s] [94/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCode.cpp.o [ 4066s] [95/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinJSON.cpp.o [ 4066s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 4066s] from third_party/escargot/src/Escargot.h:208, [ 4066s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In static member function 'static bool Escargot::builtinJSONStringify(Escargot::ExecutionState&, Escargot::Value, size_t, Escargot::Value*, Escargot::Optional)::::_FUN(Escargot::ExecutionState&, Escargot::Object*, const Escargot::ObjectPropertyName&, const Escargot::ObjectStructurePropertyDescriptor&, void*)': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1195 | _M_realloc_insert(end(), __x); [ 4066s] | ^~~~~~~~~~~~~~~~~ [ 4066s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4066s] from third_party/escargot/src/Escargot.h:187, [ 4066s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'Escargot::Value Escargot::builtinJSONStringify(Escargot::ExecutionState&, Escargot::Value, size_t, Escargot::Value*, Escargot::Optional)': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1967:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1967 | std::__introsort_loop(__first, __last, [ 4066s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ [ 4066s] 1968 | std::__lg(__last - __first) * 2, [ 4066s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4066s] 1969 | __comp); [ 4066s] | ~~~~~~~ [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1884:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1884 | std::__insertion_sort(__first, __first + int(_S_threshold), __comp); [ 4066s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1889:23: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1889 | std::__insertion_sort(__first, __last, __comp); [ 4066s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 4066s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 4066s] from third_party/escargot/src/Escargot.h:208, [ 4066s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long unsigned int&}; _Tp = long long unsigned int; _Alloc = std::allocator]': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 4066s] 426 | vector<_Tp, _Alloc>:: [ 4066s] | ^~~~~~~~~~~~~~~~~~~ [ 4066s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4066s] from third_party/escargot/src/Escargot.h:187, [ 4066s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Size = int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1939 | __introsort_loop(_RandomAccessIterator __first, [ 4066s] | ^~~~~~~~~~~~~~~~ [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1953:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1953 | std::__introsort_loop(__cut, __last, __depth_limit, __comp); [ 4066s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1839 | __insertion_sort(_RandomAccessIterator __first, [ 4066s] | ^~~~~~~~~~~~~~~~ [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Val_comp_iter >]': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1820:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 1820 | __unguarded_linear_insert(_RandomAccessIterator __last, [ 4066s] | ^~~~~~~~~~~~~~~~~~~~~~~~~ [ 4066s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:61, [ 4066s] from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4066s] from third_party/escargot/src/Escargot.h:187, [ 4066s] from third_party/escargot/src/runtime/GlobalObjectBuiltinJSON.cpp:20: [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Distance = int; _Tp = long long unsigned int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4066s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:214:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4066s] 214 | __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, [ 4066s] | ^~~~~~~~~~~~~ [ 4066s] [96/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/Debugger.cpp.o [ 4066s] [97/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/Script.cpp.o [ 4067s] [98/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArrayBufferObject.cpp.o [ 4067s] [99/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AsyncFromSyncIteratorObject.cpp.o [ 4067s] [100/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/CodeBlock.cpp.o [ 4068s] [101/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/BooleanObject.cpp.o [ 4068s] [102/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/AsyncGeneratorObject.cpp.o [ 4068s] [103/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ArrayObject.cpp.o [ 4068s] [104/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 4068s] [105/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 4068s] [106/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/BoundFunctionObject.cpp.o [ 4068s] [107/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 4068s] [108/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/Lexer.cpp.o [ 4068s] third_party/escargot/src/parser/Lexer.cpp: In member function 'char32_t Escargot::EscargotLexer::Scanner::scanUnicodeCodePointEscape()': [ 4068s] third_party/escargot/src/parser/Lexer.cpp:753:25: warning: 'ch' may be used uninitialized in this function [-Wmaybe-uninitialized] [ 4068s] 753 | if (code > 0x10FFFF || ch != '}') { [ 4068s] | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~ [ 4068s] [109/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCodeGenerator.cpp.o [ 4069s] [110/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/EnumerateObject.cpp.o [ 4069s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4069s] from third_party/escargot/src/Escargot.h:187, [ 4069s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In member function 'virtual void Escargot::EnumerateObjectWithDestruction::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:4860:18: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 4860 | std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); [ 4069s] | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In member function 'virtual void Escargot::EnumerateObjectWithIteration::executeEnumeration(Escargot::ExecutionState&, Escargot::SmallValueVector&)': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:4860:18: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 4860 | std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); [ 4069s] | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:67, [ 4069s] from third_party/escargot/src/Escargot.h:208, [ 4069s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h: In member function 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = long long unsigned int; _Alloc = std::allocator]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_vector.h:1195:4: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1195 | _M_realloc_insert(end(), __x); [ 4069s] | ^~~~~~~~~~~~~~~~~ [ 4069s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/vector:72, [ 4069s] from third_party/escargot/src/Escargot.h:208, [ 4069s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const long long unsigned int&}; _Tp = long long unsigned int; _Alloc = std::allocator]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/vector.tcc:426:7: note: parameter passing for argument of type 'std::vector::iterator' {aka '__gnu_cxx::__normal_iterator >'} changed in GCC 7.1 [ 4069s] 426 | vector<_Tp, _Alloc>:: [ 4069s] | ^~~~~~~~~~~~~~~~~~~ [ 4069s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4069s] from third_party/escargot/src/Escargot.h:187, [ 4069s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1962:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1962 | __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, [ 4069s] | ^~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1962:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1967:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1967 | std::__introsort_loop(__first, __last, [ 4069s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ [ 4069s] 1968 | std::__lg(__last - __first) * 2, [ 4069s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] 1969 | __comp); [ 4069s] | ~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1884:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1884 | std::__insertion_sort(__first, __first + int(_S_threshold), __comp); [ 4069s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1889:23: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1889 | std::__insertion_sort(__first, __last, __comp); [ 4069s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Size = int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1939 | __introsort_loop(_RandomAccessIterator __first, [ 4069s] | ^~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1939:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1953:25: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1953 | std::__introsort_loop(__cut, __last, __depth_limit, __comp); [ 4069s] | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1839 | __insertion_sort(_RandomAccessIterator __first, [ 4069s] | ^~~~~~~~~~~~~~~~ [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1839:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h: In function 'void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Compare = __gnu_cxx::__ops::_Val_comp_iter >]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:1820:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 1820 | __unguarded_linear_insert(_RandomAccessIterator __last, [ 4069s] | ^~~~~~~~~~~~~~~~~~~~~~~~~ [ 4069s] In file included from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_algo.h:61, [ 4069s] from /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/algorithm:62, [ 4069s] from third_party/escargot/src/Escargot.h:187, [ 4069s] from third_party/escargot/src/runtime/EnumerateObject.cpp:20: [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h: In function 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator >; _Distance = int; _Tp = long long unsigned int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter >]': [ 4069s] /usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/bits/stl_heap.h:214:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator >' changed in GCC 7.1 [ 4069s] 214 | __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, [ 4069s] | ^~~~~~~~~~~~~ [ 4069s] [111/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/CompressibleString.cpp.o [ 4069s] [112/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ExecutionState.cpp.o [ 4069s] [113/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 4069s] [114/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 4069s] [115/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 4069s] [116/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 4069s] [117/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 4069s] [118/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 4069s] [119/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Context.cpp.o [ 4069s] [120/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 4069s] [121/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 4069s] [122/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/interpreter/ByteCodeInterpreter.cpp.o [ 4069s] [123/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 4070s] [124/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/debugger/DebuggerSha1.cpp.o [ 4070s] [125/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/DateObject.cpp.o [ 4070s] [126/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ErrorObject.cpp.o [ 4070s] [127/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 4070s] [128/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ExecutionPauser.cpp.o [ 4071s] [129/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/api/EscargotPublic.cpp.o [ 4071s] [130/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 4071s] [131/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 4071s] [132/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 4071s] [133/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/EnvironmentRecord.cpp.o [ 4072s] [134/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 4072s] [135/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 4072s] [136/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 4072s] [137/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 4072s] [138/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 4072s] [139/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 4073s] [140/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 4073s] [141/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 4073s] [142/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinArray.cpp.o [ 4073s] [143/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 4073s] [144/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 4074s] [145/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 4074s] [146/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 4074s] [147/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 4075s] [148/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 4075s] [149/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 4075s] [150/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 4075s] [151/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 4075s] [152/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 4075s] [153/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 4075s] [154/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 4076s] [155/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 4076s] [156/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 4076s] [157/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 4076s] [158/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 4076s] [159/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 4076s] [160/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 4077s] [161/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 4077s] [162/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 4077s] [163/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 4077s] [164/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 4078s] [165/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 4078s] [166/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 4078s] [167/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 4078s] [168/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 4078s] [169/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 4078s] [170/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 4079s] [171/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 4079s] [172/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 4079s] [173/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 4080s] [174/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 4080s] [175/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 4080s] [176/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 4080s] [177/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 4080s] [178/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 4080s] [179/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 4081s] [180/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 4081s] [181/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 4081s] [182/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 4081s] [183/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 4081s] [184/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 4082s] [185/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 4082s] [186/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 4083s] [187/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 4083s] [188/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 4083s] [189/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 4083s] [190/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 4083s] [191/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 4083s] [192/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 4083s] [193/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 4083s] [194/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 4084s] [195/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 4084s] [196/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 4084s] [197/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 4084s] [198/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 4084s] [199/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 4084s] [200/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 4085s] [201/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 4085s] [202/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 4085s] [203/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 4086s] [204/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 4086s] [205/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 4086s] [206/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 4086s] [207/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 4086s] [208/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 4086s] [209/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 4087s] [210/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 4087s] [211/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 4087s] [212/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 4087s] [213/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 4087s] [214/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 4088s] [215/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 4088s] [216/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 4088s] [217/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 4088s] [218/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 4088s] [219/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 4089s] [220/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 4089s] [221/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 4089s] [222/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 4089s] [223/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 4089s] [224/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 4090s] [225/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 4090s] [226/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/parser/esprima_cpp/esprima.cpp.o [ 4090s] [227/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 4091s] [228/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 4091s] [229/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 4091s] [230/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 4092s] [231/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 4092s] [232/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 4092s] [233/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 4093s] [234/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 4093s] [235/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 4093s] [236/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 4093s] [237/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 4093s] [238/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 4093s] [239/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 4093s] [240/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 4094s] [241/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 4094s] [242/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 4094s] [243/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 4094s] [244/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 4094s] [245/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 4095s] [246/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 4095s] [247/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 4095s] [248/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 4095s] [249/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 4096s] [250/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 4096s] [251/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 4096s] [252/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 4097s] [253/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 4097s] [254/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 4098s] [255/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 4098s] [256/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 4098s] [257/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 4098s] [258/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 4098s] [259/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 4099s] [260/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 4099s] [261/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 4099s] [262/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 4099s] [263/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 4099s] [264/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 4100s] [265/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 4100s] [266/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 4100s] [267/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 4100s] [268/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 4101s] [269/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 4101s] [270/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 4101s] [271/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 4102s] [272/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 4102s] [273/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 4102s] [274/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 4103s] [275/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 4103s] [276/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 4103s] [277/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 4103s] [278/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 4103s] [279/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 4103s] [280/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 4104s] [281/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 4104s] [282/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 4104s] [283/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 4104s] [284/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 4104s] [285/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 4105s] [286/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 4105s] [287/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 4105s] [288/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 4105s] [289/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 4106s] [290/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 4106s] [291/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 4107s] [292/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 4107s] [293/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 4107s] [294/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 4107s] [295/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 4107s] [296/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 4107s] [297/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 4107s] [298/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 4107s] [299/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 4108s] [300/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 4108s] [301/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 4108s] [302/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 4108s] [303/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 4108s] [304/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 4108s] [305/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 4108s] [306/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 4108s] [307/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 4108s] [308/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 4108s] [309/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 4108s] [310/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 4108s] [311/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 4108s] [312/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 4108s] [313/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 4108s] [314/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 4108s] [315/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 4108s] [316/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 4109s] [317/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 4109s] [318/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 4110s] [319/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 4110s] [320/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 4110s] [321/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 4110s] [322/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 4110s] [323/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 4110s] [324/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 4110s] [325/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 4110s] [326/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 4111s] [327/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 4111s] [328/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 4111s] [329/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 4111s] [330/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 4111s] [331/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 4111s] [332/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 4111s] [333/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 4111s] [334/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 4111s] [335/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 4111s] [336/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 4111s] [337/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 4111s] [338/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 4111s] [339/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 4111s] [340/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 4111s] [341/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 4111s] [342/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 4111s] [343/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 4111s] [344/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 4111s] [345/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 4111s] [346/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 4111s] [347/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 4111s] [348/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 4111s] [349/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 4111s] [350/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 4111s] [351/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 4111s] [352/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 4111s] [353/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 4111s] [354/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 4111s] [355/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 4111s] [356/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 4111s] [357/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 4111s] [358/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 4111s] [359/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 4111s] [360/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 4111s] [361/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 4111s] [362/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 4111s] [363/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 4111s] [364/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 4111s] [365/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 4111s] [366/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 4111s] [367/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 4112s] [368/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 4112s] [369/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 4112s] [370/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 4112s] [371/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 4112s] [372/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 4112s] [373/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 4112s] [374/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 4113s] [375/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 4114s] [376/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 4114s] [377/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 4114s] [378/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 4114s] [379/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 4114s] [380/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 4114s] [381/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 4114s] [382/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 4114s] [383/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 4115s] [384/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 4115s] [385/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 4115s] [386/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 4115s] [387/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 4115s] [388/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 4115s] [389/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 4115s] [390/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 4116s] [391/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 4116s] [392/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 4117s] [393/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 4117s] [394/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 4117s] [395/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 4117s] [396/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 4117s] [397/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 4118s] [398/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 4119s] [399/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 4119s] [400/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 4119s] [401/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 4119s] [402/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 4120s] [403/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 4120s] [404/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 4120s] [405/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 4120s] [406/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 4120s] [407/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 4120s] [408/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 4120s] [409/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 4121s] [410/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 4121s] [411/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 4121s] [412/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 4121s] [413/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 4121s] [414/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 4122s] [415/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 4122s] [416/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 4122s] [417/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 4122s] [418/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 4122s] [419/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 4122s] [420/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 4122s] [421/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 4122s] [422/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 4122s] [423/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 4122s] [424/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 4122s] [425/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 4122s] [426/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 4122s] [427/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 4122s] [428/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 4122s] [429/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 4122s] [430/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 4122s] [431/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 4122s] [432/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 4122s] [433/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 4123s] [434/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 4123s] [435/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 4123s] [436/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 4123s] [437/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 4123s] [438/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 4124s] [439/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 4124s] [440/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 4124s] [441/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 4124s] [442/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 4125s] [443/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 4125s] [444/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 4125s] [445/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 4125s] [446/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 4125s] [447/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 4125s] [448/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 4125s] [449/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 4125s] [450/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 4126s] [451/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 4126s] [452/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 4126s] [453/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 4126s] [454/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 4126s] [455/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 4126s] [456/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 4126s] [457/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 4126s] [458/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 4126s] [459/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 4126s] [460/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 4126s] [461/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 4127s] [462/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 4127s] [463/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 4127s] [464/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 4127s] [465/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 4127s] [466/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 4127s] [467/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 4127s] [468/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 4128s] [469/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 4129s] [470/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 4129s] [471/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 4129s] [472/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 4129s] [473/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 4129s] [474/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 4129s] [475/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 4130s] [476/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 4130s] [477/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 4130s] [478/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 4130s] [479/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 4130s] [480/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 4131s] [481/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 4131s] [482/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 4131s] [483/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 4131s] [484/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 4131s] [485/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 4132s] [486/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 4132s] [487/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 4133s] [488/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 4133s] [489/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 4133s] [490/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 4133s] [491/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 4133s] [492/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 4133s] [493/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 4133s] [494/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 4134s] [495/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 4134s] [496/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 4135s] [497/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 4135s] [498/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 4135s] [499/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 4135s] [500/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 4135s] [501/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 4135s] [502/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 4135s] [503/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 4136s] [504/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 4136s] [505/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 4136s] [506/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 4136s] [507/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 4137s] [508/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 4137s] [509/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 4137s] [510/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 4137s] [511/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 4137s] [512/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 4138s] [513/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 4138s] [514/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 4138s] [515/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 4139s] [516/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 4139s] [517/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 4140s] [518/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 4140s] [519/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 4140s] [520/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 4141s] [521/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 4141s] [522/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 4141s] [523/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 4141s] [524/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 4142s] [525/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 4142s] [526/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 4142s] [527/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 4142s] [528/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 4143s] [529/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 4143s] [530/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 4144s] [531/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 4144s] [532/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 4144s] [533/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 4144s] [534/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 4144s] [535/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 4145s] [536/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 4145s] [537/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 4146s] [538/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 4146s] [539/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 4147s] [540/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 4147s] [541/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 4147s] [542/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 4147s] [543/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 4147s] [544/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 4147s] [545/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 4148s] [546/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 4148s] [547/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 4148s] [548/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 4148s] [549/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 4149s] [550/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 4149s] [551/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 4149s] [552/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 4149s] [553/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 4149s] [554/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 4149s] [555/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 4150s] [556/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 4150s] [557/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 4151s] [558/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 4152s] [559/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 4152s] [560/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 4152s] [561/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 4152s] [562/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 4152s] [563/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 4152s] [564/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 4153s] [565/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 4153s] [566/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 4153s] [567/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 4153s] [568/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 4153s] [569/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 4154s] [570/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 4154s] [571/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 4154s] [572/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 4154s] [573/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 4154s] [574/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 4154s] [575/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 4154s] [576/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 4155s] [577/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 4155s] [578/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 4155s] [579/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 4155s] [580/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 4155s] [581/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 4155s] [582/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 4155s] [583/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 4155s] [584/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 4156s] [585/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 4156s] [586/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 4157s] [587/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 4158s] [588/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 4158s] [589/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 4158s] [590/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 4158s] [591/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 4158s] [592/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 4158s] [593/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 4158s] [594/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 4158s] [595/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 4159s] [596/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 4159s] [597/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 4159s] [598/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 4159s] [599/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 4159s] [600/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 4159s] [601/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 4159s] [602/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 4159s] [603/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 4159s] [604/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 4159s] [605/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 4159s] [606/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 4159s] [607/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 4159s] [608/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 4160s] [609/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 4160s] [610/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 4160s] [611/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 4160s] [612/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 4161s] [613/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 4161s] [614/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 4161s] [615/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 4161s] [616/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 4161s] [617/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 4162s] [618/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 4162s] [619/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 4162s] [620/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 4162s] [621/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 4162s] [622/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 4162s] [623/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 4163s] [624/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 4164s] [625/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 4164s] [626/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 4164s] [627/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 4164s] [628/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 4165s] [629/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 4165s] [630/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 4165s] [631/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 4166s] [632/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 4166s] [633/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 4166s] [634/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 4166s] [635/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 4166s] [636/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 4166s] [637/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 4166s] [638/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 4167s] [639/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 4167s] [640/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 4167s] [641/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 4167s] [642/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 4168s] [643/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 4168s] [644/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 4169s] [645/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 4169s] [646/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 4169s] [647/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 4169s] [648/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 4169s] [649/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 4169s] [650/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 4170s] [651/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 4170s] [652/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 4170s] [653/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 4170s] [654/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 4170s] [655/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 4171s] [656/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 4171s] [657/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 4171s] [658/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 4171s] [659/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 4171s] [660/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 4171s] [661/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 4171s] [662/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 4171s] [663/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 4171s] [664/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 4172s] [665/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 4172s] [666/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 4172s] [667/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 4172s] [668/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 4172s] [669/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 4172s] [670/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 4173s] [671/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 4173s] [672/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 4177s] [673/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 4177s] [674/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 4177s] [675/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 4178s] [676/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 4178s] [677/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 4178s] [678/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 4178s] [679/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 4179s] [680/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 4179s] [681/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 4179s] [682/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 4179s] [683/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 4179s] [684/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 4180s] [685/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 4180s] [686/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 4180s] [687/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 4181s] [688/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 4182s] [689/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 4184s] [690/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 4184s] [691/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 4184s] [692/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 4184s] [693/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 4185s] [694/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 4185s] [695/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 4185s] [696/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 4185s] [697/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 4185s] [698/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 4186s] [699/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 4186s] [700/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 4187s] [701/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 4187s] [702/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 4187s] [703/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 4188s] [704/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 4188s] [705/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 4189s] [706/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 4189s] [707/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 4189s] [708/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 4190s] [709/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 4190s] [710/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 4190s] [711/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 4190s] [712/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 4190s] [713/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 4190s] [714/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 4190s] [715/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 4190s] [716/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 4191s] [717/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 4191s] [718/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 4191s] [719/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 4191s] [720/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 4191s] [721/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 4191s] [722/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 4191s] [723/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 4191s] [724/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 4192s] [725/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 4192s] [726/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 4192s] [727/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 4192s] [728/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 4192s] [729/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 4192s] [730/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 4192s] [731/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 4192s] [732/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 4192s] [733/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 4192s] [734/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 4192s] [735/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 4192s] [736/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 4192s] [737/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 4192s] [738/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 4192s] [739/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 4192s] [740/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 4192s] [741/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 4192s] [742/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 4192s] [743/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 4192s] [744/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 4192s] [745/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 4192s] [746/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 4192s] [747/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 4192s] [748/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 4192s] [749/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 4192s] [750/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 4192s] [751/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 4192s] [752/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 4192s] [753/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 4192s] [754/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 4192s] [755/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 4192s] [756/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 4192s] [757/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 4192s] [758/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 4193s] [759/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 4193s] [760/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 4193s] [761/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 4193s] [762/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 4193s] [763/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 4193s] [764/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 4193s] [765/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 4193s] [766/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 4193s] [767/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 4193s] [768/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 4194s] [769/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 4194s] [770/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 4195s] [771/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 4195s] [772/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 4195s] [773/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 4195s] [774/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 4195s] [775/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 4195s] [776/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 4195s] [777/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 4195s] [778/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 4195s] [779/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 4195s] [780/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 4195s] [781/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 4195s] [782/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 4195s] [783/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 4195s] [784/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 4195s] [785/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 4195s] [786/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 4195s] [787/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 4195s] [788/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 4195s] [789/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 4195s] [790/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 4195s] [791/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 4195s] [792/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 4195s] [793/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 4195s] [794/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 4196s] [795/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 4196s] [796/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 4196s] [797/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 4196s] [798/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 4196s] [799/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 4196s] [800/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 4196s] [801/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 4196s] [802/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 4196s] [803/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 4196s] [804/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 4196s] [805/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 4196s] [806/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 4196s] [807/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 4196s] [808/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 4196s] [809/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 4196s] [810/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 4196s] [811/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 4196s] [812/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 4197s] [813/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 4197s] [814/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 4197s] [815/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 4197s] [816/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 4197s] [817/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 4198s] [818/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 4198s] [819/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 4198s] [820/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 4198s] [821/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 4199s] [822/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 4199s] [823/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 4199s] [824/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 4200s] [825/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 4200s] [826/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 4201s] [827/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 4201s] [828/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 4201s] [829/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 4201s] [830/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 4201s] [831/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 4202s] [832/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 4202s] [833/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 4202s] [834/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 4202s] [835/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 4202s] [836/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 4202s] [837/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 4203s] [838/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 4203s] [839/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 4204s] [840/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 4205s] [841/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 4205s] [842/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 4205s] [843/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 4205s] [844/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 4206s] [845/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 4206s] [846/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 4206s] [847/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 4206s] [848/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 4206s] [849/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 4207s] [850/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 4207s] [851/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 4207s] [852/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 4208s] [853/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 4208s] [854/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 4208s] [855/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 4208s] [856/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 4209s] [857/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 4209s] [858/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 4209s] [859/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 4209s] [860/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 4210s] [861/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 4210s] [862/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 4210s] [863/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 4211s] [864/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 4211s] [865/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 4211s] [866/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 4212s] [867/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 4212s] [868/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 4212s] [869/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 4212s] [870/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 4212s] [871/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 4212s] [872/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 4212s] [873/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 4213s] [874/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 4213s] [875/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 4213s] [876/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 4213s] [877/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 4213s] [878/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 4213s] [879/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 4213s] [880/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 4213s] [881/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 4214s] [882/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 4214s] [883/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 4214s] [884/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 4215s] [885/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 4215s] [886/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 4215s] [887/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 4215s] [888/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 4215s] [889/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 4215s] [890/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 4215s] [891/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 4216s] [892/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 4216s] [893/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 4216s] [894/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 4216s] [895/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 4216s] [896/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 4216s] [897/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 4216s] [898/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 4217s] [899/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 4217s] [900/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 4218s] [901/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 4218s] [902/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 4218s] [903/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 4218s] [904/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 4218s] [905/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 4219s] [906/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 4219s] [907/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 4219s] [908/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 4219s] [909/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 4219s] [910/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 4219s] [911/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 4219s] [912/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 4219s] [913/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 4220s] [914/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 4220s] [915/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 4221s] [916/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 4221s] [917/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 4221s] [918/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 4221s] [919/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 4221s] [920/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 4221s] [921/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 4221s] [922/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 4222s] [923/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 4222s] [924/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 4222s] [925/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 4222s] [926/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 4222s] [927/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 4222s] [928/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 4222s] [929/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 4222s] [930/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 4222s] [931/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 4222s] [932/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 4223s] [933/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 4223s] [934/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 4223s] [935/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 4223s] [936/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 4223s] [937/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 4223s] [938/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 4223s] [939/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 4223s] [940/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 4223s] [941/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 4224s] [942/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 4224s] [943/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 4224s] [944/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 4224s] [945/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 4224s] [946/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 4224s] [947/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 4224s] [948/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 4224s] [949/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 4224s] [950/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 4224s] [951/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 4224s] [952/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 4224s] [953/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 4225s] [954/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 4225s] [955/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 4225s] [956/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 4225s] [957/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 4225s] [958/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 4226s] [959/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 4226s] [960/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 4226s] [961/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 4226s] [962/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 4226s] [963/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 4226s] [964/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 4226s] [965/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 4226s] [966/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 4227s] [967/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 4227s] [968/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 4227s] [969/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 4227s] [970/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 4227s] [971/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 4227s] [972/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 4227s] [973/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 4227s] [974/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 4228s] [975/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 4228s] [976/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 4228s] [977/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 4229s] [978/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 4229s] [979/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 4229s] [980/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 4229s] [981/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 4229s] [982/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 4230s] [983/1121] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 4230s] [984/1121] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 4230s] [985/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GeneratorObject.cpp.o [ 4231s] [986/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/FunctionObject.cpp.o [ 4231s] [987/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 4231s] [988/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 4231s] [989/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncFunction.cpp.o [ 4231s] [990/1121] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 4231s] [991/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncFromSyncIterator.cpp.o [ 4232s] [992/1121] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 4232s] [993/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncGeneratorFunction.cpp.o [ 4232s] [994/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinBoolean.cpp.o [ 4232s] [995/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinAsyncIterator.cpp.o [ 4232s] [996/1121] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 4232s] [997/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObject.cpp.o [ 4233s] [998/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinDataView.cpp.o [ 4233s] [999/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinIterator.cpp.o [ 4233s] [1000/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinFunction.cpp.o [ 4234s] [1001/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinGeneratorFunction.cpp.o [ 4234s] [1002/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinError.cpp.o [ 4234s] [1003/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinSet.cpp.o [ 4234s] [1004/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinDate.cpp.o [ 4234s] [1005/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinProxy.cpp.o [ 4234s] [1006/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinNumber.cpp.o [ 4235s] [1007/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinIntl.cpp.o [ 4235s] [1008/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinReflect.cpp.o [ 4235s] [1009/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinPromise.cpp.o [ 4235s] [1010/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinWeakSet.cpp.o [ 4235s] [1011/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinSymbol.cpp.o [ 4235s] [1012/1121] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 4236s] [1013/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinObject.cpp.o [ 4236s] [1014/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinWeakMap.cpp.o [ 4236s] [1015/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectProxyObject.cpp.o [ 4236s] [1016/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IEEE754.cpp.o [ 4237s] third_party/escargot/src/runtime/IEEE754.cpp: In function 'double Escargot::ieee754::ceil(double)': [ 4237s] third_party/escargot/src/runtime/IEEE754.cpp:86:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] [ 4237s] 86 | #define __LO(x) *(int *)&x [ 4237s] | ^~~~~~~~~ [ 4237s] 87 | #define __HIp(x) *(1 + (int *)x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 88 | #define __LOp(x) *(int *)x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 89 | [ 4237s] | [ 4237s] 90 | #else [ 4237s] | ~~~~~ [ 4237s] 91 | [ 4237s] | [ 4237s] 92 | typedef union { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 93 | double value; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 94 | struct { [ 4237s] | ~~~~~~~~ [ 4237s] 95 | uint32_t msw; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 96 | uint32_t lsw; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 97 | } parts; [ 4237s] | ~~~~~~~~ [ 4237s] 98 | struct { [ 4237s] | ~~~~~~~~ [ 4237s] 99 | uint64_t w; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 100 | } xparts; [ 4237s] | ~~~~~~~~~ [ 4237s] 101 | } ieee_double_shape_type; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 102 | [ 4237s] | [ 4237s] 103 | #define __HI(x) *(int *)&x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 104 | #define __LO(x) *(1 + (int *)&x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 105 | #define __HIp(x) *(int *)x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 106 | #define __LOp(x) *(1 + (int *)x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 107 | [ 4237s] | [ 4237s] 108 | #endif [ 4237s] | ~~~~~~ [ 4237s] 109 | [ 4237s] | [ 4237s] 110 | /* Get two 32 bit ints from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 111 | [ 4237s] | [ 4237s] 112 | #define EXTRACT_WORDS(ix0, ix1, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 113 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 114 | ieee_double_shape_type ew_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 115 | ew_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 116 | (ix0) = ew_u.parts.msw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 117 | (ix1) = ew_u.parts.lsw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 118 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 119 | [ 4237s] | [ 4237s] 120 | /* Get a 64-bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 121 | #define EXTRACT_WORD64(ix, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 122 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 123 | ieee_double_shape_type ew_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 124 | ew_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 125 | (ix) = ew_u.xparts.w; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 126 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 127 | [ 4237s] | [ 4237s] 128 | /* Get the more significant 32 bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 129 | [ 4237s] | [ 4237s] 130 | #define GET_HIGH_WORD(i, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 131 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 132 | ieee_double_shape_type gh_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 133 | gh_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 134 | (i) = gh_u.parts.msw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 135 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 136 | [ 4237s] | [ 4237s] 137 | /* Get the less significant 32 bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 138 | [ 4237s] | [ 4237s] 139 | #define GET_LOW_WORD(i, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 140 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 141 | ieee_double_shape_type gl_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 142 | gl_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 143 | (i) = gl_u.parts.lsw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 144 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 145 | [ 4237s] | [ 4237s] 146 | /* Set a double from two 32 bit ints. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 147 | [ 4237s] | [ 4237s] 148 | #define INSERT_WORDS(d, ix0, ix1) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 149 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 150 | ieee_double_shape_type iw_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 151 | iw_u.parts.msw = (ix0); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 152 | iw_u.parts.lsw = (ix1); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 153 | (d) = iw_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 154 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 155 | [ 4237s] | [ 4237s] 156 | /* Set a double from a 64-bit int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 157 | #define INSERT_WORD64(d, ix) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 158 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 159 | ieee_double_shape_type iw_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 160 | iw_u.xparts.w = (ix); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 161 | (d) = iw_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 162 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 163 | [ 4237s] | [ 4237s] 164 | /* Set the more significant 32 bits of a double from an int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 165 | [ 4237s] | [ 4237s] 166 | #define SET_HIGH_WORD(d, v) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 167 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 168 | ieee_double_shape_type sh_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 169 | sh_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 170 | sh_u.parts.msw = (v); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 171 | (d) = sh_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 172 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 173 | [ 4237s] | [ 4237s] 174 | /* Set the less significant 32 bits of a double from an int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 175 | [ 4237s] | [ 4237s] 176 | #define SET_LOW_WORD(d, v) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 177 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 178 | ieee_double_shape_type sl_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 179 | sl_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 180 | sl_u.parts.lsw = (v); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 181 | (d) = sl_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 182 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 183 | [ 4237s] | [ 4237s] 184 | /* Support macro. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 185 | [ 4237s] | [ 4237s] 186 | #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 187 | [ 4237s] | [ 4237s] 188 | int32_t __ieee754_rem_pio2(double x, double *y) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 189 | double __kernel_cos(double x, double y) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 190 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 191 | const int32_t *ipio2) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 192 | double __kernel_sin(double x, double y, int iy) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 193 | [ 4237s] | [ 4237s] 194 | /* __ieee754_rem_pio2(x,y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 195 | * [ 4237s] | ~ [ 4237s] 196 | * return the remainder of x rem pi/2 in y[0]+y[1] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 197 | * use __kernel_rem_pio2() [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 198 | */ [ 4237s] | ~~ [ 4237s] 199 | int32_t __ieee754_rem_pio2(double x, double *y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 200 | { [ 4237s] | ~ [ 4237s] 201 | /* [ 4237s] | ~~ [ 4237s] 202 | * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 203 | */ [ 4237s] | ~~ [ 4237s] 204 | constexpr int32_t two_over_pi[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 205 | 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 206 | 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 207 | 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 208 | 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 209 | 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 210 | 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 211 | 0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 212 | 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 213 | 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 214 | 0x73A8C9, 0x60E27B, 0xC08C6B, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 215 | }; [ 4237s] | ~~ [ 4237s] 216 | [ 4237s] | [ 4237s] 217 | constexpr int32_t npio2_hw[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 218 | 0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 219 | 0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 220 | 0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 221 | 0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 222 | 0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 223 | 0x404858EB, 0x404921FB, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 224 | }; [ 4237s] | ~~ [ 4237s] 225 | [ 4237s] | [ 4237s] 226 | /* [ 4237s] | ~~ [ 4237s] 227 | * invpio2: 53 bits of 2/pi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 228 | * pio2_1: first 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 229 | * pio2_1t: pi/2 - pio2_1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 230 | * pio2_2: second 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 231 | * pio2_2t: pi/2 - (pio2_1+pio2_2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 232 | * pio2_3: third 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 233 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 234 | */ [ 4237s] | ~~ [ 4237s] 235 | [ 4237s] | [ 4237s] 236 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 237 | zero [ 4237s] | ~~~~ [ 4237s] 238 | = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 239 | half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 240 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 241 | invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 242 | pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 243 | pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 244 | pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 245 | pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 246 | pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 247 | pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 248 | [ 4237s] | [ 4237s] 249 | double z, w, t, r, fn; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 250 | double tx[3]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 251 | int32_t e0, i, j, nx, n, ix, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 252 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 253 | [ 4237s] | [ 4237s] 254 | z = 0; [ 4237s] | ~~~~~~ [ 4237s] 255 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 256 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 257 | if (ix <= 0x3FE921FB) { /* |x| ~<= pi/4 , no need for reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 258 | y[0] = x; [ 4237s] | ~~~~~~~~~ [ 4237s] 259 | y[1] = 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 260 | return 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 261 | } [ 4237s] | ~ [ 4237s] 262 | if (ix < 0x4002D97C) { /* |x| < 3pi/4, special case with n=+-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 263 | if (hx > 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 264 | z = x - pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 265 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 266 | y[0] = z - pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 267 | y[1] = (z - y[0]) - pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 268 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 269 | z -= pio2_2; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 270 | y[0] = z - pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 271 | y[1] = (z - y[0]) - pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 272 | } [ 4237s] | ~ [ 4237s] 273 | return 1; [ 4237s] | ~~~~~~~~~ [ 4237s] 274 | } else { /* negative x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 275 | z = x + pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 276 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 277 | y[0] = z + pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 278 | y[1] = (z - y[0]) + pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 279 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 280 | z += pio2_2; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 281 | y[0] = z + pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 282 | y[1] = (z - y[0]) + pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 283 | } [ 4237s] | ~ [ 4237s] 284 | return -1; [ 4237s] | ~~~~~~~~~~ [ 4237s] 285 | } [ 4237s] | ~ [ 4237s] 286 | } [ 4237s] | ~ [ 4237s] 287 | if (ix <= 0x413921FB) { /* |x| ~<= 2^19*(pi/2), medium size */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 288 | t = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 289 | n = static_cast(t * invpio2 + half); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 290 | fn = static_cast(n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 291 | r = t - fn * pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 292 | w = fn * pio2_1t; /* 1st round good to 85 bit */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 293 | if (n < 32 && ix != npio2_hw[n - 1]) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 294 | y[0] = r - w; /* quick check no cancellation */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 295 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 296 | uint32_t high; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 297 | j = ix >> 20; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 298 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 299 | GET_HIGH_WORD(high, y[0]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 300 | i = j - ((high >> 20) & 0x7FF); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 301 | if (i > 16) { /* 2nd iteration needed, good to 118 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 302 | t = r; [ 4237s] | ~~~~~~ [ 4237s] 303 | w = fn * pio2_2; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 304 | r = t - w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 305 | w = fn * pio2_2t - ((t - r) - w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 306 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 307 | GET_HIGH_WORD(high, y[0]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 308 | i = j - ((high >> 20) & 0x7FF); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 309 | if (i > 49) { /* 3rd iteration need, 151 bits acc */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 310 | t = r; /* will cover all possible cases */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 311 | w = fn * pio2_3; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 312 | r = t - w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 313 | w = fn * pio2_3t - ((t - r) - w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 314 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 315 | } [ 4237s] | ~ [ 4237s] 316 | } [ 4237s] | ~ [ 4237s] 317 | } [ 4237s] | ~ [ 4237s] 318 | y[1] = (r - y[0]) - w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 319 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 320 | y[0] = -y[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 321 | y[1] = -y[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 322 | return -n; [ 4237s] | ~~~~~~~~~~ [ 4237s] 323 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 324 | return n; [ 4237s] | ~~~~~~~~~ [ 4237s] 325 | } [ 4237s] | ~ [ 4237s] 326 | } [ 4237s] | ~ [ 4237s] 327 | /* [ 4237s] | ~~ [ 4237s] 328 | * all other (large) arguments [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 329 | */ [ 4237s] | ~~ [ 4237s] 330 | if (ix >= 0x7FF00000) { /* x is inf or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 331 | y[0] = y[1] = x - x; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 332 | return 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 333 | } [ 4237s] | ~ [ 4237s] 334 | /* set z = scalbn(|x|,ilogb(x)-23) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 335 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 336 | SET_LOW_WORD(z, low); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 337 | e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 338 | SET_HIGH_WORD(z, ix - static_cast(e0 << 20)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 339 | for (i = 0; i < 2; i++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 340 | tx[i] = static_cast(static_cast(z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 341 | z = (z - tx[i]) * two24; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 342 | } [ 4237s] | ~ [ 4237s] 343 | tx[2] = z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 344 | nx = 3; [ 4237s] | ~~~~~~~ [ 4237s] 345 | while (tx[nx - 1] == zero) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 346 | nx--; /* skip zero term */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 347 | n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 348 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 349 | y[0] = -y[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 350 | y[1] = -y[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 351 | return -n; [ 4237s] | ~~~~~~~~~~ [ 4237s] 352 | } [ 4237s] | ~ [ 4237s] 353 | return n; [ 4237s] | ~~~~~~~~~ [ 4237s] 354 | } [ 4237s] | ~ [ 4237s] 355 | [ 4237s] | [ 4237s] 356 | /* __kernel_cos( x, y ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 357 | * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 358 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 359 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 360 | * [ 4237s] | ~ [ 4237s] 361 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 362 | * 1. Since cos(-x) = cos(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 363 | * 2. if x < 2^-27 (hx<0x3E400000 0), return 1 with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 364 | * 3. cos(x) is approximated by a polynomial of degree 14 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 365 | * [0,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 366 | * 4 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 367 | * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 368 | * where the remez error is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 369 | * [ 4237s] | ~ [ 4237s] 370 | * | 2 4 6 8 10 12 14 | -58 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 371 | * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 372 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 373 | * [ 4237s] | ~ [ 4237s] 374 | * 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 375 | * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 376 | * cos(x) = 1 - x*x/2 + r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 377 | * since cos(x+y) ~ cos(x) - sin(x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 378 | * ~ cos(x) - x*y, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 379 | * a correction term is necessary in cos(x) and hence [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 380 | * cos(x+y) = 1 - (x*x/2 - (r - x*y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 381 | * For better accuracy when x > 0.3, let qx = |x|/4 with [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 382 | * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 383 | * Then [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 384 | * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 385 | * Note that 1-qx and (x*x/2-qx) is EXACT here, and the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 386 | * magnitude of the latter is at least a quarter of x*x/2, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 387 | * thus, reducing the rounding error in the subtraction. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 388 | */ [ 4237s] | ~~ [ 4237s] 389 | ALWAYS_INLINE double __kernel_cos(double x, double y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 390 | { [ 4237s] | ~ [ 4237s] 391 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 392 | one [ 4237s] | ~~~ [ 4237s] 393 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 394 | C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 395 | C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 396 | C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 397 | C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 398 | C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 399 | C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 400 | [ 4237s] | [ 4237s] 401 | double a, iz, z, r, qx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 402 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 403 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 404 | ix &= 0x7FFFFFFF; /* ix = |x|'s high word*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 405 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* if x < 2**27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 406 | return one; /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 407 | } [ 4237s] | ~ [ 4237s] 408 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 409 | r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 410 | if (ix < 0x3FD33333) { /* if |x| < 0.3 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 411 | return one - (0.5 * z - (z * r - x * y)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 412 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 413 | if (ix > 0x3FE90000) { /* x > 0.78125 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 414 | qx = 0.28125; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 415 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 416 | INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 417 | } [ 4237s] | ~ [ 4237s] 418 | iz = 0.5 * z - qx; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 419 | a = one - qx; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 420 | return a - (iz - (z * r - x * y)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 421 | } [ 4237s] | ~ [ 4237s] 422 | } [ 4237s] | ~ [ 4237s] 423 | [ 4237s] | [ 4237s] 424 | /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 425 | * double x[],y[]; int e0,nx,prec; int ipio2[]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 426 | * [ 4237s] | ~ [ 4237s] 427 | * __kernel_rem_pio2 return the last three digits of N with [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 428 | * y = x - N*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 429 | * so that |y| < pi/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 430 | * [ 4237s] | ~ [ 4237s] 431 | * The method is to compute the integer (mod 8) and fraction parts of [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 432 | * (2/pi)*x without doing the full multiplication. In general we [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 433 | * skip the part of the product that are known to be a huge integer ( [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 434 | * more accurately, = 0 mod 8 ). Thus the number of operations are [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 435 | * independent of the exponent of the input. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 436 | * [ 4237s] | ~ [ 4237s] 437 | * (2/pi) is represented by an array of 24-bit integers in ipio2[]. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 438 | * [ 4237s] | ~ [ 4237s] 439 | * Input parameters: [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 440 | * x[] The input value (must be positive) is broken into nx [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 441 | * pieces of 24-bit integers in double precision format. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 442 | * x[i] will be the i-th 24 bit of x. The scaled exponent [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 443 | * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 444 | * match x's up to 24 bits. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 445 | * [ 4237s] | ~ [ 4237s] 446 | * Example of breaking a double positive z into x[0]+x[1]+x[2]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 447 | * e0 = ilogb(z)-23 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 448 | * z = scalbn(z,-e0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 449 | * for i = 0,1,2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 450 | * x[i] = floor(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 451 | * z = (z-x[i])*2**24 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 452 | * [ 4237s] | ~ [ 4237s] 453 | * [ 4237s] | ~ [ 4237s] 454 | * y[] output result in an array of double precision numbers. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 455 | * The dimension of y[] is: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 456 | * 24-bit precision 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 457 | * 53-bit precision 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 458 | * 64-bit precision 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 459 | * 113-bit precision 3 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 460 | * The actual value is the sum of them. Thus for 113-bit [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 461 | * precison, one may have to do something like: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 462 | * [ 4237s] | ~ [ 4237s] 463 | * long double t,w,r_head, r_tail; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 464 | * t = (long double)y[2] + (long double)y[1]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 465 | * w = (long double)y[0]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 466 | * r_head = t+w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 467 | * r_tail = w - (r_head - t); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 468 | * [ 4237s] | ~ [ 4237s] 469 | * e0 The exponent of x[0] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 470 | * [ 4237s] | ~ [ 4237s] 471 | * nx dimension of x[] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 472 | * [ 4237s] | ~ [ 4237s] 473 | * prec an integer indicating the precision: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 474 | * 0 24 bits (single) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 475 | * 1 53 bits (double) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 476 | * 2 64 bits (extended) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 477 | * 3 113 bits (quad) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 478 | * [ 4237s] | ~ [ 4237s] 479 | * ipio2[] [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 480 | * integer array, contains the (24*i)-th to (24*i+23)-th [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 481 | * bit of 2/pi after binary point. The corresponding [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 482 | * floating value is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 483 | * [ 4237s] | ~ [ 4237s] 484 | * ipio2[i] * 2^(-24(i+1)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 485 | * [ 4237s] | ~ [ 4237s] 486 | * External function: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 487 | * double scalbn(), floor(); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 488 | * [ 4237s] | ~ [ 4237s] 489 | * [ 4237s] | ~ [ 4237s] 490 | * Here is the description of some local variables: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 491 | * [ 4237s] | ~ [ 4237s] 492 | * jk jk+1 is the initial number of terms of ipio2[] needed [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 493 | * in the computation. The recommended value is 2,3,4, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 494 | * 6 for single, double, extended,and quad. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 495 | * [ 4237s] | ~ [ 4237s] 496 | * jz local integer variable indicating the number of [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 497 | * terms of ipio2[] used. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 498 | * [ 4237s] | ~ [ 4237s] 499 | * jx nx - 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 500 | * [ 4237s] | ~ [ 4237s] 501 | * jv index for pointing to the suitable ipio2[] for the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 502 | * computation. In general, we want [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 503 | * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 504 | * is an integer. Thus [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 505 | * e0-3-24*jv >= 0 or (e0-3)/24 >= jv [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 506 | * Hence jv = max(0,(e0-3)/24). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 507 | * [ 4237s] | ~ [ 4237s] 508 | * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 509 | * [ 4237s] | ~ [ 4237s] 510 | * q[] double array with integral value, representing the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 511 | * 24-bits chunk of the product of x and 2/pi. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 512 | * [ 4237s] | ~ [ 4237s] 513 | * q0 the corresponding exponent of q[0]. Note that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 514 | * exponent for q[i] would be q0-24*i. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 515 | * [ 4237s] | ~ [ 4237s] 516 | * PIo2[] double precision array, obtained by cutting pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 517 | * into 24 bits chunks. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 518 | * [ 4237s] | ~ [ 4237s] 519 | * f[] ipio2[] in floating point [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 520 | * [ 4237s] | ~ [ 4237s] 521 | * iq[] integer array by breaking up q[] in 24-bits chunk. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 522 | * [ 4237s] | ~ [ 4237s] 523 | * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 524 | * [ 4237s] | ~ [ 4237s] 525 | * ih integer. If >0 it indicates q[] is >= 0.5, hence [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 526 | * it also indicates the *sign* of the result. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 527 | * [ 4237s] | ~ [ 4237s] 528 | */ [ 4237s] | ~~ [ 4237s] 529 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 530 | const int32_t *ipio2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 531 | { [ 4237s] | ~ [ 4237s] 532 | /* Constants: [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 533 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 534 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 535 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 536 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 537 | */ [ 4237s] | ~~ [ 4237s] 538 | constexpr int init_jk[] = { 2, 3, 4, 6 }; /* initial value for jk */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 539 | [ 4237s] | [ 4237s] 540 | constexpr double PIo2[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 541 | 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 542 | 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 543 | 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 544 | 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 545 | 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 546 | 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 547 | 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 548 | 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 549 | }; [ 4237s] | ~~ [ 4237s] 550 | [ 4237s] | [ 4237s] 551 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 552 | zero [ 4237s] | ~~~~ [ 4237s] 553 | = 0.0, [ 4237s] | ~~~~~~ [ 4237s] 554 | one = 1.0, [ 4237s] | ~~~~~~~~~~ [ 4237s] 555 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 556 | twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 557 | [ 4237s] | [ 4237s] 558 | int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 559 | double z, fw, f[20], fq[20], q[20]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 560 | [ 4237s] | [ 4237s] 561 | /* initialize jk*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 562 | jk = init_jk[prec]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 563 | jp = jk; [ 4237s] | ~~~~~~~~ [ 4237s] 564 | [ 4237s] | [ 4237s] 565 | /* determine jx,jv,q0, note that 3>q0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 566 | jx = nx - 1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 567 | jv = (e0 - 3) / 24; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 568 | if (jv < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 569 | jv = 0; [ 4237s] | ~~~~~~~ [ 4237s] 570 | q0 = e0 - 24 * (jv + 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 571 | [ 4237s] | [ 4237s] 572 | /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 573 | j = jv - jx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 574 | m = jx + jk; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 575 | for (i = 0; i <= m; i++, j++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 576 | f[i] = (j < 0) ? zero : static_cast(ipio2[j]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 577 | } [ 4237s] | ~ [ 4237s] 578 | [ 4237s] | [ 4237s] 579 | /* compute q[0],q[1],...q[jk] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 580 | for (i = 0; i <= jk; i++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 581 | for (j = 0, fw = 0.0; j <= jx; j++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 582 | fw += x[j] * f[jx + i - j]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 583 | q[i] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 584 | } [ 4237s] | ~ [ 4237s] 585 | [ 4237s] | [ 4237s] 586 | jz = jk; [ 4237s] | ~~~~~~~~ [ 4237s] 587 | recompute: [ 4237s] | ~~~~~~~~~~ [ 4237s] 588 | /* distill q[] into iq[] reversingly */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 589 | for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 590 | fw = static_cast(static_cast(twon24 * z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 591 | iq[i] = static_cast(z - two24 * fw); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 592 | z = q[j - 1] + fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 593 | } [ 4237s] | ~ [ 4237s] 594 | [ 4237s] | [ 4237s] 595 | /* compute n */ [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 596 | z = scalbn(z, q0); /* actual value of z */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 597 | z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 598 | n = static_cast(z); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 599 | z -= static_cast(n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 600 | ih = 0; [ 4237s] | ~~~~~~~ [ 4237s] 601 | if (q0 > 0) { /* need iq[jz-1] to determine n */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 602 | i = (iq[jz - 1] >> (24 - q0)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 603 | n += i; [ 4237s] | ~~~~~~~ [ 4237s] 604 | iq[jz - 1] -= i << (24 - q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 605 | ih = iq[jz - 1] >> (23 - q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 606 | } else if (q0 == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 607 | ih = iq[jz - 1] >> 23; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 608 | } else if (z >= 0.5) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 609 | ih = 2; [ 4237s] | ~~~~~~~ [ 4237s] 610 | } [ 4237s] | ~ [ 4237s] 611 | [ 4237s] | [ 4237s] 612 | if (ih > 0) { /* q > 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 613 | n += 1; [ 4237s] | ~~~~~~~ [ 4237s] 614 | carry = 0; [ 4237s] | ~~~~~~~~~~ [ 4237s] 615 | for (i = 0; i < jz; i++) { /* compute 1-q */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 616 | j = iq[i]; [ 4237s] | ~~~~~~~~~~ [ 4237s] 617 | if (carry == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 618 | if (j != 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 619 | carry = 1; [ 4237s] | ~~~~~~~~~~ [ 4237s] 620 | iq[i] = 0x1000000 - j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 621 | } [ 4237s] | ~ [ 4237s] 622 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 623 | iq[i] = 0xFFFFFF - j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 624 | } [ 4237s] | ~ [ 4237s] 625 | } [ 4237s] | ~ [ 4237s] 626 | if (q0 > 0) { /* rare case: chance is 1 in 12 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 627 | switch (q0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 628 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 629 | iq[jz - 1] &= 0x7FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 630 | break; [ 4237s] | ~~~~~~ [ 4237s] 631 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 632 | iq[jz - 1] &= 0x3FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 633 | break; [ 4237s] | ~~~~~~ [ 4237s] 634 | } [ 4237s] | ~ [ 4237s] 635 | } [ 4237s] | ~ [ 4237s] 636 | if (ih == 2) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 637 | z = one - z; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 638 | if (carry != 0) [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 639 | z -= scalbn(one, q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 640 | } [ 4237s] | ~ [ 4237s] 641 | } [ 4237s] | ~ [ 4237s] 642 | [ 4237s] | [ 4237s] 643 | /* check if recomputation is needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 644 | if (z == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 645 | j = 0; [ 4237s] | ~~~~~~ [ 4237s] 646 | for (i = jz - 1; i >= jk; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 647 | j |= iq[i]; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 648 | if (j == 0) { /* need recomputation */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 649 | for (k = 1; jk >= k && iq[jk - k] == 0; k++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 650 | /* k = no. of terms needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 651 | } [ 4237s] | ~ [ 4237s] 652 | [ 4237s] | [ 4237s] 653 | for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 654 | f[jx + i] = ipio2[jv + i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 655 | for (j = 0, fw = 0.0; j <= jx; j++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 656 | fw += x[j] * f[jx + i - j]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 657 | q[i] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 658 | } [ 4237s] | ~ [ 4237s] 659 | jz += k; [ 4237s] | ~~~~~~~~ [ 4237s] 660 | goto recompute; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 661 | } [ 4237s] | ~ [ 4237s] 662 | } [ 4237s] | ~ [ 4237s] 663 | [ 4237s] | [ 4237s] 664 | /* chop off zero terms */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 665 | if (z == 0.0) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 666 | jz -= 1; [ 4237s] | ~~~~~~~~ [ 4237s] 667 | q0 -= 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 668 | while (iq[jz] == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 669 | jz--; [ 4237s] | ~~~~~ [ 4237s] 670 | q0 -= 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 671 | } [ 4237s] | ~ [ 4237s] 672 | } else { /* break z into 24-bit if necessary */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 673 | z = scalbn(z, -q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 674 | if (z >= two24) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 675 | fw = static_cast(static_cast(twon24 * z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 676 | iq[jz] = z - two24 * fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 677 | jz += 1; [ 4237s] | ~~~~~~~~ [ 4237s] 678 | q0 += 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 679 | iq[jz] = fw; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 680 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 681 | iq[jz] = z; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 682 | } [ 4237s] | ~ [ 4237s] 683 | } [ 4237s] | ~ [ 4237s] 684 | [ 4237s] | [ 4237s] 685 | /* convert integer "bit" chunk to floating-point value */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 686 | fw = scalbn(one, q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 687 | for (i = jz; i >= 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 688 | q[i] = fw * iq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 689 | fw *= twon24; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 690 | } [ 4237s] | ~ [ 4237s] 691 | [ 4237s] | [ 4237s] 692 | /* compute PIo2[0,...,jp]*q[jz,...,0] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 693 | for (i = jz; i >= 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 694 | for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 695 | fw += PIo2[k] * q[i + k]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 696 | fq[jz - i] = fw; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 697 | } [ 4237s] | ~ [ 4237s] 698 | [ 4237s] | [ 4237s] 699 | /* compress fq[] into y[] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 700 | switch (prec) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 701 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 702 | fw = 0.0; [ 4237s] | ~~~~~~~~~ [ 4237s] 703 | for (i = jz; i >= 0; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 704 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 705 | y[0] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 706 | break; [ 4237s] | ~~~~~~ [ 4237s] 707 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 708 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 709 | fw = 0.0; [ 4237s] | ~~~~~~~~~ [ 4237s] 710 | for (i = jz; i >= 0; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 711 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 712 | y[0] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 713 | fw = fq[0] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 714 | for (i = 1; i <= jz; i++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 715 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 716 | y[1] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 717 | break; [ 4237s] | ~~~~~~ [ 4237s] 718 | case 3: /* painful */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 719 | for (i = jz; i > 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 720 | fw = fq[i - 1] + fq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 721 | fq[i] += fq[i - 1] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 722 | fq[i - 1] = fw; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 723 | } [ 4237s] | ~ [ 4237s] 724 | for (i = jz; i > 1; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 725 | fw = fq[i - 1] + fq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 726 | fq[i] += fq[i - 1] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 727 | fq[i - 1] = fw; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 728 | } [ 4237s] | ~ [ 4237s] 729 | for (fw = 0.0, i = jz; i >= 2; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 730 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 731 | if (ih == 0) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 732 | y[0] = fq[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 733 | y[1] = fq[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 734 | y[2] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 735 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 736 | y[0] = -fq[0]; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 737 | y[1] = -fq[1]; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 738 | y[2] = -fw; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 739 | } [ 4237s] | ~ [ 4237s] 740 | } [ 4237s] | ~ [ 4237s] 741 | return n & 7; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 742 | } [ 4237s] | ~ [ 4237s] 743 | [ 4237s] | [ 4237s] 744 | /* __kernel_sin( x, y, iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 745 | * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 746 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 747 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 748 | * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 749 | * [ 4237s] | ~ [ 4237s] 750 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 751 | * 1. Since sin(-x) = -sin(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 752 | * 2. if x < 2^-27 (hx<0x3E400000 0), return x with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 753 | * 3. sin(x) is approximated by a polynomial of degree 13 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 754 | * [0,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 755 | * 3 13 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 756 | * sin(x) ~ x + S1*x + ... + S6*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 757 | * where [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 758 | * [ 4237s] | ~ [ 4237s] 759 | * |sin(x) 2 4 6 8 10 12 | -58 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 760 | * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 761 | * | x | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 762 | * [ 4237s] | ~ [ 4237s] 763 | * 4. sin(x+y) = sin(x) + sin'(x')*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 764 | * ~ sin(x) + (1-x*x/2)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 765 | * For better accuracy, let [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 766 | * 3 2 2 2 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 767 | * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 768 | * then 3 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 769 | * sin(x) = x + (S1*x + (x *(r-y/2)+y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 770 | */ [ 4237s] | ~~ [ 4237s] 771 | ALWAYS_INLINE double __kernel_sin(double x, double y, int iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 772 | { [ 4237s] | ~ [ 4237s] 773 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 774 | half [ 4237s] | ~~~~ [ 4237s] 775 | = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 776 | S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 777 | S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 778 | S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 779 | S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 780 | S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 781 | S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 782 | [ 4237s] | [ 4237s] 783 | double z, r, v; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 784 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 785 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 786 | ix &= 0x7FFFFFFF; /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 787 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* |x| < 2**-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 788 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 789 | } /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 790 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 791 | v = z * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 792 | r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 793 | if (iy == 0) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 794 | return x + v * (S1 + z * r); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 795 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 796 | return x - ((z * (half * y - v * r) - y) - v * S1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 797 | } [ 4237s] | ~ [ 4237s] 798 | } [ 4237s] | ~ [ 4237s] 799 | [ 4237s] | [ 4237s] 800 | /* __kernel_tan( x, y, k ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 801 | * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 802 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 803 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 804 | * Input k indicates whether tan (if k=1) or [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 805 | * -1/tan (if k= -1) is returned. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 806 | * [ 4237s] | ~ [ 4237s] 807 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 808 | * 1. Since tan(-x) = -tan(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 809 | * 2. if x < 2^-28 (hx<0x3E300000 0), return x with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 810 | * 3. tan(x) is approximated by a odd polynomial of degree 27 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 811 | * [0,0.67434] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 812 | * 3 27 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 813 | * tan(x) ~ x + T1*x + ... + T13*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 814 | * where [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 815 | * [ 4237s] | ~ [ 4237s] 816 | * |tan(x) 2 4 26 | -59.2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 817 | * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 818 | * | x | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 819 | * [ 4237s] | ~ [ 4237s] 820 | * Note: tan(x+y) = tan(x) + tan'(x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 821 | * ~ tan(x) + (1+x*x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 822 | * Therefore, for better accuracy in computing tan(x+y), let [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 823 | * 3 2 2 2 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 824 | * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 825 | * then [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 826 | * 3 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 827 | * tan(x+y) = x + (T1*x + (x *(r+y)+y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 828 | * [ 4237s] | ~ [ 4237s] 829 | * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 830 | * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 831 | * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 832 | */ [ 4237s] | ~~ [ 4237s] 833 | double __kernel_tan(double x, double y, int iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 834 | { [ 4237s] | ~ [ 4237s] 835 | constexpr double xxx[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 836 | 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 837 | 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 838 | 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 839 | 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 840 | 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 841 | 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 842 | 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 843 | 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 844 | 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 845 | 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 846 | 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 847 | -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 848 | 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 849 | /* one */ 1.00000000000000000000e+00, /* 3FF00000, 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 850 | /* pio4 */ 7.85398163397448278999e-01, /* 3FE921FB, 54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 851 | /* pio4lo */ 3.06161699786838301793e-17 /* 3C81A626, 33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 852 | }; [ 4237s] | ~~ [ 4237s] 853 | #define one xxx[13] [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 854 | #define pio4 xxx[14] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 855 | #define pio4lo xxx[15] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 856 | #define T xxx [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 857 | [ 4237s] | [ 4237s] 858 | double z, r, v, w, s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 859 | int32_t ix, hx; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 860 | [ 4237s] | [ 4237s] 861 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 862 | ix = hx & 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 863 | if (ix < 0x3E300000 && static_cast(x) == 0) { /* x < 2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 864 | /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 865 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 866 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 867 | if (((ix | low) | (iy + 1)) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 868 | return one / fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 869 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 870 | if (iy == 1) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 871 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 872 | } else { /* compute -1 / (x+y) carefully */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 873 | double a, t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 874 | [ 4237s] | [ 4237s] 875 | z = w = x + y; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 876 | SET_LOW_WORD(z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 877 | v = y - (z - x); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 878 | t = a = -one / w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 879 | SET_LOW_WORD(t, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 880 | s = one + t * z; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 881 | return t + a * (s + t * v); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 882 | } [ 4237s] | ~ [ 4237s] 883 | } [ 4237s] | ~ [ 4237s] 884 | } [ 4237s] | ~ [ 4237s] 885 | if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 886 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 887 | x = -x; [ 4237s] | ~~~~~~~ [ 4237s] 888 | y = -y; [ 4237s] | ~~~~~~~ [ 4237s] 889 | } [ 4237s] | ~ [ 4237s] 890 | z = pio4 - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 891 | w = pio4lo - y; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 892 | x = z + w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 893 | y = 0.0; [ 4237s] | ~~~~~~~~ [ 4237s] 894 | } [ 4237s] | ~ [ 4237s] 895 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 896 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 897 | /* [ 4237s] | ~~ [ 4237s] 898 | * Break x^5*(T[1]+x^2*T[2]+...) into [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 899 | * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 900 | * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 901 | */ [ 4237s] | ~~ [ 4237s] 902 | r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 903 | v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 904 | s = z * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 905 | r = y + z * (s * (r + v) + y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 906 | r += T[0] * s; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 907 | w = x + r; [ 4237s] | ~~~~~~~~~~ [ 4237s] 908 | if (ix >= 0x3FE59428) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 909 | v = iy; [ 4237s] | ~~~~~~~ [ 4237s] 910 | return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 911 | } [ 4237s] | ~ [ 4237s] 912 | if (iy == 1) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 913 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 914 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 915 | /* [ 4237s] | ~~ [ 4237s] 916 | * if allow error up to 2 ulp, simply return [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 917 | * -1.0 / (x+r) here [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 918 | */ [ 4237s] | ~~ [ 4237s] 919 | /* compute -1.0 / (x+r) accurately */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 920 | double a, t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 921 | z = w; [ 4237s] | ~~~~~~ [ 4237s] 922 | SET_LOW_WORD(z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 923 | v = r - (z - x); /* z+v = r+x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 924 | t = a = -1.0 / w; /* a = -1.0/w */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 925 | SET_LOW_WORD(t, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 926 | s = 1.0 + t * z; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 927 | return t + a * (s + t * v); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 928 | } [ 4237s] | ~ [ 4237s] 929 | [ 4237s] | [ 4237s] 930 | #undef one [ 4237s] | ~~~~~~~~~~ [ 4237s] 931 | #undef pio4 [ 4237s] | ~~~~~~~~~~~ [ 4237s] 932 | #undef pio4lo [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 933 | #undef T [ 4237s] | ~~~~~~~~ [ 4237s] 934 | } [ 4237s] | ~ [ 4237s] 935 | [ 4237s] | [ 4237s] 936 | } // namespace [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 937 | [ 4237s] | [ 4237s] 938 | /* acos(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 939 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 940 | * acos(x) = pi/2 - asin(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 941 | * acos(-x) = pi/2 + asin(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 942 | * For |x|<=0.5 [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 943 | * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 944 | * For x>0.5 [ 4237s] | ~~~~~~~~~~~ [ 4237s] 945 | * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 946 | * = 2asin(sqrt((1-x)/2)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 947 | * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 948 | * = 2f + (2c + 2s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 949 | * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 950 | * for f so that f+c ~ sqrt(z). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 951 | * For x<-0.5 [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 952 | * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 953 | * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 954 | * [ 4237s] | ~ [ 4237s] 955 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 956 | * if x is NaN, return x itself; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 957 | * if |x|>1, return NaN with invalid signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 958 | * [ 4237s] | ~ [ 4237s] 959 | * Function needed: sqrt [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 960 | */ [ 4237s] | ~~ [ 4237s] 961 | double acos(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 962 | { [ 4237s] | ~ [ 4237s] 963 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 964 | one [ 4237s] | ~~~ [ 4237s] 965 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 966 | pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 967 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 968 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 969 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 970 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 971 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 972 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 973 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 974 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 975 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 976 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 977 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 978 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 979 | [ 4237s] | [ 4237s] 980 | double z, p, q, r, w, s, c, df; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 981 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 982 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 983 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 984 | if (ix >= 0x3FF00000) { /* |x| >= 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 985 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 986 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 987 | if (((ix - 0x3FF00000) | lx) == 0) { /* |x|==1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 988 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 989 | return 0.0; /* acos(1) = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 990 | else [ 4237s] | ~~~~ [ 4237s] 991 | return pi + 2.0 * pio2_lo; /* acos(-1)= pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 992 | } [ 4237s] | ~ [ 4237s] 993 | return (x - x) / (x - x); /* acos(|x|>1) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 994 | } [ 4237s] | ~ [ 4237s] 995 | if (ix < 0x3FE00000) { /* |x| < 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 996 | if (ix <= 0x3C600000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 997 | return pio2_hi + pio2_lo; /*if|x|<2**-57*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 998 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 999 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1000 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1001 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1002 | return pio2_hi - (x - (pio2_lo - x * r)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1003 | } else if (hx < 0) { /* x < -0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1004 | z = (one + x) * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1005 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1006 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1007 | s = sqrt(z); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1008 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1009 | w = r * s - pio2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1010 | return pi - 2.0 * (s + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1011 | } else { /* x > 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1012 | z = (one - x) * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1013 | s = sqrt(z); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1014 | df = s; [ 4237s] | ~~~~~~~ [ 4237s] 1015 | SET_LOW_WORD(df, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1016 | c = (z - df * df) / (s + df); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1017 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1018 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1019 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1020 | w = r * s + c; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1021 | return 2.0 * (df + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1022 | } [ 4237s] | ~ [ 4237s] 1023 | } [ 4237s] | ~ [ 4237s] 1024 | [ 4237s] | [ 4237s] 1025 | /* acosh(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1026 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1027 | * Based on [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1028 | * acosh(x) = log [ x + sqrt(x*x-1) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1029 | * we have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1030 | * acosh(x) := log(x)+ln2, if x is large; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1031 | * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1032 | * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1033 | * [ 4237s] | ~ [ 4237s] 1034 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1035 | * acosh(x) is NaN with signal if x<1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1036 | * acosh(NaN) is NaN without signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1037 | */ [ 4237s] | ~~ [ 4237s] 1038 | double acosh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1039 | { [ 4237s] | ~ [ 4237s] 1040 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1041 | one [ 4237s] | ~~~ [ 4237s] 1042 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 1043 | ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1044 | double t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1045 | int32_t hx; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1046 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1047 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1048 | if (hx < 0x3FF00000) { /* x < 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1049 | return (x - x) / (x - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1050 | } else if (hx >= 0x41B00000) { /* x > 2**28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1051 | if (hx >= 0x7FF00000) { /* x is inf of NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1052 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1053 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1054 | return log(x) + ln2; /* acosh(huge)=log(2x) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1055 | } [ 4237s] | ~ [ 4237s] 1056 | } else if (((hx - 0x3FF00000) | lx) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1057 | return 0.0; /* acosh(1) = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1058 | } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1059 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1060 | return log(2.0 * x - one / (x + sqrt(t - one))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1061 | } else { /* 10.98 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1081 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1082 | * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1083 | * For x<=0.98, let pio4_hi = pio2_hi/2, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1084 | * f = hi part of s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1085 | * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1086 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 1087 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1088 | * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1089 | * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1090 | * [ 4237s] | ~ [ 4237s] 1091 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1092 | * if x is NaN, return x itself; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1093 | * if |x|>1, return NaN with invalid signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1094 | */ [ 4237s] | ~~ [ 4237s] 1095 | double asin(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1096 | { [ 4237s] | ~ [ 4237s] 1097 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1098 | one [ 4237s] | ~~~ [ 4237s] 1099 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1100 | huge = 1.000e+300, [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1101 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1102 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1103 | pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1104 | /* coefficient for R(x^2) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1105 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1106 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1107 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1108 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1109 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1110 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1111 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1112 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1113 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1114 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1115 | [ 4237s] | [ 4237s] 1116 | double t, w, p, q, c, r, s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1117 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1118 | [ 4237s] | [ 4237s] 1119 | t = 0; [ 4237s] | ~~~~~~ [ 4237s] 1120 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1121 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1122 | if (ix >= 0x3FF00000) { /* |x|>= 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1123 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1124 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1125 | if (((ix - 0x3FF00000) | lx) == 0) /* asin(1)=+-pi/2 with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1126 | return x * pio2_hi + x * pio2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1127 | return (x - x) / (x - x); /* asin(|x|>1) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1128 | } else if (ix < 0x3FE00000) { /* |x|<0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1129 | if (ix < 0x3E400000 && huge + x > one) { /* if |x| < 2**-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1130 | return x; /* return x with inexact if x!=0*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1131 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1132 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1133 | } [ 4237s] | ~ [ 4237s] 1134 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1135 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1136 | w = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1137 | return x + x * w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1138 | } [ 4237s] | ~ [ 4237s] 1139 | /* 1> |x|>= 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1140 | w = one - fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1141 | t = w * 0.5; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1142 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1143 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1144 | s = sqrt(t); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1145 | if (ix >= 0x3FEF3333) { /* if |x| > 0.975 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1146 | w = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1147 | t = pio2_hi - (2.0 * (s + s * w) - pio2_lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1148 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1149 | w = s; [ 4237s] | ~~~~~~ [ 4237s] 1150 | SET_LOW_WORD(w, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1151 | c = (t - w * w) / (s + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1152 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1153 | p = 2.0 * s * r - (pio2_lo - 2.0 * c); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1154 | q = pio4_hi - 2.0 * w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1155 | t = pio4_hi - (p - q); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1156 | } [ 4237s] | ~ [ 4237s] 1157 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1158 | return t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1159 | else [ 4237s] | ~~~~ [ 4237s] 1160 | return -t; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1161 | } [ 4237s] | ~ [ 4237s] 1162 | /* asinh(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1163 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1164 | * Based on [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1165 | * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1166 | * we have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1167 | * asinh(x) := x if 1+x*x=1, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1168 | * := sign(x)*(log(x)+ln2)) for large |x|, else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1169 | * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1170 | * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1171 | */ [ 4237s] | ~~ [ 4237s] 1172 | double asinh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1173 | { [ 4237s] | ~ [ 4237s] 1174 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1175 | one [ 4237s] | ~~~ [ 4237s] 1176 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1177 | ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1178 | huge = 1.00000000000000000000e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1179 | [ 4237s] | [ 4237s] 1180 | double t, w; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1181 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1182 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1183 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1184 | if (ix >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1185 | return x + x; /* x is inf or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1186 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1187 | return x; /* return x inexact except 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1188 | } [ 4237s] | ~ [ 4237s] 1189 | if (ix > 0x41B00000) { /* |x| > 2**28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1190 | w = log(fabs(x)) + ln2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1191 | } else if (ix > 0x40000000) { /* 2**28 > |x| > 2.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1192 | t = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1193 | w = log(2.0 * t + one / (sqrt(x * x + one) + t)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1194 | } else { /* 2.0 > |x| > 2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1195 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1196 | w = log1p(fabs(x) + t / (one + sqrt(one + t))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1197 | } [ 4237s] | ~ [ 4237s] 1198 | if (hx > 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1199 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 1200 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1201 | return -w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1202 | } [ 4237s] | ~ [ 4237s] 1203 | } [ 4237s] | ~ [ 4237s] 1204 | [ 4237s] | [ 4237s] 1205 | /* atan(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 1206 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 1207 | * 1. Reduce x to positive by atan(x) = -atan(-x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1208 | * 2. According to the integer k=4t+0.25 chopped, t=x, the argument [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1209 | * is further reduced to one of the following intervals and the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1210 | * arctangent of t is evaluated by the corresponding formula: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1211 | * [ 4237s] | ~ [ 4237s] 1212 | * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1213 | * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1214 | * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1215 | * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1216 | * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1217 | * [ 4237s] | ~ [ 4237s] 1218 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1219 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1220 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1221 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1222 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1223 | */ [ 4237s] | ~~ [ 4237s] 1224 | double atan(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1225 | { [ 4237s] | ~ [ 4237s] 1226 | constexpr double atanhi[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1227 | 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1228 | 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1229 | 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1230 | 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1231 | }; [ 4237s] | ~~ [ 4237s] 1232 | [ 4237s] | [ 4237s] 1233 | constexpr double atanlo[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1234 | 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1235 | 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1236 | 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1237 | 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1238 | }; [ 4237s] | ~~ [ 4237s] 1239 | [ 4237s] | [ 4237s] 1240 | constexpr double aT[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1241 | 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1242 | -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1243 | 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1244 | -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1245 | 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1246 | -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1247 | 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1248 | -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1249 | 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1250 | -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1251 | 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1252 | }; [ 4237s] | ~~ [ 4237s] 1253 | [ 4237s] | [ 4237s] 1254 | constexpr double one = 1.0, huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1255 | [ 4237s] | [ 4237s] 1256 | double w, s1, s2, z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1257 | int32_t ix, hx, id; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1258 | [ 4237s] | [ 4237s] 1259 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1260 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1261 | if (ix >= 0x44100000) { /* if |x| >= 2^66 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1262 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1263 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1264 | if (ix > 0x7FF00000 || (ix == 0x7FF00000 && (low != 0))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1265 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1266 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1267 | return atanhi[3] + *(volatile double *)&atanlo[3]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1268 | else [ 4237s] | ~~~~ [ 4237s] 1269 | return -atanhi[3] - *(volatile double *)&atanlo[3]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1270 | } [ 4237s] | ~ [ 4237s] 1271 | if (ix < 0x3FDC0000) { /* |x| < 0.4375 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1272 | if (ix < 0x3E400000 && huge + x > one) { /* |x| < 2^-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1273 | return x; /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1274 | } [ 4237s] | ~ [ 4237s] 1275 | id = -1; [ 4237s] | ~~~~~~~~ [ 4237s] 1276 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1277 | x = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1278 | if (ix < 0x3FF30000) { /* |x| < 1.1875 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1279 | if (ix < 0x3FE60000) { /* 7/16 <=|x|<11/16 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1280 | id = 0; [ 4237s] | ~~~~~~~ [ 4237s] 1281 | x = (2.0 * x - one) / (2.0 + x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1282 | } else { /* 11/16<=|x|< 19/16 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1283 | id = 1; [ 4237s] | ~~~~~~~ [ 4237s] 1284 | x = (x - one) / (x + one); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1285 | } [ 4237s] | ~ [ 4237s] 1286 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1287 | if (ix < 0x40038000) { /* |x| < 2.4375 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1288 | id = 2; [ 4237s] | ~~~~~~~ [ 4237s] 1289 | x = (x - 1.5) / (one + 1.5 * x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1290 | } else { /* 2.4375 <= |x| < 2^66 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1291 | id = 3; [ 4237s] | ~~~~~~~ [ 4237s] 1292 | x = -1.0 / x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1293 | } [ 4237s] | ~ [ 4237s] 1294 | } [ 4237s] | ~ [ 4237s] 1295 | } [ 4237s] | ~ [ 4237s] 1296 | /* end of argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1297 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1298 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1299 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1300 | s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1301 | s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1302 | if (id < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1303 | return x - x * (s1 + s2); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1304 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1305 | z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1306 | return (hx < 0) ? -z : z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1307 | } [ 4237s] | ~ [ 4237s] 1308 | } [ 4237s] | ~ [ 4237s] 1309 | [ 4237s] | [ 4237s] 1310 | /* atan2(y,x) [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1311 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1312 | * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1313 | * 2. Reduce x to positive by (if x and y are unexceptional): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1314 | * ARG (x+iy) = arctan(y/x) ... if x > 0, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1315 | * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1316 | * [ 4237s] | ~ [ 4237s] 1317 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1318 | * [ 4237s] | ~ [ 4237s] 1319 | * ATAN2((anything), NaN ) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1320 | * ATAN2(NAN , (anything) ) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1321 | * ATAN2(+-0, +(anything but NaN)) is +-0 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1322 | * ATAN2(+-0, -(anything but NaN)) is +-pi ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1323 | * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1324 | * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1325 | * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1326 | * ATAN2(+-INF,+INF ) is +-pi/4 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1327 | * ATAN2(+-INF,-INF ) is +-3pi/4; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1328 | * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1329 | * [ 4237s] | ~ [ 4237s] 1330 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1331 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1332 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1333 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1334 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1335 | */ [ 4237s] | ~~ [ 4237s] 1336 | double atan2(double y, double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1337 | { [ 4237s] | ~ [ 4237s] 1338 | constexpr volatile double tiny = 1.0e-300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1339 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1340 | zero [ 4237s] | ~~~~ [ 4237s] 1341 | = 0.0, [ 4237s] | ~~~~~~ [ 4237s] 1342 | pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1343 | pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1344 | pi = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1345 | constexpr volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1346 | [ 4237s] | [ 4237s] 1347 | double z; [ 4237s] | ~~~~~~~~~ [ 4237s] 1348 | int32_t k, m, hx, hy, ix, iy; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1349 | uint32_t lx, ly; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1350 | [ 4237s] | [ 4237s] 1351 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1352 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1353 | EXTRACT_WORDS(hy, ly, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1354 | iy = hy & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1355 | if (((ix | ((lx | -static_cast(lx)) >> 31)) > 0x7FF00000) || ((iy | ((ly | -static_cast(ly)) >> 31)) > 0x7FF00000)) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1356 | return x + y; /* x or y is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1357 | } [ 4237s] | ~ [ 4237s] 1358 | if (((hx - 0x3FF00000) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1359 | return atan(y); /* x=1.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1360 | m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1361 | [ 4237s] | [ 4237s] 1362 | /* when y = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1363 | if ((iy | ly) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1364 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1365 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1366 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1367 | return y; /* atan(+-0,+anything)=+-0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1368 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1369 | return pi + tiny; /* atan(+0,-anything) = pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1370 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1371 | return -pi - tiny; /* atan(-0,-anything) =-pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1372 | } [ 4237s] | ~ [ 4237s] 1373 | } [ 4237s] | ~ [ 4237s] 1374 | /* when x = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1375 | if ((ix | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1376 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1377 | [ 4237s] | [ 4237s] 1378 | /* when x is INF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1379 | if (ix == 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1380 | if (iy == 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1381 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1382 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1383 | return pi_o_4 + tiny; /* atan(+INF,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1384 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1385 | return -pi_o_4 - tiny; /* atan(-INF,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1386 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1387 | return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1388 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1389 | return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1390 | } [ 4237s] | ~ [ 4237s] 1391 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1392 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1393 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1394 | return zero; /* atan(+...,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1395 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1396 | return -zero; /* atan(-...,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1397 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1398 | return pi + tiny; /* atan(+...,-INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1399 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1400 | return -pi - tiny; /* atan(-...,-INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1401 | } [ 4237s] | ~ [ 4237s] 1402 | } [ 4237s] | ~ [ 4237s] 1403 | } [ 4237s] | ~ [ 4237s] 1404 | /* when y is INF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1405 | if (iy == 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1406 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1407 | [ 4237s] | [ 4237s] 1408 | /* compute y/x */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1409 | k = (iy - ix) >> 20; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1410 | if (k > 60) { /* |y/x| > 2**60 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1411 | z = pi_o_2 + 0.5 * pi_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1412 | m &= 1; [ 4237s] | ~~~~~~~ [ 4237s] 1413 | } else if (hx < 0 && k < -60) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1414 | z = 0.0; /* 0 > |y|/x > -2**-60 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1415 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1416 | z = atan(fabs(y / x)); /* safe to do y/x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1417 | } [ 4237s] | ~ [ 4237s] 1418 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1419 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1420 | return z; /* atan(+,+) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1421 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1422 | return -z; /* atan(-,+) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1423 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1424 | return pi - (z - pi_lo); /* atan(+,-) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1425 | default: /* case 3 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1426 | return (z - pi_lo) - pi; /* atan(-,-) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1427 | } [ 4237s] | ~ [ 4237s] 1428 | } [ 4237s] | ~ [ 4237s] 1429 | [ 4237s] | [ 4237s] 1430 | /* cos(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1431 | * Return cosine function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1432 | * [ 4237s] | ~ [ 4237s] 1433 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1434 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1435 | * __kernel_cos ... cosine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1436 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1437 | * [ 4237s] | ~ [ 4237s] 1438 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 1439 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1440 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1441 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1442 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1443 | * [ 4237s] | ~ [ 4237s] 1444 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1445 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1446 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1447 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1448 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1449 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1450 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1451 | * [ 4237s] | ~ [ 4237s] 1452 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1453 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1454 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1455 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1456 | * [ 4237s] | ~ [ 4237s] 1457 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1458 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1459 | */ [ 4237s] | ~~ [ 4237s] 1460 | double cos(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1461 | { [ 4237s] | ~ [ 4237s] 1462 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1463 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1464 | [ 4237s] | [ 4237s] 1465 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1466 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1467 | [ 4237s] | [ 4237s] 1468 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1469 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1470 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1471 | return __kernel_cos(x, z); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1472 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1473 | /* cos(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1474 | return x - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1475 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1476 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1477 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1478 | switch (n & 3) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1479 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1480 | return __kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1481 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1482 | return -__kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1483 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1484 | return -__kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1485 | default: [ 4237s] | ~~~~~~~~ [ 4237s] 1486 | return __kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1487 | } [ 4237s] | ~ [ 4237s] 1488 | } [ 4237s] | ~ [ 4237s] 1489 | } [ 4237s] | ~ [ 4237s] 1490 | [ 4237s] | [ 4237s] 1491 | /* exp(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1492 | * Returns the exponential of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1493 | * [ 4237s] | ~ [ 4237s] 1494 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 1495 | * 1. Argument reduction: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1496 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1497 | * Given x, find r and integer k such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1498 | * [ 4237s] | ~ [ 4237s] 1499 | * x = k*ln2 + r, |r| <= 0.5*ln2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1500 | * [ 4237s] | ~ [ 4237s] 1501 | * Here r will be represented as r = hi-lo for better [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1502 | * accuracy. [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1503 | * [ 4237s] | ~ [ 4237s] 1504 | * 2. Approximation of exp(r) by a special rational function on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1505 | * the interval [0,0.34658]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1506 | * Write [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1507 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1508 | * We use a special Remes algorithm on [0,0.34658] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1509 | * a polynomial of degree 5 to approximate R. The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1510 | * of this polynomial approximation is bounded by 2**-59. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1511 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1512 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1513 | * (where z=r*r, and the values of P1 to P5 are listed below) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1514 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 1515 | * | 5 | -59 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1516 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1517 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1518 | * The computation of exp(r) thus becomes [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1519 | * 2*r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1520 | * exp(r) = 1 + ------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1521 | * R - r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1522 | * r*R1(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1523 | * = 1 + r + ----------- (for better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1524 | * 2 - R1(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1525 | * where [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1526 | * 2 4 10 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1527 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1528 | * [ 4237s] | ~ [ 4237s] 1529 | * 3. Scale back to obtain exp(x): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1530 | * From step 1, we have [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1531 | * exp(x) = 2^k * exp(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1532 | * [ 4237s] | ~ [ 4237s] 1533 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1534 | * exp(INF) is INF, exp(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1535 | * exp(-INF) is 0, and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1536 | * for finite argument, only exp(0)=1 is exact. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1537 | * [ 4237s] | ~ [ 4237s] 1538 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1539 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1540 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1541 | * [ 4237s] | ~ [ 4237s] 1542 | * Misc. info. [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1543 | * For IEEE double [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1544 | * if x > 7.09782712893383973096e+02 then exp(x) overflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1545 | * if x < -7.45133219101941108420e+02 then exp(x) underflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1546 | * [ 4237s] | ~ [ 4237s] 1547 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1548 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1549 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1550 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1551 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1552 | */ [ 4237s] | ~~ [ 4237s] 1553 | double exp(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1554 | { [ 4237s] | ~ [ 4237s] 1555 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1556 | one [ 4237s] | ~~~ [ 4237s] 1557 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 1558 | halF[2] = { 0.5, -0.5 }, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1559 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1560 | u_threshold = -7.45133219101941108420e+02, /* 0xC0874910, 0xD52D3051 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1561 | ln2HI[2] = { 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1562 | -6.93147180369123816490e-01 }, /* 0xBFE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1563 | ln2LO[2] = { 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1564 | -1.90821492927058770002e-10 }, /* 0xBDEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1565 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1566 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1567 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1568 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1569 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1570 | P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1571 | E = 2.718281828459045; /* 0x4005BF0A, 0x8B145769 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1572 | [ 4237s] | [ 4237s] 1573 | constexpr volatile double [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1574 | huge [ 4237s] | ~~~~ [ 4237s] 1575 | = 1.0e+300, [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1576 | twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1577 | two1023 = 8.988465674311579539e307; /* 0x1p1023 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1578 | [ 4237s] | [ 4237s] 1579 | double y, hi = 0.0, lo = 0.0, c, t, twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1580 | int32_t k = 0, xsb; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1581 | uint32_t hx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1582 | [ 4237s] | [ 4237s] 1583 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1584 | xsb = (hx >> 31) & 1; /* sign bit of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1585 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1586 | [ 4237s] | [ 4237s] 1587 | /* filter out non-finite argument */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1588 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1589 | if (hx >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1590 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1591 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1592 | if (((hx & 0xFFFFF) | lx) != 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1593 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1594 | else [ 4237s] | ~~~~ [ 4237s] 1595 | return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1596 | } [ 4237s] | ~ [ 4237s] 1597 | if (x > o_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1598 | return huge * huge; /* overflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1599 | if (x < u_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1600 | return twom1000 * twom1000; /* underflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1601 | } [ 4237s] | ~ [ 4237s] 1602 | [ 4237s] | [ 4237s] 1603 | /* argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1604 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1605 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1606 | /* TODO(rtoy): We special case exp(1) here to return the correct [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1607 | * value of E, as the computation below would get the last bit [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1608 | * wrong. We should probably fix the algorithm instead. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1609 | */ [ 4237s] | ~~ [ 4237s] 1610 | if (x == 1.0) [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1611 | return E; [ 4237s] | ~~~~~~~~~ [ 4237s] 1612 | hi = x - ln2HI[xsb]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1613 | lo = ln2LO[xsb]; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1614 | k = 1 - xsb - xsb; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1615 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1616 | k = static_cast(invln2 * x + halF[xsb]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1617 | t = k; [ 4237s] | ~~~~~~ [ 4237s] 1618 | hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1619 | lo = t * ln2LO[0]; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1620 | } [ 4237s] | ~ [ 4237s] 1621 | STRICT_ASSIGN(double, x, hi - lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1622 | } else if (hx < 0x3E300000) { /* when |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1623 | if (huge + x > one) [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1624 | return one + x; /* trigger inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1625 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1626 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1627 | } [ 4237s] | ~ [ 4237s] 1628 | [ 4237s] | [ 4237s] 1629 | /* x is now in primary range */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1630 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1631 | if (k >= -1021) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1632 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1633 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1634 | INSERT_WORDS(twopk, 0x3FF00000 + ((k + 1000) << 20), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1635 | } [ 4237s] | ~ [ 4237s] 1636 | c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1637 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1638 | return one - ((x * c) / (c - 2.0) - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1639 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1640 | y = one - ((lo - (x * c) / (2.0 - c)) - hi); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1641 | } [ 4237s] | ~ [ 4237s] 1642 | if (k >= -1021) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1643 | if (k == 1024) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1644 | return y * 2.0 * two1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1645 | return y * twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1646 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1647 | return y * twopk * twom1000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1648 | } [ 4237s] | ~ [ 4237s] 1649 | } [ 4237s] | ~ [ 4237s] 1650 | [ 4237s] | [ 4237s] 1651 | /* [ 4237s] | ~~ [ 4237s] 1652 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1653 | * 1.Reduced x to positive by atanh(-x) = -atanh(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1654 | * 2.For x>=0.5 [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1655 | * 1 2x x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1656 | * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1657 | * 2 1 - x 1 - x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1658 | * [ 4237s] | ~ [ 4237s] 1659 | * For x<0.5 [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1660 | * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1661 | * [ 4237s] | ~ [ 4237s] 1662 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1663 | * atanh(x) is NaN if |x| > 1 with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1664 | * atanh(NaN) is that NaN with no signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1665 | * atanh(+-1) is +-INF with signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1666 | * [ 4237s] | ~ [ 4237s] 1667 | */ [ 4237s] | ~~ [ 4237s] 1668 | double atanh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1669 | { [ 4237s] | ~ [ 4237s] 1670 | constexpr double one = 1.0, huge = 1e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1671 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1672 | [ 4237s] | [ 4237s] 1673 | double t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1674 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1675 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1676 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1677 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1678 | if ((ix | ((lx | -static_cast(lx)) >> 31)) > 0x3FF00000) /* |x|>1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1679 | return (x - x) / (x - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1680 | if (ix == 0x3FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1681 | return x / zero; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1682 | if (ix < 0x3E300000 && (huge + x) > zero) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1683 | return x; /* x<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1684 | SET_HIGH_WORD(x, ix); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1685 | if (ix < 0x3FE00000) { /* x < 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1686 | t = x + x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1687 | t = 0.5 * log1p(t + t * x / (one - x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1688 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1689 | t = 0.5 * log1p((x + x) / (one - x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1690 | } [ 4237s] | ~ [ 4237s] 1691 | if (hx >= 0) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1692 | return t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1693 | else [ 4237s] | ~~~~ [ 4237s] 1694 | return -t; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1695 | } [ 4237s] | ~ [ 4237s] 1696 | [ 4237s] | [ 4237s] 1697 | /* log(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1698 | * Return the logrithm of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1699 | * [ 4237s] | ~ [ 4237s] 1700 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1701 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1702 | * x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1703 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1704 | * [ 4237s] | ~ [ 4237s] 1705 | * 2. Approximation of log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1706 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1707 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1708 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1709 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1710 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1711 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1712 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1713 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1714 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1715 | * (the values of Lg1 to Lg7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1716 | * and [ 4237s] | ~~~~~~ [ 4237s] 1717 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1718 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1719 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1720 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1721 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1722 | * by [ 4237s] | ~~~~~ [ 4237s] 1723 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1724 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1725 | * [ 4237s] | ~ [ 4237s] 1726 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1727 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1728 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1729 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1730 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1731 | * [ 4237s] | ~ [ 4237s] 1732 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1733 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1734 | * log(+INF) is +INF; log(0) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1735 | * log(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1736 | * [ 4237s] | ~ [ 4237s] 1737 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1738 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1739 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1740 | * [ 4237s] | ~ [ 4237s] 1741 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1742 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1743 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1744 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1745 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1746 | */ [ 4237s] | ~~ [ 4237s] 1747 | double log(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1748 | { [ 4237s] | ~ [ 4237s] 1749 | constexpr double /* -- */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1750 | ln2_hi [ 4237s] | ~~~~~~ [ 4237s] 1751 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1752 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1753 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1754 | Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1755 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1756 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1757 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1758 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1759 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1760 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1761 | [ 4237s] | [ 4237s] 1762 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1763 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1764 | [ 4237s] | [ 4237s] 1765 | double hfsq, f, s, z, R, w, t1, t2, dk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1766 | int32_t k, hx, i, j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1767 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1768 | [ 4237s] | [ 4237s] 1769 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1770 | [ 4237s] | [ 4237s] 1771 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1772 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1773 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1774 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1775 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1776 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1777 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 1778 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1779 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1780 | } [ 4237s] | ~ [ 4237s] 1781 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1782 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1783 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1784 | hx &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1785 | i = (hx + 0x95F64) & 0x100000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1786 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1787 | k += (i >> 20); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1788 | f = x - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1789 | if ((0x000FFFFF & (2 + hx)) < 3) { /* -2**-20 <= f < 2**-20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1790 | if (f == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1791 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1792 | return zero; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1793 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1794 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1795 | return dk * ln2_hi + dk * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1796 | } [ 4237s] | ~ [ 4237s] 1797 | } [ 4237s] | ~ [ 4237s] 1798 | R = f * f * (0.5 - 0.33333333333333333 * f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1799 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1800 | return f - R; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1801 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1802 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1803 | return dk * ln2_hi - ((R - dk * ln2_lo) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1804 | } [ 4237s] | ~ [ 4237s] 1805 | } [ 4237s] | ~ [ 4237s] 1806 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1807 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1808 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1809 | i = hx - 0x6147A; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1810 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1811 | j = 0x6B851 - hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1812 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1813 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1814 | i |= j; [ 4237s] | ~~~~~~~ [ 4237s] 1815 | R = t2 + t1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1816 | if (i > 0) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1817 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1818 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1819 | return f - (hfsq - s * (hfsq + R)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1820 | else [ 4237s] | ~~~~ [ 4237s] 1821 | return dk * ln2_hi - ((hfsq - (s * (hfsq + R) + dk * ln2_lo)) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1822 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1823 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1824 | return f - s * (f - R); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1825 | else [ 4237s] | ~~~~ [ 4237s] 1826 | return dk * ln2_hi - ((s * (f - R) - dk * ln2_lo) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1827 | } [ 4237s] | ~ [ 4237s] 1828 | } [ 4237s] | ~ [ 4237s] 1829 | [ 4237s] | [ 4237s] 1830 | /* double log1p(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1831 | * [ 4237s] | ~ [ 4237s] 1832 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1833 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1834 | * 1+x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1835 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1836 | * [ 4237s] | ~ [ 4237s] 1837 | * Note. If k=0, then f=x is exact. However, if k!=0, then f [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1838 | * may not be representable exactly. In that case, a correction [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1839 | * term is need. Let u=1+x rounded. Let c = (1+x)-u, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1840 | * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1841 | * and add back the correction term c/u. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1842 | * (Note: when x > 2**53, one can simply return log(x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1843 | * [ 4237s] | ~ [ 4237s] 1844 | * 2. Approximation of log1p(f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1845 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1846 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1847 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1848 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1849 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1850 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1851 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1852 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1853 | * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1854 | * (the values of Lp1 to Lp7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1855 | * and [ 4237s] | ~~~~~~ [ 4237s] 1856 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1857 | * | Lp1*s +...+Lp7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1858 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1859 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1860 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1861 | * by [ 4237s] | ~~~~~ [ 4237s] 1862 | * log1p(f) = f - (hfsq - s*(hfsq+R)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1863 | * [ 4237s] | ~ [ 4237s] 1864 | * 3. Finally, log1p(x) = k*ln2 + log1p(f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1865 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1866 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1867 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1868 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1869 | * [ 4237s] | ~ [ 4237s] 1870 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1871 | * log1p(x) is NaN with signal if x < -1 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1872 | * log1p(+INF) is +INF; log1p(-1) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1873 | * log1p(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1874 | * [ 4237s] | ~ [ 4237s] 1875 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1876 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1877 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1878 | * [ 4237s] | ~ [ 4237s] 1879 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1880 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1881 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1882 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1883 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1884 | * [ 4237s] | ~ [ 4237s] 1885 | * Note: Assuming log() return accurate answer, the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1886 | * algorithm can be used to compute log1p(x) to within a few ULP: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1887 | * [ 4237s] | ~ [ 4237s] 1888 | * u = 1+x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1889 | * if(u==1.0) return x ; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1890 | * return log(u)*(x/(u-1.0)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1891 | * [ 4237s] | ~ [ 4237s] 1892 | * See HP-15C Advanced Functions Handbook, p.193. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1893 | */ [ 4237s] | ~~ [ 4237s] 1894 | double log1p(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1895 | { [ 4237s] | ~ [ 4237s] 1896 | constexpr double /* -- */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1897 | ln2_hi [ 4237s] | ~~~~~~ [ 4237s] 1898 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1899 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1900 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1901 | Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1902 | Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1903 | Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1904 | Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1905 | Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1906 | Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1907 | Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1908 | [ 4237s] | [ 4237s] 1909 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1910 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1911 | [ 4237s] | [ 4237s] 1912 | double hfsq, f, c, s, z, R, u; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1913 | int32_t k, hx, hu, ax; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1914 | [ 4237s] | [ 4237s] 1915 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1916 | ax = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1917 | [ 4237s] | [ 4237s] 1918 | c = 0; [ 4237s] | ~~~~~~ [ 4237s] 1919 | k = 1; [ 4237s] | ~~~~~~ [ 4237s] 1920 | if (hx < 0x3FDA827A) { /* 1+x < sqrt(2)+ */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1921 | if (ax >= 0x3FF00000) { /* x <= -1.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1922 | if (x == -1.0) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1923 | return -two54 / vzero; /* log1p(-1)=+inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1924 | else [ 4237s] | ~~~~ [ 4237s] 1925 | return (x - x) / (x - x); /* log1p(x<-1)=NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1926 | } [ 4237s] | ~ [ 4237s] 1927 | if (ax < 0x3E200000) { /* |x| < 2**-29 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1928 | if (two54 + x > zero /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1929 | && ax < 0x3C900000) /* |x| < 2**-54 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1930 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 1931 | else [ 4237s] | ~~~~ [ 4237s] 1932 | return x - x * x * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1933 | } [ 4237s] | ~ [ 4237s] 1934 | if (hx > 0 || hx <= static_cast(0xBFD2BEC4)) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1935 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1936 | f = x; [ 4237s] | ~~~~~~ [ 4237s] 1937 | hu = 1; [ 4237s] | ~~~~~~~ [ 4237s] 1938 | } /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1939 | } [ 4237s] | ~ [ 4237s] 1940 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1941 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1942 | if (k != 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1943 | if (hx < 0x43400000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1944 | STRICT_ASSIGN(double, u, 1.0 + x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1945 | GET_HIGH_WORD(hu, u); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1946 | k = (hu >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1947 | c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1948 | c /= u; [ 4237s] | ~~~~~~~ [ 4237s] 1949 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1950 | u = x; [ 4237s] | ~~~~~~ [ 4237s] 1951 | GET_HIGH_WORD(hu, u); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1952 | k = (hu >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1953 | c = 0; [ 4237s] | ~~~~~~ [ 4237s] 1954 | } [ 4237s] | ~ [ 4237s] 1955 | hu &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1956 | /* [ 4237s] | ~~ [ 4237s] 1957 | * The approximation to sqrt(2) used in thresholds is not [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1958 | * critical. However, the ones used above must give less [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1959 | * strict bounds than the one here so that the k==0 case is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1960 | * never reached from here, since here we have committed to [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1961 | * using the correction term but don't use it if k==0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1962 | */ [ 4237s] | ~~ [ 4237s] 1963 | if (hu < 0x6A09E) { /* u ~< sqrt(2) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1964 | SET_HIGH_WORD(u, hu | 0x3FF00000); /* normalize u */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1965 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1966 | k += 1; [ 4237s] | ~~~~~~~ [ 4237s] 1967 | SET_HIGH_WORD(u, hu | 0x3FE00000); /* normalize u/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1968 | hu = (0x00100000 - hu) >> 2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1969 | } [ 4237s] | ~ [ 4237s] 1970 | f = u - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1971 | } [ 4237s] | ~ [ 4237s] 1972 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1973 | if (hu == 0) { /* |f| < 2**-20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1974 | if (f == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1975 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1976 | return zero; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1977 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1978 | c += k * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1979 | return k * ln2_hi + c; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1980 | } [ 4237s] | ~ [ 4237s] 1981 | } [ 4237s] | ~ [ 4237s] 1982 | R = hfsq * (1.0 - 0.66666666666666666 * f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1983 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1984 | return f - R; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1985 | else [ 4237s] | ~~~~ [ 4237s] 1986 | return k * ln2_hi - ((R - (k * ln2_lo + c)) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1987 | } [ 4237s] | ~ [ 4237s] 1988 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1989 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1990 | R = z * (Lp1 + z * (Lp2 + z * (Lp3 + z * (Lp4 + z * (Lp5 + z * (Lp6 + z * Lp7)))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1991 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1992 | return f - (hfsq - s * (hfsq + R)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1993 | else [ 4237s] | ~~~~ [ 4237s] 1994 | return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1995 | } [ 4237s] | ~ [ 4237s] 1996 | [ 4237s] | [ 4237s] 1997 | /* [ 4237s] | ~~ [ 4237s] 1998 | * k_log1p(f): [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1999 | * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)]. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2000 | * [ 4237s] | ~ [ 4237s] 2001 | * The following describes the overall strategy for computing [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2002 | * logarithms in base e. The argument reduction and adding the final [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2003 | * term of the polynomial are done by the caller for increased accuracy [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2004 | * when different bases are used. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2005 | * [ 4237s] | ~ [ 4237s] 2006 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2007 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2008 | * x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2009 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2010 | * [ 4237s] | ~ [ 4237s] 2011 | * 2. Approximation of log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2012 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2013 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2014 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2015 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2016 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2017 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2018 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2019 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2020 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2021 | * (the values of Lg1 to Lg7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2022 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 2023 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2024 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2025 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2026 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2027 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2028 | * by [ 4237s] | ~~~~~~~~~ [ 4237s] 2029 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2030 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2031 | * [ 4237s] | ~ [ 4237s] 2032 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2033 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2034 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2035 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2036 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2037 | * [ 4237s] | ~ [ 4237s] 2038 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2039 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2040 | * log(+INF) is +INF; log(0) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2041 | * log(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2042 | * [ 4237s] | ~ [ 4237s] 2043 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2044 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2045 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2046 | * [ 4237s] | ~ [ 4237s] 2047 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2048 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2049 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2050 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2051 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2052 | */ [ 4237s] | ~~ [ 4237s] 2053 | [ 4237s] | [ 4237s] 2054 | constexpr double Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2055 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2056 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2057 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2058 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2059 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2060 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2061 | [ 4237s] | [ 4237s] 2062 | /* [ 4237s] | ~~ [ 4237s] 2063 | * We always inline k_log1p(), since doing so produces a [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2064 | * substantial performance improvement (~40% on amd64). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2065 | */ [ 4237s] | ~~ [ 4237s] 2066 | static inline double k_log1p(double f) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2067 | { [ 4237s] | ~ [ 4237s] 2068 | double hfsq, s, z, R, w, t1, t2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2069 | [ 4237s] | [ 4237s] 2070 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2071 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2072 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2073 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2074 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2075 | R = t2 + t1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2076 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2077 | return s * (hfsq + R); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2078 | } [ 4237s] | ~ [ 4237s] 2079 | [ 4237s] | [ 4237s] 2080 | /* [ 4237s] | ~~ [ 4237s] 2081 | * Return the base 2 logarithm of x. See e_log.c and k_log.h for most [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2082 | * comments. [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2083 | * [ 4237s] | ~ [ 4237s] 2084 | * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2085 | * then does the combining and scaling steps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2086 | * log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2087 | * in not-quite-routine extra precision. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2088 | */ [ 4237s] | ~~ [ 4237s] 2089 | double log2(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2090 | { [ 4237s] | ~ [ 4237s] 2091 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2092 | two54 [ 4237s] | ~~~~~ [ 4237s] 2093 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2094 | ivln2hi = 1.44269504072144627571e+00, /* 0x3FF71547, 0x65200000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2095 | ivln2lo = 1.67517131648865118353e-10; /* 0x3DE705FC, 0x2EEFA200 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2096 | [ 4237s] | [ 4237s] 2097 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2098 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2099 | [ 4237s] | [ 4237s] 2100 | double f, hfsq, hi, lo, r, val_hi, val_lo, w, y; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2101 | int32_t i, k, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2102 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2103 | [ 4237s] | [ 4237s] 2104 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2105 | [ 4237s] | [ 4237s] 2106 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2107 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2108 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2109 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2110 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2111 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2112 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 2113 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2114 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2115 | } [ 4237s] | ~ [ 4237s] 2116 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2117 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2118 | if (hx == 0x3FF00000 && lx == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2119 | return zero; /* log(1) = +0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2120 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2121 | hx &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2122 | i = (hx + 0x95F64) & 0x100000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2123 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2124 | k += (i >> 20); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2125 | y = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2126 | f = x - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2127 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2128 | r = k_log1p(f); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2129 | [ 4237s] | [ 4237s] 2130 | /* [ 4237s] | ~~ [ 4237s] 2131 | * f-hfsq must (for args near 1) be evaluated in extra precision [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2132 | * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2133 | * This is fairly efficient since f-hfsq only depends on f, so can [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2134 | * be evaluated in parallel with R. Not combining hfsq with R also [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2135 | * keeps R small (though not as small as a true `lo' term would be), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2136 | * so that extra precision is not needed for terms involving R. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2137 | * [ 4237s] | ~ [ 4237s] 2138 | * Compiler bugs involving extra precision used to break Dekker's [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2139 | * theorem for spitting f-hfsq as hi+lo, unless double_t was used [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2140 | * or the multi-precision calculations were avoided when double_t [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2141 | * has extra precision. These problems are now automatically [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2142 | * avoided as a side effect of the optimization of combining the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2143 | * Dekker splitting step with the clear-low-bits step. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2144 | * [ 4237s] | ~ [ 4237s] 2145 | * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2146 | * precision to avoid a very large cancellation when x is very near [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2147 | * these values. Unlike the above cancellations, this problem is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2148 | * specific to base 2. It is strange that adding +-1 is so much [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2149 | * harder than adding +-ln2 or +-log10_2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2150 | * [ 4237s] | ~ [ 4237s] 2151 | * This uses Dekker's theorem to normalize y+val_hi, so the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2152 | * compiler bugs are back in some configurations, sigh. And I [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2153 | * don't want to used double_t to avoid them, since that gives a [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2154 | * pessimization and the support for avoiding the pessimization [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2155 | * is not yet available. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2156 | * [ 4237s] | ~ [ 4237s] 2157 | * The multi-precision calculations for the multiplications are [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2158 | * routine. [ 4237s] | ~~~~~~~~~~ [ 4237s] 2159 | */ [ 4237s] | ~~ [ 4237s] 2160 | hi = f - hfsq; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2161 | SET_LOW_WORD(hi, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2162 | lo = (f - hi) - hfsq + r; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2163 | val_hi = hi * ivln2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2164 | val_lo = (lo + hi) * ivln2lo + lo * ivln2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2165 | [ 4237s] | [ 4237s] 2166 | /* spadd(val_hi, val_lo, y), except for not using double_t: */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2167 | w = y + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2168 | val_lo += (y - w) + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2169 | val_hi = w; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2170 | [ 4237s] | [ 4237s] 2171 | return val_lo + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2172 | } [ 4237s] | ~ [ 4237s] 2173 | [ 4237s] | [ 4237s] 2174 | /* [ 4237s] | ~~ [ 4237s] 2175 | * Return the base 10 logarithm of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2176 | * [ 4237s] | ~ [ 4237s] 2177 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2178 | * Let log10_2hi = leading 40 bits of log10(2) and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2179 | * log10_2lo = log10(2) - log10_2hi, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2180 | * ivln10 = 1/log(10) rounded. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2181 | * Then [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2182 | * n = ilogb(x), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2183 | * if(n<0) n = n+1; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2184 | * x = scalbn(x,-n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2185 | * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2186 | * [ 4237s] | ~ [ 4237s] 2187 | * Note 1: [ 4237s] | ~~~~~~~~~~ [ 4237s] 2188 | * To guarantee log10(10**n)=n, where 10**n is normal, the rounding [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2189 | * mode must set to Round-to-Nearest. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2190 | * Note 2: [ 4237s] | ~~~~~~~~~~ [ 4237s] 2191 | * [1/log(10)] rounded to 53 bits has error .198 ulps; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2192 | * log10 is monotonic at all binary break points. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2193 | * [ 4237s] | ~ [ 4237s] 2194 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2195 | * log10(x) is NaN if x < 0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2196 | * log10(+INF) is +INF; log10(0) is -INF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2197 | * log10(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2198 | * log10(10**N) = N for N=0,1,...,22. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2199 | */ [ 4237s] | ~~ [ 4237s] 2200 | double log10(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2201 | { [ 4237s] | ~ [ 4237s] 2202 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2203 | two54 [ 4237s] | ~~~~~ [ 4237s] 2204 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2205 | ivln10 = 4.34294481903251816668e-01, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2206 | log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2207 | log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2208 | [ 4237s] | [ 4237s] 2209 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2210 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2211 | [ 4237s] | [ 4237s] 2212 | double y; [ 4237s] | ~~~~~~~~~ [ 4237s] 2213 | int32_t i, k, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2214 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2215 | [ 4237s] | [ 4237s] 2216 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2217 | [ 4237s] | [ 4237s] 2218 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2219 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2220 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2221 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2222 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2223 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2224 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 2225 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2226 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2227 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2228 | } [ 4237s] | ~ [ 4237s] 2229 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2230 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2231 | if (hx == 0x3FF00000 && lx == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2232 | return zero; /* log(1) = +0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2233 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2234 | [ 4237s] | [ 4237s] 2235 | i = (k & 0x80000000) >> 31; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2236 | hx = (hx & 0x000FFFFF) | ((0x3FF - i) << 20); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2237 | y = k + i; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2238 | SET_HIGH_WORD(x, hx); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2239 | SET_LOW_WORD(x, lx); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2240 | [ 4237s] | [ 4237s] 2241 | double z = y * log10_2lo + ivln10 * log(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2242 | return z + y * log10_2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2243 | } [ 4237s] | ~ [ 4237s] 2244 | [ 4237s] | [ 4237s] 2245 | /* expm1(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2246 | * Returns exp(x)-1, the exponential of x minus 1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2247 | * [ 4237s] | ~ [ 4237s] 2248 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 2249 | * 1. Argument reduction: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2250 | * Given x, find r and integer k such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2251 | * [ 4237s] | ~ [ 4237s] 2252 | * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2253 | * [ 4237s] | ~ [ 4237s] 2254 | * Here a correction term c will be computed to compensate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2255 | * the error in r when rounded to a floating-point number. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2256 | * [ 4237s] | ~ [ 4237s] 2257 | * 2. Approximating expm1(r) by a special rational function on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2258 | * the interval [0,0.34658]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2259 | * Since [ 4237s] | ~~~~~~~~ [ 4237s] 2260 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2261 | * we define R1(r*r) by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2262 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2263 | * That is, [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2264 | * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2265 | * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2266 | * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2267 | * We use a special Reme algorithm on [0,0.347] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2268 | * a polynomial of degree 5 in r*r to approximate R1. The [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2269 | * maximum error of this polynomial approximation is bounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2270 | * by 2**-61. In other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2271 | * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2272 | * where Q1 = -1.6666666666666567384E-2, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2273 | * Q2 = 3.9682539681370365873E-4, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2274 | * Q3 = -9.9206344733435987357E-6, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2275 | * Q4 = 2.5051361420808517002E-7, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2276 | * Q5 = -6.2843505682382617102E-9; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2277 | * z = r*r, [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2278 | * with error bounded by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2279 | * | 5 | -61 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2280 | * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2281 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2282 | * [ 4237s] | ~ [ 4237s] 2283 | * expm1(r) = exp(r)-1 is then computed by the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2284 | * specific way which minimize the accumulation rounding error: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2285 | * 2 3 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2286 | * r r [ 3 - (R1 + R1*r/2) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2287 | * expm1(r) = r + --- + --- * [--------------------] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2288 | * 2 2 [ 6 - r*(3 - R1*r/2) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2289 | * [ 4237s] | ~ [ 4237s] 2290 | * To compensate the error in the argument reduction, we use [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2291 | * expm1(r+c) = expm1(r) + c + expm1(r)*c [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2292 | * ~ expm1(r) + c + r*c [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2293 | * Thus c+r*c will be added in as the correction terms for [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2294 | * expm1(r+c). Now rearrange the term to avoid optimization [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2295 | * screw up: [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2296 | * ( 2 2 ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2297 | * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2298 | * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2299 | * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2300 | * ( ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2301 | * [ 4237s] | ~ [ 4237s] 2302 | * = r - E [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2303 | * 3. Scale back to obtain expm1(x): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2304 | * From step 1, we have [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2305 | * expm1(x) = either 2^k*[expm1(r)+1] - 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2306 | * = or 2^k*[expm1(r) + (1-2^-k)] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2307 | * 4. Implementation notes: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2308 | * (A). To save one multiplication, we scale the coefficient Qi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2309 | * to Qi*2^i, and replace z by (x^2)/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2310 | * (B). To achieve maximum accuracy, we compute expm1(x) by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2311 | * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2312 | * (ii) if k=0, return r-E [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2313 | * (iii) if k=-1, return 0.5*(r-E)-0.5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2314 | * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2315 | * else return 1.0+2.0*(r-E); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2316 | * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2317 | * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2318 | * (vii) return 2^k(1-((E+2^-k)-r)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2319 | * [ 4237s] | ~ [ 4237s] 2320 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2321 | * expm1(INF) is INF, expm1(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2322 | * expm1(-INF) is -1, and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2323 | * for finite argument, only expm1(0)=0 is exact. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2324 | * [ 4237s] | ~ [ 4237s] 2325 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2326 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2327 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2328 | * [ 4237s] | ~ [ 4237s] 2329 | * Misc. info. [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2330 | * For IEEE double [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2331 | * if x > 7.09782712893383973096e+02 then expm1(x) overflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2332 | * [ 4237s] | ~ [ 4237s] 2333 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2334 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2335 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2336 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2337 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2338 | */ [ 4237s] | ~~ [ 4237s] 2339 | double expm1(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2340 | { [ 4237s] | ~ [ 4237s] 2341 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2342 | one [ 4237s] | ~~~ [ 4237s] 2343 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 2344 | tiny = 1.0e-300, [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2345 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2346 | ln2_hi = 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2347 | ln2_lo = 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2348 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2349 | /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2350 | x*x/2: */ [ 4237s] | ~~~~~~~~~ [ 4237s] 2351 | Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2352 | Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2353 | Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2354 | Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2355 | Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2356 | [ 4237s] | [ 4237s] 2357 | constexpr volatile double huge = 1.0e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2358 | [ 4237s] | [ 4237s] 2359 | double y, hi, lo, c, t, e, hxs, hfx, r1, twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2360 | int32_t k, xsb; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2361 | uint32_t hx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2362 | [ 4237s] | [ 4237s] 2363 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2364 | xsb = hx & 0x80000000; /* sign bit of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2365 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2366 | [ 4237s] | [ 4237s] 2367 | /* filter out huge and non-finite argument */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2368 | if (hx >= 0x4043687A) { /* if |x|>=56*ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2369 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2370 | if (hx >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2371 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2372 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2373 | if (((hx & 0xFFFFF) | low) != 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2374 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2375 | else [ 4237s] | ~~~~ [ 4237s] 2376 | return (xsb == 0) ? x : -1.0; /* exp(+-inf)={inf,-1} */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2377 | } [ 4237s] | ~ [ 4237s] 2378 | if (x > o_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2379 | return huge * huge; /* overflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2380 | } [ 4237s] | ~ [ 4237s] 2381 | if (xsb != 0 && x + tiny < 0.0) { /* x < -56*ln2, return -1.0 with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2382 | /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2383 | return tiny - one; /* return -1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2384 | } [ 4237s] | ~ [ 4237s] 2385 | } [ 4237s] | ~ [ 4237s] 2386 | [ 4237s] | [ 4237s] 2387 | /* argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2388 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2389 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2390 | if (xsb == 0) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2391 | hi = x - ln2_hi; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2392 | lo = ln2_lo; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2393 | k = 1; [ 4237s] | ~~~~~~ [ 4237s] 2394 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2395 | hi = x + ln2_hi; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2396 | lo = -ln2_lo; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2397 | k = -1; [ 4237s] | ~~~~~~~ [ 4237s] 2398 | } [ 4237s] | ~ [ 4237s] 2399 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2400 | k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2401 | t = k; [ 4237s] | ~~~~~~ [ 4237s] 2402 | hi = x - t * ln2_hi; /* t*ln2_hi is exact here */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2403 | lo = t * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2404 | } [ 4237s] | ~ [ 4237s] 2405 | STRICT_ASSIGN(double, x, hi - lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2406 | c = (hi - x) - lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2407 | } else if (hx < 0x3C900000) { /* when |x|<2**-54, return x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2408 | t = huge + x; /* return x with inexact flags when x!=0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2409 | return x - (t - (huge + x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2410 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2411 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2412 | } [ 4237s] | ~ [ 4237s] 2413 | [ 4237s] | [ 4237s] 2414 | /* x is now in primary range */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2415 | hfx = 0.5 * x; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2416 | hxs = x * hfx; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2417 | r1 = one + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2418 | t = 3.0 - r1 * hfx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2419 | e = hxs * ((r1 - t) / (6.0 - x * t)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2420 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2421 | return x - (x * e - hxs); /* c is 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2422 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2423 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); /* 2^k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2424 | e = (x * (e - c) - c); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2425 | e -= hxs; [ 4237s] | ~~~~~~~~~ [ 4237s] 2426 | if (k == -1) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2427 | return 0.5 * (x - e) - 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2428 | if (k == 1) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2429 | if (x < -0.25) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2430 | return -2.0 * (e - (x + 0.5)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2431 | else [ 4237s] | ~~~~ [ 4237s] 2432 | return one + 2.0 * (x - e); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2433 | } [ 4237s] | ~ [ 4237s] 2434 | if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2435 | y = one - (e - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2436 | // TODO(mvstanton): is this replacement for the hex float [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2437 | // sufficient? [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2438 | // if (k == 1024) y = y*2.0*0x1p1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2439 | if (k == 1024) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2440 | y = y * 2.0 * 8.98846567431158e+307; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2441 | else [ 4237s] | ~~~~ [ 4237s] 2442 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2443 | return y - one; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2444 | } [ 4237s] | ~ [ 4237s] 2445 | t = one; [ 4237s] | ~~~~~~~~ [ 4237s] 2446 | if (k < 20) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2447 | SET_HIGH_WORD(t, 0x3FF00000 - (0x200000 >> k)); /* t=1-2^-k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2448 | y = t - (e - x); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2449 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2450 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2451 | SET_HIGH_WORD(t, ((0x3FF - k) << 20)); /* 2^-k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2452 | y = x - (e + t); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2453 | y += one; [ 4237s] | ~~~~~~~~~ [ 4237s] 2454 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2455 | } [ 4237s] | ~ [ 4237s] 2456 | } [ 4237s] | ~ [ 4237s] 2457 | return y; [ 4237s] | ~~~~~~~~~ [ 4237s] 2458 | } [ 4237s] | ~ [ 4237s] 2459 | [ 4237s] | [ 4237s] 2460 | double cbrt(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2461 | { [ 4237s] | ~ [ 4237s] 2462 | constexpr uint32_t [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2463 | B1 [ 4237s] | ~~ [ 4237s] 2464 | = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2465 | B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2466 | [ 4237s] | [ 4237s] 2467 | /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2468 | constexpr double P0 = 1.87595182427177009643, /* 0x3FFE03E6, 0x0F61E692 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2469 | P1 = -1.88497979543377169875, /* 0xBFFE28E0, 0x92F02420 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2470 | P2 = 1.621429720105354466140, /* 0x3FF9F160, 0x4A49D6C2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2471 | P3 = -0.758397934778766047437, /* 0xBFE844CB, 0xBEE751D9 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2472 | P4 = 0.145996192886612446982; /* 0x3FC2B000, 0xD4E4EDD7 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2473 | [ 4237s] | [ 4237s] 2474 | int32_t hx; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2475 | union { [ 4237s] | ~~~~~~~ [ 4237s] 2476 | double value; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2477 | uint64_t bits; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2478 | } u; [ 4237s] | ~~~~ [ 4237s] 2479 | double r, s, t = 0.0, w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2480 | uint32_t sign; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2481 | uint32_t high, low; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2482 | [ 4237s] | [ 4237s] 2483 | EXTRACT_WORDS(hx, low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2484 | sign = hx & 0x80000000; /* sign= sign(x) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2485 | hx ^= sign; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2486 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2487 | return (x + x); /* cbrt(NaN,INF) is itself */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2488 | [ 4237s] | [ 4237s] 2489 | /* [ 4237s] | ~~ [ 4237s] 2490 | * Rough cbrt to 5 bits: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2491 | * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2492 | * where e is integral and >= 0, m is real and in [0, 1), and "/" and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2493 | * "%" are integer division and modulus with rounding towards minus [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2494 | * infinity. The RHS is always >= the LHS and has a maximum relative [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2495 | * error of about 1 in 16. Adding a bias of -0.03306235651 to the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2496 | * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2497 | * floating point representation, for finite positive normal values, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2498 | * ordinary integer division of the value in bits magically gives [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2499 | * almost exactly the RHS of the above provided we first subtract the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2500 | * exponent bias (1023 for doubles) and later add it back. We do the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2501 | * subtraction virtually to keep e >= 0 so that ordinary integer [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2502 | * division rounds towards minus infinity; this is also efficient. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2503 | */ [ 4237s] | ~~ [ 4237s] 2504 | if (hx < 0x00100000) { /* zero or subnormal? */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2505 | if ((hx | low) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2506 | return (x); /* cbrt(0) is itself */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2507 | SET_HIGH_WORD(t, 0x43500000); /* set t= 2**54 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2508 | t *= x; [ 4237s] | ~~~~~~~ [ 4237s] 2509 | GET_HIGH_WORD(high, t); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2510 | INSERT_WORDS(t, sign | ((high & 0x7FFFFFFF) / 3 + B2), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2511 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2512 | INSERT_WORDS(t, sign | (hx / 3 + B1), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2513 | } [ 4237s] | ~ [ 4237s] 2514 | [ 4237s] | [ 4237s] 2515 | /* [ 4237s] | ~~ [ 4237s] 2516 | * New cbrt to 23 bits: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2517 | * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2518 | * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2519 | * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2520 | * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2521 | * gives us bounds for r = t**3/x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2522 | * [ 4237s] | ~ [ 4237s] 2523 | * Try to optimize for parallel evaluation as in k_tanf.c. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2524 | */ [ 4237s] | ~~ [ 4237s] 2525 | r = (t * t) * (t / x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2526 | t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2527 | [ 4237s] | [ 4237s] 2528 | /* [ 4237s] | ~~ [ 4237s] 2529 | * Round t away from zero to 23 bits (sloppily except for ensuring that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2530 | * the result is larger in magnitude than cbrt(x) but not much more than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2531 | * 2 23-bit ulps larger). With rounding towards zero, the error bound [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2532 | * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2533 | * in the rounded t, the infinite-precision error in the Newton [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2534 | * approximation barely affects third digit in the final error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2535 | * 0.667; the error in the rounded t can be up to about 3 23-bit ulps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2536 | * before the final error is larger than 0.667 ulps. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2537 | */ [ 4237s] | ~~ [ 4237s] 2538 | u.value = t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2539 | u.bits = (u.bits + 0x80000000) & 0xFFFFFFFFC0000000ULL; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2540 | t = u.value; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2541 | [ 4237s] | [ 4237s] 2542 | /* one step Newton iteration to 53 bits with error < 0.667 ulps */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2543 | s = t * t; /* t*t is exact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2544 | r = x / s; /* error <= 0.5 ulps; |r| < |t| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2545 | w = t + t; /* t+t is exact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2546 | r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2547 | t = t + t * r; /* error <= 0.5 + 0.5/3 + epsilon */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2548 | [ 4237s] | [ 4237s] 2549 | return (t); [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2550 | } [ 4237s] | ~ [ 4237s] 2551 | [ 4237s] | [ 4237s] 2552 | /* sin(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 2553 | * Return sine function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2554 | * [ 4237s] | ~ [ 4237s] 2555 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2556 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2557 | * __kernel_cos ... cose function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2558 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2559 | * [ 4237s] | ~ [ 4237s] 2560 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 2561 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2562 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2563 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2564 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2565 | * [ 4237s] | ~ [ 4237s] 2566 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2567 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2568 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2569 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2570 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2571 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2572 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2573 | * [ 4237s] | ~ [ 4237s] 2574 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2575 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2576 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2577 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2578 | * [ 4237s] | ~ [ 4237s] 2579 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2580 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2581 | */ [ 4237s] | ~~ [ 4237s] 2582 | double sin(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2583 | { [ 4237s] | ~ [ 4237s] 2584 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2585 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2586 | [ 4237s] | [ 4237s] 2587 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2588 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2589 | [ 4237s] | [ 4237s] 2590 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2591 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2592 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2593 | return __kernel_sin(x, z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2594 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2595 | /* sin(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2596 | return x - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2597 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2598 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2599 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2600 | switch (n & 3) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2601 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 2602 | return __kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2603 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 2604 | return __kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2605 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 2606 | return -__kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2607 | default: [ 4237s] | ~~~~~~~~ [ 4237s] 2608 | return -__kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2609 | } [ 4237s] | ~ [ 4237s] 2610 | } [ 4237s] | ~ [ 4237s] 2611 | } [ 4237s] | ~ [ 4237s] 2612 | [ 4237s] | [ 4237s] 2613 | /* tan(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 2614 | * Return tangent function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2615 | * [ 4237s] | ~ [ 4237s] 2616 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2617 | * __kernel_tan ... tangent function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2618 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2619 | * [ 4237s] | ~ [ 4237s] 2620 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 2621 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2622 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2623 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2624 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2625 | * [ 4237s] | ~ [ 4237s] 2626 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2627 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2628 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2629 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2630 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2631 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2632 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2633 | * [ 4237s] | ~ [ 4237s] 2634 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2635 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2636 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2637 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2638 | * [ 4237s] | ~ [ 4237s] 2639 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2640 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2641 | */ [ 4237s] | ~~ [ 4237s] 2642 | double tan(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2643 | { [ 4237s] | ~ [ 4237s] 2644 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2645 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2646 | [ 4237s] | [ 4237s] 2647 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2648 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2649 | [ 4237s] | [ 4237s] 2650 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2651 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2652 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2653 | return __kernel_tan(x, z, 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2654 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2655 | /* tan(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2656 | return x - x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2657 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2658 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2659 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2660 | /* 1 -> n even, -1 -> n odd */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2661 | return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2662 | } [ 4237s] | ~ [ 4237s] 2663 | } [ 4237s] | ~ [ 4237s] 2664 | [ 4237s] | [ 4237s] 2665 | /* [ 4237s] | ~~ [ 4237s] 2666 | * ES6 draft 09-27-13, section 20.2.2.12. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2667 | * Math.cosh [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2668 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2669 | * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2670 | * 1. Replace x by |x| (cosh(x) = cosh(-x)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2671 | * 2. [ 4237s] | ~~~~~~~~~ [ 4237s] 2672 | * [ exp(x) - 1 ]^2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2673 | * 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2674 | * 2*exp(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2675 | * [ 4237s] | ~ [ 4237s] 2676 | * exp(x) + 1/exp(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2677 | * ln2/2 <= x <= 22 : cosh(x) := ------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2678 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2679 | * 22 <= x <= lnovft : cosh(x) := exp(x)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2680 | * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2681 | * ln2ovft < x : cosh(x) := huge*huge (overflow) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2682 | * [ 4237s] | ~ [ 4237s] 2683 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2684 | * cosh(x) is |x| if x is +INF, -INF, or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2685 | * only cosh(0)=1 is exact for finite x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2686 | */ [ 4237s] | ~~ [ 4237s] 2687 | double cosh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2688 | { [ 4237s] | ~ [ 4237s] 2689 | constexpr double KCOSH_OVERFLOW = 710.4758600739439; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2690 | constexpr double one = 1.0, half = 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2691 | constexpr volatile double huge = 1.0e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2692 | [ 4237s] | [ 4237s] 2693 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2694 | [ 4237s] | [ 4237s] 2695 | /* High word of |x|. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2696 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2697 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2698 | [ 4237s] | [ 4237s] 2699 | // |x| in [0,0.5*log2], return 1+expm1(|x|)^2/(2*exp(|x|)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2700 | if (ix < 0x3FD62E43) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2701 | double t = expm1(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2702 | double w = one + t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2703 | // For |x| < 2^-55, cosh(x) = 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2704 | if (ix < 0x3C800000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2705 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 2706 | return one + (t * t) / (w + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2707 | } [ 4237s] | ~ [ 4237s] 2708 | [ 4237s] | [ 4237s] 2709 | // |x| in [0.5*log2, 22], return (exp(|x|)+1/exp(|x|)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2710 | if (ix < 0x40360000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2711 | double t = exp(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2712 | return half * t + half / t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2713 | } [ 4237s] | ~ [ 4237s] 2714 | [ 4237s] | [ 4237s] 2715 | // |x| in [22, log(maxdouble)], return half*exp(|x|) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2716 | if (ix < 0x40862E42) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2717 | return half * exp(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2718 | [ 4237s] | [ 4237s] 2719 | // |x| in [log(maxdouble), overflowthreshold] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2720 | if (fabs(x) <= KCOSH_OVERFLOW) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2721 | double w = exp(half * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2722 | double t = half * w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2723 | return t * w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2724 | } [ 4237s] | ~ [ 4237s] 2725 | [ 4237s] | [ 4237s] 2726 | /* x is INF or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2727 | if (ix >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2728 | return x * x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2729 | [ 4237s] | [ 4237s] 2730 | // |x| > overflowthreshold. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2731 | return huge * huge; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2732 | } [ 4237s] | ~ [ 4237s] 2733 | [ 4237s] | [ 4237s] 2734 | /* [ 4237s] | ~~ [ 4237s] 2735 | * ES6 draft 09-27-13, section 20.2.2.30. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2736 | * Math.sinh [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2737 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2738 | * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2739 | * 1. Replace x by |x| (sinh(-x) = -sinh(x)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2740 | * 2. [ 4237s] | ~~~~~~~~~ [ 4237s] 2741 | * E + E/(E+1) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2742 | * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2743 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2744 | * [ 4237s] | ~ [ 4237s] 2745 | * 22 <= x <= lnovft : sinh(x) := exp(x)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2746 | * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2747 | * ln2ovft < x : sinh(x) := x*shuge (overflow) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2748 | * [ 4237s] | ~ [ 4237s] 2749 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2750 | * sinh(x) is |x| if x is +Infinity, -Infinity, or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2751 | * only sinh(0)=0 is exact for finite x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2752 | */ [ 4237s] | ~~ [ 4237s] 2753 | double sinh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2754 | { [ 4237s] | ~ [ 4237s] 2755 | constexpr double KSINH_OVERFLOW = 710.4758600739439, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2756 | TWO_M28 = 3.725290298461914e-9, // 2^-28, empty lower half [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2757 | LOG_MAXD = 709.7822265625; // 0x40862E42 00000000, empty lower half [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2758 | constexpr double shuge = 1.0e307; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2759 | [ 4237s] | [ 4237s] 2760 | double h = (x < 0) ? -0.5 : 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2761 | // |x| in [0, 22]. return sign(x)*0.5*(E+E/(E+1)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2762 | double ax = fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2763 | if (ax < 22) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2764 | // For |x| < 2^-28, sinh(x) = x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2765 | if (ax < TWO_M28) [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2766 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 2767 | double t = expm1(ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2768 | if (ax < 1) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2769 | return h * (2 * t - t * t / (t + 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2770 | } [ 4237s] | ~ [ 4237s] 2771 | return h * (t + t / (t + 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2772 | } [ 4237s] | ~ [ 4237s] 2773 | // |x| in [22, log(maxdouble)], return 0.5 * exp(|x|) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2774 | if (ax < LOG_MAXD) [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2775 | return h * exp(ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2776 | // |x| in [log(maxdouble), overflowthreshold] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2777 | // overflowthreshold = 710.4758600739426 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2778 | if (ax <= KSINH_OVERFLOW) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2779 | double w = exp(0.5 * ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2780 | double t = h * w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2781 | return t * w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2782 | } [ 4237s] | ~ [ 4237s] 2783 | // |x| > overflowthreshold or is NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2784 | // Return Infinity of the appropriate sign or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2785 | return x * shuge; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2786 | } [ 4237s] | ~ [ 4237s] 2787 | [ 4237s] | [ 4237s] 2788 | /* Tanh(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 2789 | * Return the Hyperbolic Tangent of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2790 | * [ 4237s] | ~ [ 4237s] 2791 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2792 | * x -x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2793 | * e - e [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2794 | * 0. tanh(x) is defined to be ----------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2795 | * x -x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2796 | * e + e [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2797 | * 1. reduce x to non-negative by tanh(-x) = -tanh(x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2798 | * 2. 0 <= x < 2**-28 : tanh(x) := x with inexact if x != 0 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2799 | * -t [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2800 | * 2**-28 <= x < 1 : tanh(x) := -----; t = expm1(-2x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2801 | * t + 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2802 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2803 | * 1 <= x < 22 : tanh(x) := 1 - -----; t = expm1(2x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2804 | * t + 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2805 | * 22 <= x <= INF : tanh(x) := 1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2806 | * [ 4237s] | ~ [ 4237s] 2807 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2808 | * tanh(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2809 | * only tanh(0)=0 is exact for finite argument. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2810 | */ [ 4237s] | ~~ [ 4237s] 2811 | double tanh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2812 | { [ 4237s] | ~ [ 4237s] 2813 | constexpr volatile double tiny = 1.0e-300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2814 | constexpr double one = 1.0, two = 2.0, huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2815 | double t, z; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2816 | int32_t jx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2817 | [ 4237s] | [ 4237s] 2818 | GET_HIGH_WORD(jx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2819 | ix = jx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2820 | [ 4237s] | [ 4237s] 2821 | /* x is INF or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2822 | if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2823 | if (jx >= 0) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2824 | return one / x + one; /* tanh(+-inf)=+-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2825 | else [ 4237s] | ~~~~ [ 4237s] 2826 | return one / x - one; /* tanh(NaN) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2827 | } [ 4237s] | ~ [ 4237s] 2828 | [ 4237s] | [ 4237s] 2829 | /* |x| < 22 */ [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2830 | if (ix < 0x40360000) { /* |x|<22 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2831 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2832 | return x; /* tanh(tiny) = tiny with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2833 | } [ 4237s] | ~ [ 4237s] 2834 | if (ix >= 0x3FF00000) { /* |x|>=1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2835 | t = expm1(two * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2836 | z = one - two / (t + two); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2837 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2838 | t = expm1(-two * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2839 | z = -t / (t + two); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2840 | } [ 4237s] | ~ [ 4237s] 2841 | /* |x| >= 22, return +-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2842 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2843 | z = one - tiny; /* raise inexact flag */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2844 | } [ 4237s] | ~ [ 4237s] 2845 | return (jx >= 0) ? z : -z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2846 | } [ 4237s] | ~ [ 4237s] 2847 | [ 4237s] | [ 4237s] 2848 | double ceil(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2849 | { [ 4237s] | ~ [ 4237s] 2850 | constexpr double huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2851 | int i0, i1, j0; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2852 | unsigned i, j; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2853 | i0 = __HI(x); [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2854 | i1 = __LO(x); [ 4237s] | ~~~~~~~~~~~ [ 4237s] third_party/escargot/src/runtime/IEEE754.cpp:2854:10: note: in expansion of macro '__LO' [ 4237s] 2854 | i1 = __LO(x); [ 4237s] | ^~~~ [ 4237s] third_party/escargot/src/runtime/IEEE754.cpp:86:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] [ 4237s] 86 | #define __LO(x) *(int *)&x [ 4237s] | ^~~~~~~~~ [ 4237s] 87 | #define __HIp(x) *(1 + (int *)x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 88 | #define __LOp(x) *(int *)x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 89 | [ 4237s] | [ 4237s] 90 | #else [ 4237s] | ~~~~~ [ 4237s] 91 | [ 4237s] | [ 4237s] 92 | typedef union { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 93 | double value; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 94 | struct { [ 4237s] | ~~~~~~~~ [ 4237s] 95 | uint32_t msw; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 96 | uint32_t lsw; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 97 | } parts; [ 4237s] | ~~~~~~~~ [ 4237s] 98 | struct { [ 4237s] | ~~~~~~~~ [ 4237s] 99 | uint64_t w; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 100 | } xparts; [ 4237s] | ~~~~~~~~~ [ 4237s] 101 | } ieee_double_shape_type; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 102 | [ 4237s] | [ 4237s] 103 | #define __HI(x) *(int *)&x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 104 | #define __LO(x) *(1 + (int *)&x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 105 | #define __HIp(x) *(int *)x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 106 | #define __LOp(x) *(1 + (int *)x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 107 | [ 4237s] | [ 4237s] 108 | #endif [ 4237s] | ~~~~~~ [ 4237s] 109 | [ 4237s] | [ 4237s] 110 | /* Get two 32 bit ints from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 111 | [ 4237s] | [ 4237s] 112 | #define EXTRACT_WORDS(ix0, ix1, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 113 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 114 | ieee_double_shape_type ew_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 115 | ew_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 116 | (ix0) = ew_u.parts.msw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 117 | (ix1) = ew_u.parts.lsw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 118 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 119 | [ 4237s] | [ 4237s] 120 | /* Get a 64-bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 121 | #define EXTRACT_WORD64(ix, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 122 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 123 | ieee_double_shape_type ew_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 124 | ew_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 125 | (ix) = ew_u.xparts.w; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 126 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 127 | [ 4237s] | [ 4237s] 128 | /* Get the more significant 32 bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 129 | [ 4237s] | [ 4237s] 130 | #define GET_HIGH_WORD(i, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 131 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 132 | ieee_double_shape_type gh_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 133 | gh_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 134 | (i) = gh_u.parts.msw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 135 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 136 | [ 4237s] | [ 4237s] 137 | /* Get the less significant 32 bit int from a double. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 138 | [ 4237s] | [ 4237s] 139 | #define GET_LOW_WORD(i, d) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 140 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 141 | ieee_double_shape_type gl_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 142 | gl_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 143 | (i) = gl_u.parts.lsw; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 144 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 145 | [ 4237s] | [ 4237s] 146 | /* Set a double from two 32 bit ints. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 147 | [ 4237s] | [ 4237s] 148 | #define INSERT_WORDS(d, ix0, ix1) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 149 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 150 | ieee_double_shape_type iw_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 151 | iw_u.parts.msw = (ix0); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 152 | iw_u.parts.lsw = (ix1); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 153 | (d) = iw_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 154 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 155 | [ 4237s] | [ 4237s] 156 | /* Set a double from a 64-bit int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 157 | #define INSERT_WORD64(d, ix) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 158 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 159 | ieee_double_shape_type iw_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 160 | iw_u.xparts.w = (ix); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 161 | (d) = iw_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 162 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 163 | [ 4237s] | [ 4237s] 164 | /* Set the more significant 32 bits of a double from an int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 165 | [ 4237s] | [ 4237s] 166 | #define SET_HIGH_WORD(d, v) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 167 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 168 | ieee_double_shape_type sh_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 169 | sh_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 170 | sh_u.parts.msw = (v); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 171 | (d) = sh_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 172 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 173 | [ 4237s] | [ 4237s] 174 | /* Set the less significant 32 bits of a double from an int. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 175 | [ 4237s] | [ 4237s] 176 | #define SET_LOW_WORD(d, v) \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 177 | do { \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 178 | ieee_double_shape_type sl_u; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 179 | sl_u.value = (d); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 180 | sl_u.parts.lsw = (v); \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 181 | (d) = sl_u.value; \ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 182 | } while (0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 183 | [ 4237s] | [ 4237s] 184 | /* Support macro. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 185 | [ 4237s] | [ 4237s] 186 | #define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 187 | [ 4237s] | [ 4237s] 188 | int32_t __ieee754_rem_pio2(double x, double *y) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 189 | double __kernel_cos(double x, double y) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 190 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 191 | const int32_t *ipio2) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 192 | double __kernel_sin(double x, double y, int iy) WARN_UNUSED_RETURN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 193 | [ 4237s] | [ 4237s] 194 | /* __ieee754_rem_pio2(x,y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 195 | * [ 4237s] | ~ [ 4237s] 196 | * return the remainder of x rem pi/2 in y[0]+y[1] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 197 | * use __kernel_rem_pio2() [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 198 | */ [ 4237s] | ~~ [ 4237s] 199 | int32_t __ieee754_rem_pio2(double x, double *y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 200 | { [ 4237s] | ~ [ 4237s] 201 | /* [ 4237s] | ~~ [ 4237s] 202 | * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 203 | */ [ 4237s] | ~~ [ 4237s] 204 | constexpr int32_t two_over_pi[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 205 | 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 206 | 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 207 | 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 208 | 0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 209 | 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 210 | 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 211 | 0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 212 | 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 213 | 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 214 | 0x73A8C9, 0x60E27B, 0xC08C6B, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 215 | }; [ 4237s] | ~~ [ 4237s] 216 | [ 4237s] | [ 4237s] 217 | constexpr int32_t npio2_hw[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 218 | 0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 219 | 0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 220 | 0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 221 | 0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 222 | 0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 223 | 0x404858EB, 0x404921FB, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 224 | }; [ 4237s] | ~~ [ 4237s] 225 | [ 4237s] | [ 4237s] 226 | /* [ 4237s] | ~~ [ 4237s] 227 | * invpio2: 53 bits of 2/pi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 228 | * pio2_1: first 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 229 | * pio2_1t: pi/2 - pio2_1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 230 | * pio2_2: second 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 231 | * pio2_2t: pi/2 - (pio2_1+pio2_2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 232 | * pio2_3: third 33 bit of pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 233 | * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 234 | */ [ 4237s] | ~~ [ 4237s] 235 | [ 4237s] | [ 4237s] 236 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 237 | zero [ 4237s] | ~~~~ [ 4237s] 238 | = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 239 | half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 240 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 241 | invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 242 | pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 243 | pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 244 | pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 245 | pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 246 | pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 247 | pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 248 | [ 4237s] | [ 4237s] 249 | double z, w, t, r, fn; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 250 | double tx[3]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 251 | int32_t e0, i, j, nx, n, ix, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 252 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 253 | [ 4237s] | [ 4237s] 254 | z = 0; [ 4237s] | ~~~~~~ [ 4237s] 255 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 256 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 257 | if (ix <= 0x3FE921FB) { /* |x| ~<= pi/4 , no need for reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 258 | y[0] = x; [ 4237s] | ~~~~~~~~~ [ 4237s] 259 | y[1] = 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 260 | return 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 261 | } [ 4237s] | ~ [ 4237s] 262 | if (ix < 0x4002D97C) { /* |x| < 3pi/4, special case with n=+-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 263 | if (hx > 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 264 | z = x - pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 265 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 266 | y[0] = z - pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 267 | y[1] = (z - y[0]) - pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 268 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 269 | z -= pio2_2; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 270 | y[0] = z - pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 271 | y[1] = (z - y[0]) - pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 272 | } [ 4237s] | ~ [ 4237s] 273 | return 1; [ 4237s] | ~~~~~~~~~ [ 4237s] 274 | } else { /* negative x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 275 | z = x + pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 276 | if (ix != 0x3FF921FB) { /* 33+53 bit pi is good enough */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 277 | y[0] = z + pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 278 | y[1] = (z - y[0]) + pio2_1t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 279 | } else { /* near pi/2, use 33+33+53 bit pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 280 | z += pio2_2; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 281 | y[0] = z + pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 282 | y[1] = (z - y[0]) + pio2_2t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 283 | } [ 4237s] | ~ [ 4237s] 284 | return -1; [ 4237s] | ~~~~~~~~~~ [ 4237s] 285 | } [ 4237s] | ~ [ 4237s] 286 | } [ 4237s] | ~ [ 4237s] 287 | if (ix <= 0x413921FB) { /* |x| ~<= 2^19*(pi/2), medium size */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 288 | t = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 289 | n = static_cast(t * invpio2 + half); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 290 | fn = static_cast(n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 291 | r = t - fn * pio2_1; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 292 | w = fn * pio2_1t; /* 1st round good to 85 bit */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 293 | if (n < 32 && ix != npio2_hw[n - 1]) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 294 | y[0] = r - w; /* quick check no cancellation */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 295 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 296 | uint32_t high; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 297 | j = ix >> 20; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 298 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 299 | GET_HIGH_WORD(high, y[0]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 300 | i = j - ((high >> 20) & 0x7FF); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 301 | if (i > 16) { /* 2nd iteration needed, good to 118 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 302 | t = r; [ 4237s] | ~~~~~~ [ 4237s] 303 | w = fn * pio2_2; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 304 | r = t - w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 305 | w = fn * pio2_2t - ((t - r) - w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 306 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 307 | GET_HIGH_WORD(high, y[0]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 308 | i = j - ((high >> 20) & 0x7FF); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 309 | if (i > 49) { /* 3rd iteration need, 151 bits acc */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 310 | t = r; /* will cover all possible cases */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 311 | w = fn * pio2_3; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 312 | r = t - w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 313 | w = fn * pio2_3t - ((t - r) - w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 314 | y[0] = r - w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 315 | } [ 4237s] | ~ [ 4237s] 316 | } [ 4237s] | ~ [ 4237s] 317 | } [ 4237s] | ~ [ 4237s] 318 | y[1] = (r - y[0]) - w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 319 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 320 | y[0] = -y[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 321 | y[1] = -y[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 322 | return -n; [ 4237s] | ~~~~~~~~~~ [ 4237s] 323 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 324 | return n; [ 4237s] | ~~~~~~~~~ [ 4237s] 325 | } [ 4237s] | ~ [ 4237s] 326 | } [ 4237s] | ~ [ 4237s] 327 | /* [ 4237s] | ~~ [ 4237s] 328 | * all other (large) arguments [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 329 | */ [ 4237s] | ~~ [ 4237s] 330 | if (ix >= 0x7FF00000) { /* x is inf or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 331 | y[0] = y[1] = x - x; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 332 | return 0; [ 4237s] | ~~~~~~~~~ [ 4237s] 333 | } [ 4237s] | ~ [ 4237s] 334 | /* set z = scalbn(|x|,ilogb(x)-23) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 335 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 336 | SET_LOW_WORD(z, low); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 337 | e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 338 | SET_HIGH_WORD(z, ix - static_cast(e0 << 20)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 339 | for (i = 0; i < 2; i++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 340 | tx[i] = static_cast(static_cast(z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 341 | z = (z - tx[i]) * two24; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 342 | } [ 4237s] | ~ [ 4237s] 343 | tx[2] = z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 344 | nx = 3; [ 4237s] | ~~~~~~~ [ 4237s] 345 | while (tx[nx - 1] == zero) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 346 | nx--; /* skip zero term */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 347 | n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 348 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 349 | y[0] = -y[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 350 | y[1] = -y[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 351 | return -n; [ 4237s] | ~~~~~~~~~~ [ 4237s] 352 | } [ 4237s] | ~ [ 4237s] 353 | return n; [ 4237s] | ~~~~~~~~~ [ 4237s] 354 | } [ 4237s] | ~ [ 4237s] 355 | [ 4237s] | [ 4237s] 356 | /* __kernel_cos( x, y ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 357 | * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 358 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 359 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 360 | * [ 4237s] | ~ [ 4237s] 361 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 362 | * 1. Since cos(-x) = cos(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 363 | * 2. if x < 2^-27 (hx<0x3E400000 0), return 1 with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 364 | * 3. cos(x) is approximated by a polynomial of degree 14 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 365 | * [0,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 366 | * 4 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 367 | * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 368 | * where the remez error is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 369 | * [ 4237s] | ~ [ 4237s] 370 | * | 2 4 6 8 10 12 14 | -58 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 371 | * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 372 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 373 | * [ 4237s] | ~ [ 4237s] 374 | * 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 375 | * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 376 | * cos(x) = 1 - x*x/2 + r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 377 | * since cos(x+y) ~ cos(x) - sin(x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 378 | * ~ cos(x) - x*y, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 379 | * a correction term is necessary in cos(x) and hence [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 380 | * cos(x+y) = 1 - (x*x/2 - (r - x*y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 381 | * For better accuracy when x > 0.3, let qx = |x|/4 with [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 382 | * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 383 | * Then [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 384 | * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 385 | * Note that 1-qx and (x*x/2-qx) is EXACT here, and the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 386 | * magnitude of the latter is at least a quarter of x*x/2, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 387 | * thus, reducing the rounding error in the subtraction. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 388 | */ [ 4237s] | ~~ [ 4237s] 389 | ALWAYS_INLINE double __kernel_cos(double x, double y) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 390 | { [ 4237s] | ~ [ 4237s] 391 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 392 | one [ 4237s] | ~~~ [ 4237s] 393 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 394 | C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 395 | C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 396 | C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 397 | C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 398 | C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 399 | C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 400 | [ 4237s] | [ 4237s] 401 | double a, iz, z, r, qx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 402 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 403 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 404 | ix &= 0x7FFFFFFF; /* ix = |x|'s high word*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 405 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* if x < 2**27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 406 | return one; /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 407 | } [ 4237s] | ~ [ 4237s] 408 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 409 | r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 410 | if (ix < 0x3FD33333) { /* if |x| < 0.3 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 411 | return one - (0.5 * z - (z * r - x * y)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 412 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 413 | if (ix > 0x3FE90000) { /* x > 0.78125 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 414 | qx = 0.28125; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 415 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 416 | INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 417 | } [ 4237s] | ~ [ 4237s] 418 | iz = 0.5 * z - qx; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 419 | a = one - qx; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 420 | return a - (iz - (z * r - x * y)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 421 | } [ 4237s] | ~ [ 4237s] 422 | } [ 4237s] | ~ [ 4237s] 423 | [ 4237s] | [ 4237s] 424 | /* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 425 | * double x[],y[]; int e0,nx,prec; int ipio2[]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 426 | * [ 4237s] | ~ [ 4237s] 427 | * __kernel_rem_pio2 return the last three digits of N with [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 428 | * y = x - N*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 429 | * so that |y| < pi/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 430 | * [ 4237s] | ~ [ 4237s] 431 | * The method is to compute the integer (mod 8) and fraction parts of [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 432 | * (2/pi)*x without doing the full multiplication. In general we [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 433 | * skip the part of the product that are known to be a huge integer ( [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 434 | * more accurately, = 0 mod 8 ). Thus the number of operations are [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 435 | * independent of the exponent of the input. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 436 | * [ 4237s] | ~ [ 4237s] 437 | * (2/pi) is represented by an array of 24-bit integers in ipio2[]. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 438 | * [ 4237s] | ~ [ 4237s] 439 | * Input parameters: [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 440 | * x[] The input value (must be positive) is broken into nx [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 441 | * pieces of 24-bit integers in double precision format. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 442 | * x[i] will be the i-th 24 bit of x. The scaled exponent [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 443 | * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 444 | * match x's up to 24 bits. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 445 | * [ 4237s] | ~ [ 4237s] 446 | * Example of breaking a double positive z into x[0]+x[1]+x[2]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 447 | * e0 = ilogb(z)-23 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 448 | * z = scalbn(z,-e0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 449 | * for i = 0,1,2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 450 | * x[i] = floor(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 451 | * z = (z-x[i])*2**24 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 452 | * [ 4237s] | ~ [ 4237s] 453 | * [ 4237s] | ~ [ 4237s] 454 | * y[] output result in an array of double precision numbers. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 455 | * The dimension of y[] is: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 456 | * 24-bit precision 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 457 | * 53-bit precision 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 458 | * 64-bit precision 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 459 | * 113-bit precision 3 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 460 | * The actual value is the sum of them. Thus for 113-bit [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 461 | * precison, one may have to do something like: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 462 | * [ 4237s] | ~ [ 4237s] 463 | * long double t,w,r_head, r_tail; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 464 | * t = (long double)y[2] + (long double)y[1]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 465 | * w = (long double)y[0]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 466 | * r_head = t+w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 467 | * r_tail = w - (r_head - t); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 468 | * [ 4237s] | ~ [ 4237s] 469 | * e0 The exponent of x[0] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 470 | * [ 4237s] | ~ [ 4237s] 471 | * nx dimension of x[] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 472 | * [ 4237s] | ~ [ 4237s] 473 | * prec an integer indicating the precision: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 474 | * 0 24 bits (single) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 475 | * 1 53 bits (double) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 476 | * 2 64 bits (extended) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 477 | * 3 113 bits (quad) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 478 | * [ 4237s] | ~ [ 4237s] 479 | * ipio2[] [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 480 | * integer array, contains the (24*i)-th to (24*i+23)-th [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 481 | * bit of 2/pi after binary point. The corresponding [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 482 | * floating value is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 483 | * [ 4237s] | ~ [ 4237s] 484 | * ipio2[i] * 2^(-24(i+1)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 485 | * [ 4237s] | ~ [ 4237s] 486 | * External function: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 487 | * double scalbn(), floor(); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 488 | * [ 4237s] | ~ [ 4237s] 489 | * [ 4237s] | ~ [ 4237s] 490 | * Here is the description of some local variables: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 491 | * [ 4237s] | ~ [ 4237s] 492 | * jk jk+1 is the initial number of terms of ipio2[] needed [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 493 | * in the computation. The recommended value is 2,3,4, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 494 | * 6 for single, double, extended,and quad. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 495 | * [ 4237s] | ~ [ 4237s] 496 | * jz local integer variable indicating the number of [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 497 | * terms of ipio2[] used. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 498 | * [ 4237s] | ~ [ 4237s] 499 | * jx nx - 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 500 | * [ 4237s] | ~ [ 4237s] 501 | * jv index for pointing to the suitable ipio2[] for the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 502 | * computation. In general, we want [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 503 | * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 504 | * is an integer. Thus [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 505 | * e0-3-24*jv >= 0 or (e0-3)/24 >= jv [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 506 | * Hence jv = max(0,(e0-3)/24). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 507 | * [ 4237s] | ~ [ 4237s] 508 | * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 509 | * [ 4237s] | ~ [ 4237s] 510 | * q[] double array with integral value, representing the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 511 | * 24-bits chunk of the product of x and 2/pi. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 512 | * [ 4237s] | ~ [ 4237s] 513 | * q0 the corresponding exponent of q[0]. Note that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 514 | * exponent for q[i] would be q0-24*i. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 515 | * [ 4237s] | ~ [ 4237s] 516 | * PIo2[] double precision array, obtained by cutting pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 517 | * into 24 bits chunks. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 518 | * [ 4237s] | ~ [ 4237s] 519 | * f[] ipio2[] in floating point [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 520 | * [ 4237s] | ~ [ 4237s] 521 | * iq[] integer array by breaking up q[] in 24-bits chunk. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 522 | * [ 4237s] | ~ [ 4237s] 523 | * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 524 | * [ 4237s] | ~ [ 4237s] 525 | * ih integer. If >0 it indicates q[] is >= 0.5, hence [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 526 | * it also indicates the *sign* of the result. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 527 | * [ 4237s] | ~ [ 4237s] 528 | */ [ 4237s] | ~~ [ 4237s] 529 | int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 530 | const int32_t *ipio2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 531 | { [ 4237s] | ~ [ 4237s] 532 | /* Constants: [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 533 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 534 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 535 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 536 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 537 | */ [ 4237s] | ~~ [ 4237s] 538 | constexpr int init_jk[] = { 2, 3, 4, 6 }; /* initial value for jk */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 539 | [ 4237s] | [ 4237s] 540 | constexpr double PIo2[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 541 | 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 542 | 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 543 | 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 544 | 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 545 | 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 546 | 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 547 | 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 548 | 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 549 | }; [ 4237s] | ~~ [ 4237s] 550 | [ 4237s] | [ 4237s] 551 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 552 | zero [ 4237s] | ~~~~ [ 4237s] 553 | = 0.0, [ 4237s] | ~~~~~~ [ 4237s] 554 | one = 1.0, [ 4237s] | ~~~~~~~~~~ [ 4237s] 555 | two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 556 | twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 557 | [ 4237s] | [ 4237s] 558 | int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 559 | double z, fw, f[20], fq[20], q[20]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 560 | [ 4237s] | [ 4237s] 561 | /* initialize jk*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 562 | jk = init_jk[prec]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 563 | jp = jk; [ 4237s] | ~~~~~~~~ [ 4237s] 564 | [ 4237s] | [ 4237s] 565 | /* determine jx,jv,q0, note that 3>q0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 566 | jx = nx - 1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 567 | jv = (e0 - 3) / 24; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 568 | if (jv < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 569 | jv = 0; [ 4237s] | ~~~~~~~ [ 4237s] 570 | q0 = e0 - 24 * (jv + 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 571 | [ 4237s] | [ 4237s] 572 | /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 573 | j = jv - jx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 574 | m = jx + jk; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 575 | for (i = 0; i <= m; i++, j++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 576 | f[i] = (j < 0) ? zero : static_cast(ipio2[j]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 577 | } [ 4237s] | ~ [ 4237s] 578 | [ 4237s] | [ 4237s] 579 | /* compute q[0],q[1],...q[jk] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 580 | for (i = 0; i <= jk; i++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 581 | for (j = 0, fw = 0.0; j <= jx; j++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 582 | fw += x[j] * f[jx + i - j]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 583 | q[i] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 584 | } [ 4237s] | ~ [ 4237s] 585 | [ 4237s] | [ 4237s] 586 | jz = jk; [ 4237s] | ~~~~~~~~ [ 4237s] 587 | recompute: [ 4237s] | ~~~~~~~~~~ [ 4237s] 588 | /* distill q[] into iq[] reversingly */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 589 | for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 590 | fw = static_cast(static_cast(twon24 * z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 591 | iq[i] = static_cast(z - two24 * fw); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 592 | z = q[j - 1] + fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 593 | } [ 4237s] | ~ [ 4237s] 594 | [ 4237s] | [ 4237s] 595 | /* compute n */ [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 596 | z = scalbn(z, q0); /* actual value of z */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 597 | z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 598 | n = static_cast(z); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 599 | z -= static_cast(n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 600 | ih = 0; [ 4237s] | ~~~~~~~ [ 4237s] 601 | if (q0 > 0) { /* need iq[jz-1] to determine n */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 602 | i = (iq[jz - 1] >> (24 - q0)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 603 | n += i; [ 4237s] | ~~~~~~~ [ 4237s] 604 | iq[jz - 1] -= i << (24 - q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 605 | ih = iq[jz - 1] >> (23 - q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 606 | } else if (q0 == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 607 | ih = iq[jz - 1] >> 23; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 608 | } else if (z >= 0.5) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 609 | ih = 2; [ 4237s] | ~~~~~~~ [ 4237s] 610 | } [ 4237s] | ~ [ 4237s] 611 | [ 4237s] | [ 4237s] 612 | if (ih > 0) { /* q > 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 613 | n += 1; [ 4237s] | ~~~~~~~ [ 4237s] 614 | carry = 0; [ 4237s] | ~~~~~~~~~~ [ 4237s] 615 | for (i = 0; i < jz; i++) { /* compute 1-q */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 616 | j = iq[i]; [ 4237s] | ~~~~~~~~~~ [ 4237s] 617 | if (carry == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 618 | if (j != 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 619 | carry = 1; [ 4237s] | ~~~~~~~~~~ [ 4237s] 620 | iq[i] = 0x1000000 - j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 621 | } [ 4237s] | ~ [ 4237s] 622 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 623 | iq[i] = 0xFFFFFF - j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 624 | } [ 4237s] | ~ [ 4237s] 625 | } [ 4237s] | ~ [ 4237s] 626 | if (q0 > 0) { /* rare case: chance is 1 in 12 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 627 | switch (q0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 628 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 629 | iq[jz - 1] &= 0x7FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 630 | break; [ 4237s] | ~~~~~~ [ 4237s] 631 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 632 | iq[jz - 1] &= 0x3FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 633 | break; [ 4237s] | ~~~~~~ [ 4237s] 634 | } [ 4237s] | ~ [ 4237s] 635 | } [ 4237s] | ~ [ 4237s] 636 | if (ih == 2) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 637 | z = one - z; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 638 | if (carry != 0) [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 639 | z -= scalbn(one, q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 640 | } [ 4237s] | ~ [ 4237s] 641 | } [ 4237s] | ~ [ 4237s] 642 | [ 4237s] | [ 4237s] 643 | /* check if recomputation is needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 644 | if (z == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 645 | j = 0; [ 4237s] | ~~~~~~ [ 4237s] 646 | for (i = jz - 1; i >= jk; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 647 | j |= iq[i]; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 648 | if (j == 0) { /* need recomputation */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 649 | for (k = 1; jk >= k && iq[jk - k] == 0; k++) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 650 | /* k = no. of terms needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 651 | } [ 4237s] | ~ [ 4237s] 652 | [ 4237s] | [ 4237s] 653 | for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 654 | f[jx + i] = ipio2[jv + i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 655 | for (j = 0, fw = 0.0; j <= jx; j++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 656 | fw += x[j] * f[jx + i - j]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 657 | q[i] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 658 | } [ 4237s] | ~ [ 4237s] 659 | jz += k; [ 4237s] | ~~~~~~~~ [ 4237s] 660 | goto recompute; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 661 | } [ 4237s] | ~ [ 4237s] 662 | } [ 4237s] | ~ [ 4237s] 663 | [ 4237s] | [ 4237s] 664 | /* chop off zero terms */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 665 | if (z == 0.0) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 666 | jz -= 1; [ 4237s] | ~~~~~~~~ [ 4237s] 667 | q0 -= 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 668 | while (iq[jz] == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 669 | jz--; [ 4237s] | ~~~~~ [ 4237s] 670 | q0 -= 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 671 | } [ 4237s] | ~ [ 4237s] 672 | } else { /* break z into 24-bit if necessary */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 673 | z = scalbn(z, -q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 674 | if (z >= two24) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 675 | fw = static_cast(static_cast(twon24 * z)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 676 | iq[jz] = z - two24 * fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 677 | jz += 1; [ 4237s] | ~~~~~~~~ [ 4237s] 678 | q0 += 24; [ 4237s] | ~~~~~~~~~ [ 4237s] 679 | iq[jz] = fw; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 680 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 681 | iq[jz] = z; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 682 | } [ 4237s] | ~ [ 4237s] 683 | } [ 4237s] | ~ [ 4237s] 684 | [ 4237s] | [ 4237s] 685 | /* convert integer "bit" chunk to floating-point value */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 686 | fw = scalbn(one, q0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 687 | for (i = jz; i >= 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 688 | q[i] = fw * iq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 689 | fw *= twon24; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 690 | } [ 4237s] | ~ [ 4237s] 691 | [ 4237s] | [ 4237s] 692 | /* compute PIo2[0,...,jp]*q[jz,...,0] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 693 | for (i = jz; i >= 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 694 | for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 695 | fw += PIo2[k] * q[i + k]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 696 | fq[jz - i] = fw; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 697 | } [ 4237s] | ~ [ 4237s] 698 | [ 4237s] | [ 4237s] 699 | /* compress fq[] into y[] */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 700 | switch (prec) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 701 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 702 | fw = 0.0; [ 4237s] | ~~~~~~~~~ [ 4237s] 703 | for (i = jz; i >= 0; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 704 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 705 | y[0] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 706 | break; [ 4237s] | ~~~~~~ [ 4237s] 707 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 708 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 709 | fw = 0.0; [ 4237s] | ~~~~~~~~~ [ 4237s] 710 | for (i = jz; i >= 0; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 711 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 712 | y[0] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 713 | fw = fq[0] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 714 | for (i = 1; i <= jz; i++) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 715 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 716 | y[1] = (ih == 0) ? fw : -fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 717 | break; [ 4237s] | ~~~~~~ [ 4237s] 718 | case 3: /* painful */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 719 | for (i = jz; i > 0; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 720 | fw = fq[i - 1] + fq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 721 | fq[i] += fq[i - 1] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 722 | fq[i - 1] = fw; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 723 | } [ 4237s] | ~ [ 4237s] 724 | for (i = jz; i > 1; i--) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 725 | fw = fq[i - 1] + fq[i]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 726 | fq[i] += fq[i - 1] - fw; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 727 | fq[i - 1] = fw; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 728 | } [ 4237s] | ~ [ 4237s] 729 | for (fw = 0.0, i = jz; i >= 2; i--) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 730 | fw += fq[i]; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 731 | if (ih == 0) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 732 | y[0] = fq[0]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 733 | y[1] = fq[1]; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 734 | y[2] = fw; [ 4237s] | ~~~~~~~~~~ [ 4237s] 735 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 736 | y[0] = -fq[0]; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 737 | y[1] = -fq[1]; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 738 | y[2] = -fw; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 739 | } [ 4237s] | ~ [ 4237s] 740 | } [ 4237s] | ~ [ 4237s] 741 | return n & 7; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 742 | } [ 4237s] | ~ [ 4237s] 743 | [ 4237s] | [ 4237s] 744 | /* __kernel_sin( x, y, iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 745 | * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 746 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 747 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 748 | * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 749 | * [ 4237s] | ~ [ 4237s] 750 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 751 | * 1. Since sin(-x) = -sin(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 752 | * 2. if x < 2^-27 (hx<0x3E400000 0), return x with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 753 | * 3. sin(x) is approximated by a polynomial of degree 13 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 754 | * [0,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 755 | * 3 13 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 756 | * sin(x) ~ x + S1*x + ... + S6*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 757 | * where [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 758 | * [ 4237s] | ~ [ 4237s] 759 | * |sin(x) 2 4 6 8 10 12 | -58 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 760 | * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 761 | * | x | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 762 | * [ 4237s] | ~ [ 4237s] 763 | * 4. sin(x+y) = sin(x) + sin'(x')*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 764 | * ~ sin(x) + (1-x*x/2)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 765 | * For better accuracy, let [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 766 | * 3 2 2 2 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 767 | * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 768 | * then 3 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 769 | * sin(x) = x + (S1*x + (x *(r-y/2)+y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 770 | */ [ 4237s] | ~~ [ 4237s] 771 | ALWAYS_INLINE double __kernel_sin(double x, double y, int iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 772 | { [ 4237s] | ~ [ 4237s] 773 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 774 | half [ 4237s] | ~~~~ [ 4237s] 775 | = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 776 | S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 777 | S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 778 | S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 779 | S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 780 | S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 781 | S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 782 | [ 4237s] | [ 4237s] 783 | double z, r, v; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 784 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 785 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 786 | ix &= 0x7FFFFFFF; /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 787 | if (ix < 0x3E400000 && static_cast(x) == 0) { /* |x| < 2**-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 788 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 789 | } /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 790 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 791 | v = z * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 792 | r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 793 | if (iy == 0) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 794 | return x + v * (S1 + z * r); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 795 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 796 | return x - ((z * (half * y - v * r) - y) - v * S1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 797 | } [ 4237s] | ~ [ 4237s] 798 | } [ 4237s] | ~ [ 4237s] 799 | [ 4237s] | [ 4237s] 800 | /* __kernel_tan( x, y, k ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 801 | * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 802 | * Input x is assumed to be bounded by ~pi/4 in magnitude. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 803 | * Input y is the tail of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 804 | * Input k indicates whether tan (if k=1) or [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 805 | * -1/tan (if k= -1) is returned. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 806 | * [ 4237s] | ~ [ 4237s] 807 | * Algorithm [ 4237s] | ~~~~~~~~~~~ [ 4237s] 808 | * 1. Since tan(-x) = -tan(x), we need only to consider positive x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 809 | * 2. if x < 2^-28 (hx<0x3E300000 0), return x with inexact if x!=0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 810 | * 3. tan(x) is approximated by a odd polynomial of degree 27 on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 811 | * [0,0.67434] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 812 | * 3 27 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 813 | * tan(x) ~ x + T1*x + ... + T13*x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 814 | * where [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 815 | * [ 4237s] | ~ [ 4237s] 816 | * |tan(x) 2 4 26 | -59.2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 817 | * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 818 | * | x | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 819 | * [ 4237s] | ~ [ 4237s] 820 | * Note: tan(x+y) = tan(x) + tan'(x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 821 | * ~ tan(x) + (1+x*x)*y [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 822 | * Therefore, for better accuracy in computing tan(x+y), let [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 823 | * 3 2 2 2 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 824 | * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 825 | * then [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 826 | * 3 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 827 | * tan(x+y) = x + (T1*x + (x *(r+y)+y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 828 | * [ 4237s] | ~ [ 4237s] 829 | * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 830 | * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 831 | * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 832 | */ [ 4237s] | ~~ [ 4237s] 833 | double __kernel_tan(double x, double y, int iy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 834 | { [ 4237s] | ~ [ 4237s] 835 | constexpr double xxx[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 836 | 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 837 | 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 838 | 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 839 | 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 840 | 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 841 | 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 842 | 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 843 | 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 844 | 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 845 | 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 846 | 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 847 | -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 848 | 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 849 | /* one */ 1.00000000000000000000e+00, /* 3FF00000, 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 850 | /* pio4 */ 7.85398163397448278999e-01, /* 3FE921FB, 54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 851 | /* pio4lo */ 3.06161699786838301793e-17 /* 3C81A626, 33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 852 | }; [ 4237s] | ~~ [ 4237s] 853 | #define one xxx[13] [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 854 | #define pio4 xxx[14] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 855 | #define pio4lo xxx[15] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 856 | #define T xxx [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 857 | [ 4237s] | [ 4237s] 858 | double z, r, v, w, s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 859 | int32_t ix, hx; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 860 | [ 4237s] | [ 4237s] 861 | GET_HIGH_WORD(hx, x); /* high word of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 862 | ix = hx & 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 863 | if (ix < 0x3E300000 && static_cast(x) == 0) { /* x < 2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 864 | /* generate inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 865 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 866 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 867 | if (((ix | low) | (iy + 1)) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 868 | return one / fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 869 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 870 | if (iy == 1) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 871 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 872 | } else { /* compute -1 / (x+y) carefully */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 873 | double a, t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 874 | [ 4237s] | [ 4237s] 875 | z = w = x + y; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 876 | SET_LOW_WORD(z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 877 | v = y - (z - x); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 878 | t = a = -one / w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 879 | SET_LOW_WORD(t, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 880 | s = one + t * z; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 881 | return t + a * (s + t * v); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 882 | } [ 4237s] | ~ [ 4237s] 883 | } [ 4237s] | ~ [ 4237s] 884 | } [ 4237s] | ~ [ 4237s] 885 | if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 886 | if (hx < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 887 | x = -x; [ 4237s] | ~~~~~~~ [ 4237s] 888 | y = -y; [ 4237s] | ~~~~~~~ [ 4237s] 889 | } [ 4237s] | ~ [ 4237s] 890 | z = pio4 - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 891 | w = pio4lo - y; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 892 | x = z + w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 893 | y = 0.0; [ 4237s] | ~~~~~~~~ [ 4237s] 894 | } [ 4237s] | ~ [ 4237s] 895 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 896 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 897 | /* [ 4237s] | ~~ [ 4237s] 898 | * Break x^5*(T[1]+x^2*T[2]+...) into [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 899 | * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 900 | * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 901 | */ [ 4237s] | ~~ [ 4237s] 902 | r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 903 | v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 904 | s = z * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 905 | r = y + z * (s * (r + v) + y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 906 | r += T[0] * s; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 907 | w = x + r; [ 4237s] | ~~~~~~~~~~ [ 4237s] 908 | if (ix >= 0x3FE59428) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 909 | v = iy; [ 4237s] | ~~~~~~~ [ 4237s] 910 | return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 911 | } [ 4237s] | ~ [ 4237s] 912 | if (iy == 1) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 913 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 914 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 915 | /* [ 4237s] | ~~ [ 4237s] 916 | * if allow error up to 2 ulp, simply return [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 917 | * -1.0 / (x+r) here [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 918 | */ [ 4237s] | ~~ [ 4237s] 919 | /* compute -1.0 / (x+r) accurately */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 920 | double a, t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 921 | z = w; [ 4237s] | ~~~~~~ [ 4237s] 922 | SET_LOW_WORD(z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 923 | v = r - (z - x); /* z+v = r+x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 924 | t = a = -1.0 / w; /* a = -1.0/w */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 925 | SET_LOW_WORD(t, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 926 | s = 1.0 + t * z; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 927 | return t + a * (s + t * v); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 928 | } [ 4237s] | ~ [ 4237s] 929 | [ 4237s] | [ 4237s] 930 | #undef one [ 4237s] | ~~~~~~~~~~ [ 4237s] 931 | #undef pio4 [ 4237s] | ~~~~~~~~~~~ [ 4237s] 932 | #undef pio4lo [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 933 | #undef T [ 4237s] | ~~~~~~~~ [ 4237s] 934 | } [ 4237s] | ~ [ 4237s] 935 | [ 4237s] | [ 4237s] 936 | } // namespace [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 937 | [ 4237s] | [ 4237s] 938 | /* acos(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 939 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 940 | * acos(x) = pi/2 - asin(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 941 | * acos(-x) = pi/2 + asin(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 942 | * For |x|<=0.5 [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 943 | * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 944 | * For x>0.5 [ 4237s] | ~~~~~~~~~~~ [ 4237s] 945 | * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 946 | * = 2asin(sqrt((1-x)/2)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 947 | * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 948 | * = 2f + (2c + 2s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 949 | * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 950 | * for f so that f+c ~ sqrt(z). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 951 | * For x<-0.5 [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 952 | * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 953 | * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 954 | * [ 4237s] | ~ [ 4237s] 955 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 956 | * if x is NaN, return x itself; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 957 | * if |x|>1, return NaN with invalid signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 958 | * [ 4237s] | ~ [ 4237s] 959 | * Function needed: sqrt [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 960 | */ [ 4237s] | ~~ [ 4237s] 961 | double acos(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 962 | { [ 4237s] | ~ [ 4237s] 963 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 964 | one [ 4237s] | ~~~ [ 4237s] 965 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 966 | pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 967 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 968 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 969 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 970 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 971 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 972 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 973 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 974 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 975 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 976 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 977 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 978 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 979 | [ 4237s] | [ 4237s] 980 | double z, p, q, r, w, s, c, df; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 981 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 982 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 983 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 984 | if (ix >= 0x3FF00000) { /* |x| >= 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 985 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 986 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 987 | if (((ix - 0x3FF00000) | lx) == 0) { /* |x|==1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 988 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 989 | return 0.0; /* acos(1) = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 990 | else [ 4237s] | ~~~~ [ 4237s] 991 | return pi + 2.0 * pio2_lo; /* acos(-1)= pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 992 | } [ 4237s] | ~ [ 4237s] 993 | return (x - x) / (x - x); /* acos(|x|>1) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 994 | } [ 4237s] | ~ [ 4237s] 995 | if (ix < 0x3FE00000) { /* |x| < 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 996 | if (ix <= 0x3C600000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 997 | return pio2_hi + pio2_lo; /*if|x|<2**-57*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 998 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 999 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1000 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1001 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1002 | return pio2_hi - (x - (pio2_lo - x * r)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1003 | } else if (hx < 0) { /* x < -0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1004 | z = (one + x) * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1005 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1006 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1007 | s = sqrt(z); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1008 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1009 | w = r * s - pio2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1010 | return pi - 2.0 * (s + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1011 | } else { /* x > 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1012 | z = (one - x) * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1013 | s = sqrt(z); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1014 | df = s; [ 4237s] | ~~~~~~~ [ 4237s] 1015 | SET_LOW_WORD(df, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1016 | c = (z - df * df) / (s + df); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1017 | p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1018 | q = one + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1019 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1020 | w = r * s + c; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1021 | return 2.0 * (df + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1022 | } [ 4237s] | ~ [ 4237s] 1023 | } [ 4237s] | ~ [ 4237s] 1024 | [ 4237s] | [ 4237s] 1025 | /* acosh(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1026 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1027 | * Based on [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1028 | * acosh(x) = log [ x + sqrt(x*x-1) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1029 | * we have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1030 | * acosh(x) := log(x)+ln2, if x is large; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1031 | * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1032 | * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1033 | * [ 4237s] | ~ [ 4237s] 1034 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1035 | * acosh(x) is NaN with signal if x<1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1036 | * acosh(NaN) is NaN without signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1037 | */ [ 4237s] | ~~ [ 4237s] 1038 | double acosh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1039 | { [ 4237s] | ~ [ 4237s] 1040 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1041 | one [ 4237s] | ~~~ [ 4237s] 1042 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 1043 | ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1044 | double t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1045 | int32_t hx; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1046 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1047 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1048 | if (hx < 0x3FF00000) { /* x < 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1049 | return (x - x) / (x - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1050 | } else if (hx >= 0x41B00000) { /* x > 2**28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1051 | if (hx >= 0x7FF00000) { /* x is inf of NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1052 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1053 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1054 | return log(x) + ln2; /* acosh(huge)=log(2x) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1055 | } [ 4237s] | ~ [ 4237s] 1056 | } else if (((hx - 0x3FF00000) | lx) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1057 | return 0.0; /* acosh(1) = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1058 | } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1059 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1060 | return log(2.0 * x - one / (x + sqrt(t - one))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1061 | } else { /* 10.98 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1081 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1082 | * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1083 | * For x<=0.98, let pio4_hi = pio2_hi/2, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1084 | * f = hi part of s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1085 | * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1086 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 1087 | * asin(x) = pi/2 - 2*(s+s*z*R(z)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1088 | * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1089 | * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1090 | * [ 4237s] | ~ [ 4237s] 1091 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1092 | * if x is NaN, return x itself; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1093 | * if |x|>1, return NaN with invalid signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1094 | */ [ 4237s] | ~~ [ 4237s] 1095 | double asin(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1096 | { [ 4237s] | ~ [ 4237s] 1097 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1098 | one [ 4237s] | ~~~ [ 4237s] 1099 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1100 | huge = 1.000e+300, [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1101 | pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1102 | pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1103 | pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1104 | /* coefficient for R(x^2) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1105 | pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1106 | pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1107 | pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1108 | pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1109 | pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1110 | pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1111 | qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1112 | qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1113 | qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1114 | qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1115 | [ 4237s] | [ 4237s] 1116 | double t, w, p, q, c, r, s; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1117 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1118 | [ 4237s] | [ 4237s] 1119 | t = 0; [ 4237s] | ~~~~~~ [ 4237s] 1120 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1121 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1122 | if (ix >= 0x3FF00000) { /* |x|>= 1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1123 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1124 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1125 | if (((ix - 0x3FF00000) | lx) == 0) /* asin(1)=+-pi/2 with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1126 | return x * pio2_hi + x * pio2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1127 | return (x - x) / (x - x); /* asin(|x|>1) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1128 | } else if (ix < 0x3FE00000) { /* |x|<0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1129 | if (ix < 0x3E400000 && huge + x > one) { /* if |x| < 2**-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1130 | return x; /* return x with inexact if x!=0*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1131 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1132 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1133 | } [ 4237s] | ~ [ 4237s] 1134 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1135 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1136 | w = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1137 | return x + x * w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1138 | } [ 4237s] | ~ [ 4237s] 1139 | /* 1> |x|>= 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1140 | w = one - fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1141 | t = w * 0.5; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1142 | p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1143 | q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1144 | s = sqrt(t); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1145 | if (ix >= 0x3FEF3333) { /* if |x| > 0.975 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1146 | w = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1147 | t = pio2_hi - (2.0 * (s + s * w) - pio2_lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1148 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1149 | w = s; [ 4237s] | ~~~~~~ [ 4237s] 1150 | SET_LOW_WORD(w, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1151 | c = (t - w * w) / (s + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1152 | r = p / q; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1153 | p = 2.0 * s * r - (pio2_lo - 2.0 * c); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1154 | q = pio4_hi - 2.0 * w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1155 | t = pio4_hi - (p - q); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1156 | } [ 4237s] | ~ [ 4237s] 1157 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1158 | return t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1159 | else [ 4237s] | ~~~~ [ 4237s] 1160 | return -t; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1161 | } [ 4237s] | ~ [ 4237s] 1162 | /* asinh(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1163 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1164 | * Based on [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1165 | * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1166 | * we have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1167 | * asinh(x) := x if 1+x*x=1, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1168 | * := sign(x)*(log(x)+ln2)) for large |x|, else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1169 | * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1170 | * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1171 | */ [ 4237s] | ~~ [ 4237s] 1172 | double asinh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1173 | { [ 4237s] | ~ [ 4237s] 1174 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1175 | one [ 4237s] | ~~~ [ 4237s] 1176 | = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1177 | ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1178 | huge = 1.00000000000000000000e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1179 | [ 4237s] | [ 4237s] 1180 | double t, w; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1181 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1182 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1183 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1184 | if (ix >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1185 | return x + x; /* x is inf or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1186 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1187 | return x; /* return x inexact except 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1188 | } [ 4237s] | ~ [ 4237s] 1189 | if (ix > 0x41B00000) { /* |x| > 2**28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1190 | w = log(fabs(x)) + ln2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1191 | } else if (ix > 0x40000000) { /* 2**28 > |x| > 2.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1192 | t = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1193 | w = log(2.0 * t + one / (sqrt(x * x + one) + t)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1194 | } else { /* 2.0 > |x| > 2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1195 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1196 | w = log1p(fabs(x) + t / (one + sqrt(one + t))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1197 | } [ 4237s] | ~ [ 4237s] 1198 | if (hx > 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1199 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 1200 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1201 | return -w; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1202 | } [ 4237s] | ~ [ 4237s] 1203 | } [ 4237s] | ~ [ 4237s] 1204 | [ 4237s] | [ 4237s] 1205 | /* atan(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 1206 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 1207 | * 1. Reduce x to positive by atan(x) = -atan(-x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1208 | * 2. According to the integer k=4t+0.25 chopped, t=x, the argument [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1209 | * is further reduced to one of the following intervals and the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1210 | * arctangent of t is evaluated by the corresponding formula: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1211 | * [ 4237s] | ~ [ 4237s] 1212 | * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1213 | * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1214 | * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1215 | * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1216 | * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1217 | * [ 4237s] | ~ [ 4237s] 1218 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1219 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1220 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1221 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1222 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1223 | */ [ 4237s] | ~~ [ 4237s] 1224 | double atan(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1225 | { [ 4237s] | ~ [ 4237s] 1226 | constexpr double atanhi[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1227 | 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1228 | 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1229 | 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1230 | 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1231 | }; [ 4237s] | ~~ [ 4237s] 1232 | [ 4237s] | [ 4237s] 1233 | constexpr double atanlo[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1234 | 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1235 | 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1236 | 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1237 | 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1238 | }; [ 4237s] | ~~ [ 4237s] 1239 | [ 4237s] | [ 4237s] 1240 | constexpr double aT[] = { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1241 | 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1242 | -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1243 | 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1244 | -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1245 | 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1246 | -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1247 | 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1248 | -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1249 | 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1250 | -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1251 | 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1252 | }; [ 4237s] | ~~ [ 4237s] 1253 | [ 4237s] | [ 4237s] 1254 | constexpr double one = 1.0, huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1255 | [ 4237s] | [ 4237s] 1256 | double w, s1, s2, z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1257 | int32_t ix, hx, id; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1258 | [ 4237s] | [ 4237s] 1259 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1260 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1261 | if (ix >= 0x44100000) { /* if |x| >= 2^66 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1262 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1263 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1264 | if (ix > 0x7FF00000 || (ix == 0x7FF00000 && (low != 0))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1265 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1266 | if (hx > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1267 | return atanhi[3] + *(volatile double *)&atanlo[3]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1268 | else [ 4237s] | ~~~~ [ 4237s] 1269 | return -atanhi[3] - *(volatile double *)&atanlo[3]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1270 | } [ 4237s] | ~ [ 4237s] 1271 | if (ix < 0x3FDC0000) { /* |x| < 0.4375 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1272 | if (ix < 0x3E400000 && huge + x > one) { /* |x| < 2^-27 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1273 | return x; /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1274 | } [ 4237s] | ~ [ 4237s] 1275 | id = -1; [ 4237s] | ~~~~~~~~ [ 4237s] 1276 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1277 | x = fabs(x); [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1278 | if (ix < 0x3FF30000) { /* |x| < 1.1875 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1279 | if (ix < 0x3FE60000) { /* 7/16 <=|x|<11/16 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1280 | id = 0; [ 4237s] | ~~~~~~~ [ 4237s] 1281 | x = (2.0 * x - one) / (2.0 + x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1282 | } else { /* 11/16<=|x|< 19/16 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1283 | id = 1; [ 4237s] | ~~~~~~~ [ 4237s] 1284 | x = (x - one) / (x + one); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1285 | } [ 4237s] | ~ [ 4237s] 1286 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1287 | if (ix < 0x40038000) { /* |x| < 2.4375 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1288 | id = 2; [ 4237s] | ~~~~~~~ [ 4237s] 1289 | x = (x - 1.5) / (one + 1.5 * x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1290 | } else { /* 2.4375 <= |x| < 2^66 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1291 | id = 3; [ 4237s] | ~~~~~~~ [ 4237s] 1292 | x = -1.0 / x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1293 | } [ 4237s] | ~ [ 4237s] 1294 | } [ 4237s] | ~ [ 4237s] 1295 | } [ 4237s] | ~ [ 4237s] 1296 | /* end of argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1297 | z = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1298 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1299 | /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1300 | s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1301 | s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1302 | if (id < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1303 | return x - x * (s1 + s2); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1304 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1305 | z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1306 | return (hx < 0) ? -z : z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1307 | } [ 4237s] | ~ [ 4237s] 1308 | } [ 4237s] | ~ [ 4237s] 1309 | [ 4237s] | [ 4237s] 1310 | /* atan2(y,x) [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1311 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1312 | * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1313 | * 2. Reduce x to positive by (if x and y are unexceptional): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1314 | * ARG (x+iy) = arctan(y/x) ... if x > 0, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1315 | * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1316 | * [ 4237s] | ~ [ 4237s] 1317 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1318 | * [ 4237s] | ~ [ 4237s] 1319 | * ATAN2((anything), NaN ) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1320 | * ATAN2(NAN , (anything) ) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1321 | * ATAN2(+-0, +(anything but NaN)) is +-0 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1322 | * ATAN2(+-0, -(anything but NaN)) is +-pi ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1323 | * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1324 | * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1325 | * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1326 | * ATAN2(+-INF,+INF ) is +-pi/4 ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1327 | * ATAN2(+-INF,-INF ) is +-3pi/4; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1328 | * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1329 | * [ 4237s] | ~ [ 4237s] 1330 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1331 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1332 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1333 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1334 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1335 | */ [ 4237s] | ~~ [ 4237s] 1336 | double atan2(double y, double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1337 | { [ 4237s] | ~ [ 4237s] 1338 | constexpr volatile double tiny = 1.0e-300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1339 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1340 | zero [ 4237s] | ~~~~ [ 4237s] 1341 | = 0.0, [ 4237s] | ~~~~~~ [ 4237s] 1342 | pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1343 | pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1344 | pi = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1345 | constexpr volatile double pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1346 | [ 4237s] | [ 4237s] 1347 | double z; [ 4237s] | ~~~~~~~~~ [ 4237s] 1348 | int32_t k, m, hx, hy, ix, iy; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1349 | uint32_t lx, ly; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1350 | [ 4237s] | [ 4237s] 1351 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1352 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1353 | EXTRACT_WORDS(hy, ly, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1354 | iy = hy & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1355 | if (((ix | ((lx | -static_cast(lx)) >> 31)) > 0x7FF00000) || ((iy | ((ly | -static_cast(ly)) >> 31)) > 0x7FF00000)) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1356 | return x + y; /* x or y is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1357 | } [ 4237s] | ~ [ 4237s] 1358 | if (((hx - 0x3FF00000) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1359 | return atan(y); /* x=1.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1360 | m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1361 | [ 4237s] | [ 4237s] 1362 | /* when y = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1363 | if ((iy | ly) == 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1364 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1365 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1366 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1367 | return y; /* atan(+-0,+anything)=+-0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1368 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1369 | return pi + tiny; /* atan(+0,-anything) = pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1370 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1371 | return -pi - tiny; /* atan(-0,-anything) =-pi */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1372 | } [ 4237s] | ~ [ 4237s] 1373 | } [ 4237s] | ~ [ 4237s] 1374 | /* when x = 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1375 | if ((ix | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1376 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1377 | [ 4237s] | [ 4237s] 1378 | /* when x is INF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1379 | if (ix == 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1380 | if (iy == 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1381 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1382 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1383 | return pi_o_4 + tiny; /* atan(+INF,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1384 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1385 | return -pi_o_4 - tiny; /* atan(-INF,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1386 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1387 | return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1388 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1389 | return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1390 | } [ 4237s] | ~ [ 4237s] 1391 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1392 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1393 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1394 | return zero; /* atan(+...,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1395 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1396 | return -zero; /* atan(-...,+INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1397 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1398 | return pi + tiny; /* atan(+...,-INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1399 | case 3: [ 4237s] | ~~~~~~~ [ 4237s] 1400 | return -pi - tiny; /* atan(-...,-INF) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1401 | } [ 4237s] | ~ [ 4237s] 1402 | } [ 4237s] | ~ [ 4237s] 1403 | } [ 4237s] | ~ [ 4237s] 1404 | /* when y is INF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1405 | if (iy == 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1406 | return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1407 | [ 4237s] | [ 4237s] 1408 | /* compute y/x */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1409 | k = (iy - ix) >> 20; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1410 | if (k > 60) { /* |y/x| > 2**60 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1411 | z = pi_o_2 + 0.5 * pi_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1412 | m &= 1; [ 4237s] | ~~~~~~~ [ 4237s] 1413 | } else if (hx < 0 && k < -60) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1414 | z = 0.0; /* 0 > |y|/x > -2**-60 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1415 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1416 | z = atan(fabs(y / x)); /* safe to do y/x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1417 | } [ 4237s] | ~ [ 4237s] 1418 | switch (m) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1419 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1420 | return z; /* atan(+,+) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1421 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1422 | return -z; /* atan(-,+) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1423 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1424 | return pi - (z - pi_lo); /* atan(+,-) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1425 | default: /* case 3 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1426 | return (z - pi_lo) - pi; /* atan(-,-) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1427 | } [ 4237s] | ~ [ 4237s] 1428 | } [ 4237s] | ~ [ 4237s] 1429 | [ 4237s] | [ 4237s] 1430 | /* cos(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1431 | * Return cosine function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1432 | * [ 4237s] | ~ [ 4237s] 1433 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1434 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1435 | * __kernel_cos ... cosine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1436 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1437 | * [ 4237s] | ~ [ 4237s] 1438 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 1439 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1440 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1441 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1442 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1443 | * [ 4237s] | ~ [ 4237s] 1444 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1445 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1446 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1447 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1448 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1449 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1450 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1451 | * [ 4237s] | ~ [ 4237s] 1452 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1453 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1454 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1455 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1456 | * [ 4237s] | ~ [ 4237s] 1457 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1458 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1459 | */ [ 4237s] | ~~ [ 4237s] 1460 | double cos(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1461 | { [ 4237s] | ~ [ 4237s] 1462 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1463 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1464 | [ 4237s] | [ 4237s] 1465 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1466 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1467 | [ 4237s] | [ 4237s] 1468 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1469 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1470 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1471 | return __kernel_cos(x, z); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1472 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1473 | /* cos(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1474 | return x - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1475 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1476 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1477 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1478 | switch (n & 3) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1479 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 1480 | return __kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1481 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 1482 | return -__kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1483 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 1484 | return -__kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1485 | default: [ 4237s] | ~~~~~~~~ [ 4237s] 1486 | return __kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1487 | } [ 4237s] | ~ [ 4237s] 1488 | } [ 4237s] | ~ [ 4237s] 1489 | } [ 4237s] | ~ [ 4237s] 1490 | [ 4237s] | [ 4237s] 1491 | /* exp(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1492 | * Returns the exponential of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1493 | * [ 4237s] | ~ [ 4237s] 1494 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 1495 | * 1. Argument reduction: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1496 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1497 | * Given x, find r and integer k such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1498 | * [ 4237s] | ~ [ 4237s] 1499 | * x = k*ln2 + r, |r| <= 0.5*ln2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1500 | * [ 4237s] | ~ [ 4237s] 1501 | * Here r will be represented as r = hi-lo for better [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1502 | * accuracy. [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1503 | * [ 4237s] | ~ [ 4237s] 1504 | * 2. Approximation of exp(r) by a special rational function on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1505 | * the interval [0,0.34658]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1506 | * Write [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1507 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1508 | * We use a special Remes algorithm on [0,0.34658] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1509 | * a polynomial of degree 5 to approximate R. The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1510 | * of this polynomial approximation is bounded by 2**-59. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1511 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1512 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1513 | * (where z=r*r, and the values of P1 to P5 are listed below) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1514 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 1515 | * | 5 | -59 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1516 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1517 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1518 | * The computation of exp(r) thus becomes [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1519 | * 2*r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1520 | * exp(r) = 1 + ------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1521 | * R - r [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1522 | * r*R1(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1523 | * = 1 + r + ----------- (for better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1524 | * 2 - R1(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1525 | * where [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1526 | * 2 4 10 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1527 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1528 | * [ 4237s] | ~ [ 4237s] 1529 | * 3. Scale back to obtain exp(x): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1530 | * From step 1, we have [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1531 | * exp(x) = 2^k * exp(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1532 | * [ 4237s] | ~ [ 4237s] 1533 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1534 | * exp(INF) is INF, exp(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1535 | * exp(-INF) is 0, and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1536 | * for finite argument, only exp(0)=1 is exact. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1537 | * [ 4237s] | ~ [ 4237s] 1538 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1539 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1540 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1541 | * [ 4237s] | ~ [ 4237s] 1542 | * Misc. info. [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1543 | * For IEEE double [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1544 | * if x > 7.09782712893383973096e+02 then exp(x) overflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1545 | * if x < -7.45133219101941108420e+02 then exp(x) underflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1546 | * [ 4237s] | ~ [ 4237s] 1547 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1548 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1549 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1550 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1551 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1552 | */ [ 4237s] | ~~ [ 4237s] 1553 | double exp(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1554 | { [ 4237s] | ~ [ 4237s] 1555 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1556 | one [ 4237s] | ~~~ [ 4237s] 1557 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 1558 | halF[2] = { 0.5, -0.5 }, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1559 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1560 | u_threshold = -7.45133219101941108420e+02, /* 0xC0874910, 0xD52D3051 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1561 | ln2HI[2] = { 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1562 | -6.93147180369123816490e-01 }, /* 0xBFE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1563 | ln2LO[2] = { 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1564 | -1.90821492927058770002e-10 }, /* 0xBDEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1565 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1566 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1567 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1568 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1569 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1570 | P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1571 | E = 2.718281828459045; /* 0x4005BF0A, 0x8B145769 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1572 | [ 4237s] | [ 4237s] 1573 | constexpr volatile double [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1574 | huge [ 4237s] | ~~~~ [ 4237s] 1575 | = 1.0e+300, [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1576 | twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1577 | two1023 = 8.988465674311579539e307; /* 0x1p1023 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1578 | [ 4237s] | [ 4237s] 1579 | double y, hi = 0.0, lo = 0.0, c, t, twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1580 | int32_t k = 0, xsb; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1581 | uint32_t hx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1582 | [ 4237s] | [ 4237s] 1583 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1584 | xsb = (hx >> 31) & 1; /* sign bit of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1585 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1586 | [ 4237s] | [ 4237s] 1587 | /* filter out non-finite argument */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1588 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1589 | if (hx >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1590 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1591 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1592 | if (((hx & 0xFFFFF) | lx) != 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1593 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1594 | else [ 4237s] | ~~~~ [ 4237s] 1595 | return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1596 | } [ 4237s] | ~ [ 4237s] 1597 | if (x > o_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1598 | return huge * huge; /* overflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1599 | if (x < u_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1600 | return twom1000 * twom1000; /* underflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1601 | } [ 4237s] | ~ [ 4237s] 1602 | [ 4237s] | [ 4237s] 1603 | /* argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1604 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1605 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1606 | /* TODO(rtoy): We special case exp(1) here to return the correct [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1607 | * value of E, as the computation below would get the last bit [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1608 | * wrong. We should probably fix the algorithm instead. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1609 | */ [ 4237s] | ~~ [ 4237s] 1610 | if (x == 1.0) [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1611 | return E; [ 4237s] | ~~~~~~~~~ [ 4237s] 1612 | hi = x - ln2HI[xsb]; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1613 | lo = ln2LO[xsb]; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1614 | k = 1 - xsb - xsb; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1615 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1616 | k = static_cast(invln2 * x + halF[xsb]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1617 | t = k; [ 4237s] | ~~~~~~ [ 4237s] 1618 | hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1619 | lo = t * ln2LO[0]; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1620 | } [ 4237s] | ~ [ 4237s] 1621 | STRICT_ASSIGN(double, x, hi - lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1622 | } else if (hx < 0x3E300000) { /* when |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1623 | if (huge + x > one) [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1624 | return one + x; /* trigger inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1625 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1626 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1627 | } [ 4237s] | ~ [ 4237s] 1628 | [ 4237s] | [ 4237s] 1629 | /* x is now in primary range */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1630 | t = x * x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1631 | if (k >= -1021) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1632 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1633 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1634 | INSERT_WORDS(twopk, 0x3FF00000 + ((k + 1000) << 20), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1635 | } [ 4237s] | ~ [ 4237s] 1636 | c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1637 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1638 | return one - ((x * c) / (c - 2.0) - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1639 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1640 | y = one - ((lo - (x * c) / (2.0 - c)) - hi); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1641 | } [ 4237s] | ~ [ 4237s] 1642 | if (k >= -1021) { [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1643 | if (k == 1024) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1644 | return y * 2.0 * two1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1645 | return y * twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1646 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1647 | return y * twopk * twom1000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1648 | } [ 4237s] | ~ [ 4237s] 1649 | } [ 4237s] | ~ [ 4237s] 1650 | [ 4237s] | [ 4237s] 1651 | /* [ 4237s] | ~~ [ 4237s] 1652 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1653 | * 1.Reduced x to positive by atanh(-x) = -atanh(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1654 | * 2.For x>=0.5 [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1655 | * 1 2x x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1656 | * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1657 | * 2 1 - x 1 - x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1658 | * [ 4237s] | ~ [ 4237s] 1659 | * For x<0.5 [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1660 | * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1661 | * [ 4237s] | ~ [ 4237s] 1662 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1663 | * atanh(x) is NaN if |x| > 1 with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1664 | * atanh(NaN) is that NaN with no signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1665 | * atanh(+-1) is +-INF with signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1666 | * [ 4237s] | ~ [ 4237s] 1667 | */ [ 4237s] | ~~ [ 4237s] 1668 | double atanh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1669 | { [ 4237s] | ~ [ 4237s] 1670 | constexpr double one = 1.0, huge = 1e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1671 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1672 | [ 4237s] | [ 4237s] 1673 | double t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1674 | int32_t hx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1675 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1676 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1677 | ix = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1678 | if ((ix | ((lx | -static_cast(lx)) >> 31)) > 0x3FF00000) /* |x|>1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1679 | return (x - x) / (x - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1680 | if (ix == 0x3FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1681 | return x / zero; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1682 | if (ix < 0x3E300000 && (huge + x) > zero) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1683 | return x; /* x<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1684 | SET_HIGH_WORD(x, ix); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1685 | if (ix < 0x3FE00000) { /* x < 0.5 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1686 | t = x + x; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1687 | t = 0.5 * log1p(t + t * x / (one - x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1688 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1689 | t = 0.5 * log1p((x + x) / (one - x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1690 | } [ 4237s] | ~ [ 4237s] 1691 | if (hx >= 0) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1692 | return t; [ 4237s] | ~~~~~~~~~ [ 4237s] 1693 | else [ 4237s] | ~~~~ [ 4237s] 1694 | return -t; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1695 | } [ 4237s] | ~ [ 4237s] 1696 | [ 4237s] | [ 4237s] 1697 | /* log(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 1698 | * Return the logrithm of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1699 | * [ 4237s] | ~ [ 4237s] 1700 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1701 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1702 | * x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1703 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1704 | * [ 4237s] | ~ [ 4237s] 1705 | * 2. Approximation of log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1706 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1707 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1708 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1709 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1710 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1711 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1712 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1713 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1714 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1715 | * (the values of Lg1 to Lg7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1716 | * and [ 4237s] | ~~~~~~ [ 4237s] 1717 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1718 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1719 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1720 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1721 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1722 | * by [ 4237s] | ~~~~~ [ 4237s] 1723 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1724 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1725 | * [ 4237s] | ~ [ 4237s] 1726 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1727 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1728 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1729 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1730 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1731 | * [ 4237s] | ~ [ 4237s] 1732 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1733 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1734 | * log(+INF) is +INF; log(0) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1735 | * log(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1736 | * [ 4237s] | ~ [ 4237s] 1737 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1738 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1739 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1740 | * [ 4237s] | ~ [ 4237s] 1741 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1742 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1743 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1744 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1745 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1746 | */ [ 4237s] | ~~ [ 4237s] 1747 | double log(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1748 | { [ 4237s] | ~ [ 4237s] 1749 | constexpr double /* -- */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1750 | ln2_hi [ 4237s] | ~~~~~~ [ 4237s] 1751 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1752 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1753 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1754 | Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1755 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1756 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1757 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1758 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1759 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1760 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1761 | [ 4237s] | [ 4237s] 1762 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1763 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1764 | [ 4237s] | [ 4237s] 1765 | double hfsq, f, s, z, R, w, t1, t2, dk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1766 | int32_t k, hx, i, j; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1767 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1768 | [ 4237s] | [ 4237s] 1769 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1770 | [ 4237s] | [ 4237s] 1771 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1772 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1773 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1774 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1775 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1776 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1777 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 1778 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1779 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1780 | } [ 4237s] | ~ [ 4237s] 1781 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1782 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1783 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1784 | hx &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1785 | i = (hx + 0x95F64) & 0x100000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1786 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1787 | k += (i >> 20); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1788 | f = x - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1789 | if ((0x000FFFFF & (2 + hx)) < 3) { /* -2**-20 <= f < 2**-20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1790 | if (f == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1791 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1792 | return zero; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1793 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1794 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1795 | return dk * ln2_hi + dk * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1796 | } [ 4237s] | ~ [ 4237s] 1797 | } [ 4237s] | ~ [ 4237s] 1798 | R = f * f * (0.5 - 0.33333333333333333 * f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1799 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1800 | return f - R; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1801 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1802 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1803 | return dk * ln2_hi - ((R - dk * ln2_lo) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1804 | } [ 4237s] | ~ [ 4237s] 1805 | } [ 4237s] | ~ [ 4237s] 1806 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1807 | dk = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1808 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1809 | i = hx - 0x6147A; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1810 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1811 | j = 0x6B851 - hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1812 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1813 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1814 | i |= j; [ 4237s] | ~~~~~~~ [ 4237s] 1815 | R = t2 + t1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1816 | if (i > 0) { [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1817 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1818 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1819 | return f - (hfsq - s * (hfsq + R)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1820 | else [ 4237s] | ~~~~ [ 4237s] 1821 | return dk * ln2_hi - ((hfsq - (s * (hfsq + R) + dk * ln2_lo)) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1822 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1823 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1824 | return f - s * (f - R); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1825 | else [ 4237s] | ~~~~ [ 4237s] 1826 | return dk * ln2_hi - ((s * (f - R) - dk * ln2_lo) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1827 | } [ 4237s] | ~ [ 4237s] 1828 | } [ 4237s] | ~ [ 4237s] 1829 | [ 4237s] | [ 4237s] 1830 | /* double log1p(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1831 | * [ 4237s] | ~ [ 4237s] 1832 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 1833 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1834 | * 1+x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1835 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1836 | * [ 4237s] | ~ [ 4237s] 1837 | * Note. If k=0, then f=x is exact. However, if k!=0, then f [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1838 | * may not be representable exactly. In that case, a correction [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1839 | * term is need. Let u=1+x rounded. Let c = (1+x)-u, then [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1840 | * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1841 | * and add back the correction term c/u. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1842 | * (Note: when x > 2**53, one can simply return log(x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1843 | * [ 4237s] | ~ [ 4237s] 1844 | * 2. Approximation of log1p(f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1845 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1846 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1847 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1848 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1849 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1850 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1851 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 1852 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1853 | * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1854 | * (the values of Lp1 to Lp7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1855 | * and [ 4237s] | ~~~~~~ [ 4237s] 1856 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1857 | * | Lp1*s +...+Lp7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1858 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1859 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1860 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1861 | * by [ 4237s] | ~~~~~ [ 4237s] 1862 | * log1p(f) = f - (hfsq - s*(hfsq+R)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1863 | * [ 4237s] | ~ [ 4237s] 1864 | * 3. Finally, log1p(x) = k*ln2 + log1p(f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1865 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1866 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1867 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1868 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1869 | * [ 4237s] | ~ [ 4237s] 1870 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1871 | * log1p(x) is NaN with signal if x < -1 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1872 | * log1p(+INF) is +INF; log1p(-1) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1873 | * log1p(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1874 | * [ 4237s] | ~ [ 4237s] 1875 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1876 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1877 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1878 | * [ 4237s] | ~ [ 4237s] 1879 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1880 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1881 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1882 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1883 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1884 | * [ 4237s] | ~ [ 4237s] 1885 | * Note: Assuming log() return accurate answer, the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1886 | * algorithm can be used to compute log1p(x) to within a few ULP: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1887 | * [ 4237s] | ~ [ 4237s] 1888 | * u = 1+x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1889 | * if(u==1.0) return x ; else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1890 | * return log(u)*(x/(u-1.0)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1891 | * [ 4237s] | ~ [ 4237s] 1892 | * See HP-15C Advanced Functions Handbook, p.193. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1893 | */ [ 4237s] | ~~ [ 4237s] 1894 | double log1p(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1895 | { [ 4237s] | ~ [ 4237s] 1896 | constexpr double /* -- */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1897 | ln2_hi [ 4237s] | ~~~~~~ [ 4237s] 1898 | = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1899 | ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1900 | two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1901 | Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1902 | Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1903 | Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1904 | Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1905 | Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1906 | Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1907 | Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1908 | [ 4237s] | [ 4237s] 1909 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1910 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1911 | [ 4237s] | [ 4237s] 1912 | double hfsq, f, c, s, z, R, u; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1913 | int32_t k, hx, hu, ax; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1914 | [ 4237s] | [ 4237s] 1915 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1916 | ax = hx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1917 | [ 4237s] | [ 4237s] 1918 | c = 0; [ 4237s] | ~~~~~~ [ 4237s] 1919 | k = 1; [ 4237s] | ~~~~~~ [ 4237s] 1920 | if (hx < 0x3FDA827A) { /* 1+x < sqrt(2)+ */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1921 | if (ax >= 0x3FF00000) { /* x <= -1.0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1922 | if (x == -1.0) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 1923 | return -two54 / vzero; /* log1p(-1)=+inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1924 | else [ 4237s] | ~~~~ [ 4237s] 1925 | return (x - x) / (x - x); /* log1p(x<-1)=NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1926 | } [ 4237s] | ~ [ 4237s] 1927 | if (ax < 0x3E200000) { /* |x| < 2**-29 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1928 | if (two54 + x > zero /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1929 | && ax < 0x3C900000) /* |x| < 2**-54 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1930 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 1931 | else [ 4237s] | ~~~~ [ 4237s] 1932 | return x - x * x * 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1933 | } [ 4237s] | ~ [ 4237s] 1934 | if (hx > 0 || hx <= static_cast(0xBFD2BEC4)) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1935 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 1936 | f = x; [ 4237s] | ~~~~~~ [ 4237s] 1937 | hu = 1; [ 4237s] | ~~~~~~~ [ 4237s] 1938 | } /* sqrt(2)/2- <= 1+x < sqrt(2)+ */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1939 | } [ 4237s] | ~ [ 4237s] 1940 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1941 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1942 | if (k != 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1943 | if (hx < 0x43400000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1944 | STRICT_ASSIGN(double, u, 1.0 + x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1945 | GET_HIGH_WORD(hu, u); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1946 | k = (hu >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1947 | c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1948 | c /= u; [ 4237s] | ~~~~~~~ [ 4237s] 1949 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1950 | u = x; [ 4237s] | ~~~~~~ [ 4237s] 1951 | GET_HIGH_WORD(hu, u); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1952 | k = (hu >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1953 | c = 0; [ 4237s] | ~~~~~~ [ 4237s] 1954 | } [ 4237s] | ~ [ 4237s] 1955 | hu &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 1956 | /* [ 4237s] | ~~ [ 4237s] 1957 | * The approximation to sqrt(2) used in thresholds is not [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1958 | * critical. However, the ones used above must give less [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1959 | * strict bounds than the one here so that the k==0 case is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1960 | * never reached from here, since here we have committed to [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1961 | * using the correction term but don't use it if k==0. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1962 | */ [ 4237s] | ~~ [ 4237s] 1963 | if (hu < 0x6A09E) { /* u ~< sqrt(2) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1964 | SET_HIGH_WORD(u, hu | 0x3FF00000); /* normalize u */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1965 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1966 | k += 1; [ 4237s] | ~~~~~~~ [ 4237s] 1967 | SET_HIGH_WORD(u, hu | 0x3FE00000); /* normalize u/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1968 | hu = (0x00100000 - hu) >> 2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1969 | } [ 4237s] | ~ [ 4237s] 1970 | f = u - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1971 | } [ 4237s] | ~ [ 4237s] 1972 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 1973 | if (hu == 0) { /* |f| < 2**-20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1974 | if (f == zero) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1975 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1976 | return zero; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 1977 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 1978 | c += k * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 1979 | return k * ln2_hi + c; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1980 | } [ 4237s] | ~ [ 4237s] 1981 | } [ 4237s] | ~ [ 4237s] 1982 | R = hfsq * (1.0 - 0.66666666666666666 * f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1983 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1984 | return f - R; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1985 | else [ 4237s] | ~~~~ [ 4237s] 1986 | return k * ln2_hi - ((R - (k * ln2_lo + c)) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1987 | } [ 4237s] | ~ [ 4237s] 1988 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 1989 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 1990 | R = z * (Lp1 + z * (Lp2 + z * (Lp3 + z * (Lp4 + z * (Lp5 + z * (Lp6 + z * Lp7)))))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1991 | if (k == 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 1992 | return f - (hfsq - s * (hfsq + R)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1993 | else [ 4237s] | ~~~~ [ 4237s] 1994 | return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 1995 | } [ 4237s] | ~ [ 4237s] 1996 | [ 4237s] | [ 4237s] 1997 | /* [ 4237s] | ~~ [ 4237s] 1998 | * k_log1p(f): [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 1999 | * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)]. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2000 | * [ 4237s] | ~ [ 4237s] 2001 | * The following describes the overall strategy for computing [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2002 | * logarithms in base e. The argument reduction and adding the final [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2003 | * term of the polynomial are done by the caller for increased accuracy [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2004 | * when different bases are used. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2005 | * [ 4237s] | ~ [ 4237s] 2006 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2007 | * 1. Argument Reduction: find k and f such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2008 | * x = 2^k * (1+f), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2009 | * where sqrt(2)/2 < 1+f < sqrt(2) . [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2010 | * [ 4237s] | ~ [ 4237s] 2011 | * 2. Approximation of log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2012 | * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2013 | * = 2s + 2/3 s**3 + 2/5 s**5 + ....., [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2014 | * = 2s + s*R [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2015 | * We use a special Reme algorithm on [0,0.1716] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2016 | * a polynomial of degree 14 to approximate R The maximum error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2017 | * of this polynomial approximation is bounded by 2**-58.45. In [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2018 | * other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2019 | * 2 4 6 8 10 12 14 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2020 | * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2021 | * (the values of Lg1 to Lg7 are listed in the program) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2022 | * and [ 4237s] | ~~~~~~~~~~ [ 4237s] 2023 | * | 2 14 | -58.45 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2024 | * | Lg1*s +...+Lg7*s - R(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2025 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2026 | * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2027 | * In order to guarantee error in log below 1ulp, we compute log [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2028 | * by [ 4237s] | ~~~~~~~~~ [ 4237s] 2029 | * log(1+f) = f - s*(f - R) (if f is not too large) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2030 | * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2031 | * [ 4237s] | ~ [ 4237s] 2032 | * 3. Finally, log(x) = k*ln2 + log(1+f). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2033 | * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2034 | * Here ln2 is split into two floating point number: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2035 | * ln2_hi + ln2_lo, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2036 | * where n*ln2_hi is always exact for |n| < 2000. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2037 | * [ 4237s] | ~ [ 4237s] 2038 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2039 | * log(x) is NaN with signal if x < 0 (including -INF) ; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2040 | * log(+INF) is +INF; log(0) is -INF with signal; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2041 | * log(NaN) is that NaN with no signal. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2042 | * [ 4237s] | ~ [ 4237s] 2043 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2044 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2045 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2046 | * [ 4237s] | ~ [ 4237s] 2047 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2048 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2049 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2050 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2051 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2052 | */ [ 4237s] | ~~ [ 4237s] 2053 | [ 4237s] | [ 4237s] 2054 | constexpr double Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2055 | Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2056 | Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2057 | Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2058 | Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2059 | Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2060 | Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2061 | [ 4237s] | [ 4237s] 2062 | /* [ 4237s] | ~~ [ 4237s] 2063 | * We always inline k_log1p(), since doing so produces a [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2064 | * substantial performance improvement (~40% on amd64). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2065 | */ [ 4237s] | ~~ [ 4237s] 2066 | static inline double k_log1p(double f) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2067 | { [ 4237s] | ~ [ 4237s] 2068 | double hfsq, s, z, R, w, t1, t2; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2069 | [ 4237s] | [ 4237s] 2070 | s = f / (2.0 + f); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2071 | z = s * s; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2072 | w = z * z; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2073 | t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2074 | t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2075 | R = t2 + t1; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2076 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2077 | return s * (hfsq + R); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2078 | } [ 4237s] | ~ [ 4237s] 2079 | [ 4237s] | [ 4237s] 2080 | /* [ 4237s] | ~~ [ 4237s] 2081 | * Return the base 2 logarithm of x. See e_log.c and k_log.h for most [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2082 | * comments. [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2083 | * [ 4237s] | ~ [ 4237s] 2084 | * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2085 | * then does the combining and scaling steps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2086 | * log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2087 | * in not-quite-routine extra precision. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2088 | */ [ 4237s] | ~~ [ 4237s] 2089 | double log2(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2090 | { [ 4237s] | ~ [ 4237s] 2091 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2092 | two54 [ 4237s] | ~~~~~ [ 4237s] 2093 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2094 | ivln2hi = 1.44269504072144627571e+00, /* 0x3FF71547, 0x65200000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2095 | ivln2lo = 1.67517131648865118353e-10; /* 0x3DE705FC, 0x2EEFA200 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2096 | [ 4237s] | [ 4237s] 2097 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2098 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2099 | [ 4237s] | [ 4237s] 2100 | double f, hfsq, hi, lo, r, val_hi, val_lo, w, y; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2101 | int32_t i, k, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2102 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2103 | [ 4237s] | [ 4237s] 2104 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2105 | [ 4237s] | [ 4237s] 2106 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2107 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2108 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2109 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2110 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2111 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2112 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 2113 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2114 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2115 | } [ 4237s] | ~ [ 4237s] 2116 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2117 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2118 | if (hx == 0x3FF00000 && lx == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2119 | return zero; /* log(1) = +0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2120 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2121 | hx &= 0x000FFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2122 | i = (hx + 0x95F64) & 0x100000; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2123 | SET_HIGH_WORD(x, hx | (i ^ 0x3FF00000)); /* normalize x or x/2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2124 | k += (i >> 20); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2125 | y = static_cast(k); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2126 | f = x - 1.0; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2127 | hfsq = 0.5 * f * f; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2128 | r = k_log1p(f); [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2129 | [ 4237s] | [ 4237s] 2130 | /* [ 4237s] | ~~ [ 4237s] 2131 | * f-hfsq must (for args near 1) be evaluated in extra precision [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2132 | * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2133 | * This is fairly efficient since f-hfsq only depends on f, so can [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2134 | * be evaluated in parallel with R. Not combining hfsq with R also [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2135 | * keeps R small (though not as small as a true `lo' term would be), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2136 | * so that extra precision is not needed for terms involving R. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2137 | * [ 4237s] | ~ [ 4237s] 2138 | * Compiler bugs involving extra precision used to break Dekker's [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2139 | * theorem for spitting f-hfsq as hi+lo, unless double_t was used [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2140 | * or the multi-precision calculations were avoided when double_t [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2141 | * has extra precision. These problems are now automatically [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2142 | * avoided as a side effect of the optimization of combining the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2143 | * Dekker splitting step with the clear-low-bits step. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2144 | * [ 4237s] | ~ [ 4237s] 2145 | * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2146 | * precision to avoid a very large cancellation when x is very near [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2147 | * these values. Unlike the above cancellations, this problem is [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2148 | * specific to base 2. It is strange that adding +-1 is so much [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2149 | * harder than adding +-ln2 or +-log10_2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2150 | * [ 4237s] | ~ [ 4237s] 2151 | * This uses Dekker's theorem to normalize y+val_hi, so the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2152 | * compiler bugs are back in some configurations, sigh. And I [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2153 | * don't want to used double_t to avoid them, since that gives a [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2154 | * pessimization and the support for avoiding the pessimization [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2155 | * is not yet available. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2156 | * [ 4237s] | ~ [ 4237s] 2157 | * The multi-precision calculations for the multiplications are [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2158 | * routine. [ 4237s] | ~~~~~~~~~~ [ 4237s] 2159 | */ [ 4237s] | ~~ [ 4237s] 2160 | hi = f - hfsq; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2161 | SET_LOW_WORD(hi, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2162 | lo = (f - hi) - hfsq + r; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2163 | val_hi = hi * ivln2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2164 | val_lo = (lo + hi) * ivln2lo + lo * ivln2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2165 | [ 4237s] | [ 4237s] 2166 | /* spadd(val_hi, val_lo, y), except for not using double_t: */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2167 | w = y + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2168 | val_lo += (y - w) + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2169 | val_hi = w; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2170 | [ 4237s] | [ 4237s] 2171 | return val_lo + val_hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2172 | } [ 4237s] | ~ [ 4237s] 2173 | [ 4237s] | [ 4237s] 2174 | /* [ 4237s] | ~~ [ 4237s] 2175 | * Return the base 10 logarithm of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2176 | * [ 4237s] | ~ [ 4237s] 2177 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2178 | * Let log10_2hi = leading 40 bits of log10(2) and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2179 | * log10_2lo = log10(2) - log10_2hi, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2180 | * ivln10 = 1/log(10) rounded. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2181 | * Then [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2182 | * n = ilogb(x), [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2183 | * if(n<0) n = n+1; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2184 | * x = scalbn(x,-n); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2185 | * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2186 | * [ 4237s] | ~ [ 4237s] 2187 | * Note 1: [ 4237s] | ~~~~~~~~~~ [ 4237s] 2188 | * To guarantee log10(10**n)=n, where 10**n is normal, the rounding [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2189 | * mode must set to Round-to-Nearest. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2190 | * Note 2: [ 4237s] | ~~~~~~~~~~ [ 4237s] 2191 | * [1/log(10)] rounded to 53 bits has error .198 ulps; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2192 | * log10 is monotonic at all binary break points. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2193 | * [ 4237s] | ~ [ 4237s] 2194 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2195 | * log10(x) is NaN if x < 0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2196 | * log10(+INF) is +INF; log10(0) is -INF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2197 | * log10(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2198 | * log10(10**N) = N for N=0,1,...,22. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2199 | */ [ 4237s] | ~~ [ 4237s] 2200 | double log10(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2201 | { [ 4237s] | ~ [ 4237s] 2202 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2203 | two54 [ 4237s] | ~~~~~ [ 4237s] 2204 | = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2205 | ivln10 = 4.34294481903251816668e-01, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2206 | log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2207 | log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2208 | [ 4237s] | [ 4237s] 2209 | constexpr double zero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2210 | constexpr volatile double vzero = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2211 | [ 4237s] | [ 4237s] 2212 | double y; [ 4237s] | ~~~~~~~~~ [ 4237s] 2213 | int32_t i, k, hx; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2214 | uint32_t lx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2215 | [ 4237s] | [ 4237s] 2216 | EXTRACT_WORDS(hx, lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2217 | [ 4237s] | [ 4237s] 2218 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2219 | if (hx < 0x00100000) { /* x < 2**-1022 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2220 | if (((hx & 0x7FFFFFFF) | lx) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2221 | return -two54 / vzero; /* log(+-0)=-inf */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2222 | if (hx < 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2223 | return (x - x) / zero; /* log(-#) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2224 | k -= 54; [ 4237s] | ~~~~~~~~ [ 4237s] 2225 | x *= two54; /* subnormal number, scale up x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2226 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2227 | GET_LOW_WORD(lx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2228 | } [ 4237s] | ~ [ 4237s] 2229 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2230 | return x + x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2231 | if (hx == 0x3FF00000 && lx == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2232 | return zero; /* log(1) = +0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2233 | k += (hx >> 20) - 1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2234 | [ 4237s] | [ 4237s] 2235 | i = (k & 0x80000000) >> 31; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2236 | hx = (hx & 0x000FFFFF) | ((0x3FF - i) << 20); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2237 | y = k + i; [ 4237s] | ~~~~~~~~~~ [ 4237s] 2238 | SET_HIGH_WORD(x, hx); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2239 | SET_LOW_WORD(x, lx); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2240 | [ 4237s] | [ 4237s] 2241 | double z = y * log10_2lo + ivln10 * log(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2242 | return z + y * log10_2hi; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2243 | } [ 4237s] | ~ [ 4237s] 2244 | [ 4237s] | [ 4237s] 2245 | /* expm1(x) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2246 | * Returns exp(x)-1, the exponential of x minus 1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2247 | * [ 4237s] | ~ [ 4237s] 2248 | * Method [ 4237s] | ~~~~~~~~ [ 4237s] 2249 | * 1. Argument reduction: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2250 | * Given x, find r and integer k such that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2251 | * [ 4237s] | ~ [ 4237s] 2252 | * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2253 | * [ 4237s] | ~ [ 4237s] 2254 | * Here a correction term c will be computed to compensate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2255 | * the error in r when rounded to a floating-point number. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2256 | * [ 4237s] | ~ [ 4237s] 2257 | * 2. Approximating expm1(r) by a special rational function on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2258 | * the interval [0,0.34658]: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2259 | * Since [ 4237s] | ~~~~~~~~ [ 4237s] 2260 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2261 | * we define R1(r*r) by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2262 | * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2263 | * That is, [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2264 | * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2265 | * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2266 | * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2267 | * We use a special Reme algorithm on [0,0.347] to generate [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2268 | * a polynomial of degree 5 in r*r to approximate R1. The [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2269 | * maximum error of this polynomial approximation is bounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2270 | * by 2**-61. In other words, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2271 | * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2272 | * where Q1 = -1.6666666666666567384E-2, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2273 | * Q2 = 3.9682539681370365873E-4, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2274 | * Q3 = -9.9206344733435987357E-6, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2275 | * Q4 = 2.5051361420808517002E-7, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2276 | * Q5 = -6.2843505682382617102E-9; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2277 | * z = r*r, [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2278 | * with error bounded by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2279 | * | 5 | -61 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2280 | * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2281 | * | | [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2282 | * [ 4237s] | ~ [ 4237s] 2283 | * expm1(r) = exp(r)-1 is then computed by the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2284 | * specific way which minimize the accumulation rounding error: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2285 | * 2 3 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2286 | * r r [ 3 - (R1 + R1*r/2) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2287 | * expm1(r) = r + --- + --- * [--------------------] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2288 | * 2 2 [ 6 - r*(3 - R1*r/2) ] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2289 | * [ 4237s] | ~ [ 4237s] 2290 | * To compensate the error in the argument reduction, we use [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2291 | * expm1(r+c) = expm1(r) + c + expm1(r)*c [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2292 | * ~ expm1(r) + c + r*c [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2293 | * Thus c+r*c will be added in as the correction terms for [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2294 | * expm1(r+c). Now rearrange the term to avoid optimization [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2295 | * screw up: [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2296 | * ( 2 2 ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2297 | * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2298 | * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2299 | * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2300 | * ( ) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2301 | * [ 4237s] | ~ [ 4237s] 2302 | * = r - E [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2303 | * 3. Scale back to obtain expm1(x): [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2304 | * From step 1, we have [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2305 | * expm1(x) = either 2^k*[expm1(r)+1] - 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2306 | * = or 2^k*[expm1(r) + (1-2^-k)] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2307 | * 4. Implementation notes: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2308 | * (A). To save one multiplication, we scale the coefficient Qi [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2309 | * to Qi*2^i, and replace z by (x^2)/2. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2310 | * (B). To achieve maximum accuracy, we compute expm1(x) by [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2311 | * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2312 | * (ii) if k=0, return r-E [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2313 | * (iii) if k=-1, return 0.5*(r-E)-0.5 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2314 | * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2315 | * else return 1.0+2.0*(r-E); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2316 | * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2317 | * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2318 | * (vii) return 2^k(1-((E+2^-k)-r)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2319 | * [ 4237s] | ~ [ 4237s] 2320 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2321 | * expm1(INF) is INF, expm1(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2322 | * expm1(-INF) is -1, and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2323 | * for finite argument, only expm1(0)=0 is exact. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2324 | * [ 4237s] | ~ [ 4237s] 2325 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2326 | * according to an error analysis, the error is always less than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2327 | * 1 ulp (unit in the last place). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2328 | * [ 4237s] | ~ [ 4237s] 2329 | * Misc. info. [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2330 | * For IEEE double [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2331 | * if x > 7.09782712893383973096e+02 then expm1(x) overflow [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2332 | * [ 4237s] | ~ [ 4237s] 2333 | * Constants: [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2334 | * The hexadecimal values are the intended ones for the following [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2335 | * constants. The decimal values may be used, provided that the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2336 | * compiler will convert from decimal to binary accurately enough [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2337 | * to produce the hexadecimal values shown. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2338 | */ [ 4237s] | ~~ [ 4237s] 2339 | double expm1(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2340 | { [ 4237s] | ~ [ 4237s] 2341 | constexpr double [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2342 | one [ 4237s] | ~~~ [ 4237s] 2343 | = 1.0, [ 4237s] | ~~~~~~ [ 4237s] 2344 | tiny = 1.0e-300, [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2345 | o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2346 | ln2_hi = 6.93147180369123816490e-01, /* 0x3FE62E42, 0xFEE00000 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2347 | ln2_lo = 1.90821492927058770002e-10, /* 0x3DEA39EF, 0x35793C76 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2348 | invln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2349 | /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2350 | x*x/2: */ [ 4237s] | ~~~~~~~~~ [ 4237s] 2351 | Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2352 | Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2353 | Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2354 | Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2355 | Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2356 | [ 4237s] | [ 4237s] 2357 | constexpr volatile double huge = 1.0e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2358 | [ 4237s] | [ 4237s] 2359 | double y, hi, lo, c, t, e, hxs, hfx, r1, twopk; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2360 | int32_t k, xsb; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2361 | uint32_t hx; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2362 | [ 4237s] | [ 4237s] 2363 | GET_HIGH_WORD(hx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2364 | xsb = hx & 0x80000000; /* sign bit of x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2365 | hx &= 0x7FFFFFFF; /* high word of |x| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2366 | [ 4237s] | [ 4237s] 2367 | /* filter out huge and non-finite argument */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2368 | if (hx >= 0x4043687A) { /* if |x|>=56*ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2369 | if (hx >= 0x40862E42) { /* if |x|>=709.78... */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2370 | if (hx >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2371 | uint32_t low; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2372 | GET_LOW_WORD(low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2373 | if (((hx & 0xFFFFF) | low) != 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2374 | return x + x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2375 | else [ 4237s] | ~~~~ [ 4237s] 2376 | return (xsb == 0) ? x : -1.0; /* exp(+-inf)={inf,-1} */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2377 | } [ 4237s] | ~ [ 4237s] 2378 | if (x > o_threshold) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2379 | return huge * huge; /* overflow */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2380 | } [ 4237s] | ~ [ 4237s] 2381 | if (xsb != 0 && x + tiny < 0.0) { /* x < -56*ln2, return -1.0 with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2382 | /* raise inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2383 | return tiny - one; /* return -1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2384 | } [ 4237s] | ~ [ 4237s] 2385 | } [ 4237s] | ~ [ 4237s] 2386 | [ 4237s] | [ 4237s] 2387 | /* argument reduction */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2388 | if (hx > 0x3FD62E42) { /* if |x| > 0.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2389 | if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2390 | if (xsb == 0) { [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2391 | hi = x - ln2_hi; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2392 | lo = ln2_lo; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2393 | k = 1; [ 4237s] | ~~~~~~ [ 4237s] 2394 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2395 | hi = x + ln2_hi; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2396 | lo = -ln2_lo; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2397 | k = -1; [ 4237s] | ~~~~~~~ [ 4237s] 2398 | } [ 4237s] | ~ [ 4237s] 2399 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2400 | k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2401 | t = k; [ 4237s] | ~~~~~~ [ 4237s] 2402 | hi = x - t * ln2_hi; /* t*ln2_hi is exact here */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2403 | lo = t * ln2_lo; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2404 | } [ 4237s] | ~ [ 4237s] 2405 | STRICT_ASSIGN(double, x, hi - lo); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2406 | c = (hi - x) - lo; [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2407 | } else if (hx < 0x3C900000) { /* when |x|<2**-54, return x */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2408 | t = huge + x; /* return x with inexact flags when x!=0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2409 | return x - (t - (huge + x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2410 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2411 | k = 0; [ 4237s] | ~~~~~~ [ 4237s] 2412 | } [ 4237s] | ~ [ 4237s] 2413 | [ 4237s] | [ 4237s] 2414 | /* x is now in primary range */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2415 | hfx = 0.5 * x; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2416 | hxs = x * hfx; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2417 | r1 = one + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2418 | t = 3.0 - r1 * hfx; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2419 | e = hxs * ((r1 - t) / (6.0 - x * t)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2420 | if (k == 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2421 | return x - (x * e - hxs); /* c is 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2422 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2423 | INSERT_WORDS(twopk, 0x3FF00000 + (k << 20), 0); /* 2^k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2424 | e = (x * (e - c) - c); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2425 | e -= hxs; [ 4237s] | ~~~~~~~~~ [ 4237s] 2426 | if (k == -1) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2427 | return 0.5 * (x - e) - 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2428 | if (k == 1) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2429 | if (x < -0.25) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2430 | return -2.0 * (e - (x + 0.5)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2431 | else [ 4237s] | ~~~~ [ 4237s] 2432 | return one + 2.0 * (x - e); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2433 | } [ 4237s] | ~ [ 4237s] 2434 | if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2435 | y = one - (e - x); [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2436 | // TODO(mvstanton): is this replacement for the hex float [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2437 | // sufficient? [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2438 | // if (k == 1024) y = y*2.0*0x1p1023; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2439 | if (k == 1024) [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2440 | y = y * 2.0 * 8.98846567431158e+307; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2441 | else [ 4237s] | ~~~~ [ 4237s] 2442 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2443 | return y - one; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2444 | } [ 4237s] | ~ [ 4237s] 2445 | t = one; [ 4237s] | ~~~~~~~~ [ 4237s] 2446 | if (k < 20) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2447 | SET_HIGH_WORD(t, 0x3FF00000 - (0x200000 >> k)); /* t=1-2^-k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2448 | y = t - (e - x); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2449 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2450 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2451 | SET_HIGH_WORD(t, ((0x3FF - k) << 20)); /* 2^-k */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2452 | y = x - (e + t); [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2453 | y += one; [ 4237s] | ~~~~~~~~~ [ 4237s] 2454 | y = y * twopk; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2455 | } [ 4237s] | ~ [ 4237s] 2456 | } [ 4237s] | ~ [ 4237s] 2457 | return y; [ 4237s] | ~~~~~~~~~ [ 4237s] 2458 | } [ 4237s] | ~ [ 4237s] 2459 | [ 4237s] | [ 4237s] 2460 | double cbrt(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2461 | { [ 4237s] | ~ [ 4237s] 2462 | constexpr uint32_t [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2463 | B1 [ 4237s] | ~~ [ 4237s] 2464 | = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2465 | B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2466 | [ 4237s] | [ 4237s] 2467 | /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2468 | constexpr double P0 = 1.87595182427177009643, /* 0x3FFE03E6, 0x0F61E692 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2469 | P1 = -1.88497979543377169875, /* 0xBFFE28E0, 0x92F02420 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2470 | P2 = 1.621429720105354466140, /* 0x3FF9F160, 0x4A49D6C2 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2471 | P3 = -0.758397934778766047437, /* 0xBFE844CB, 0xBEE751D9 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2472 | P4 = 0.145996192886612446982; /* 0x3FC2B000, 0xD4E4EDD7 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2473 | [ 4237s] | [ 4237s] 2474 | int32_t hx; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2475 | union { [ 4237s] | ~~~~~~~ [ 4237s] 2476 | double value; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2477 | uint64_t bits; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2478 | } u; [ 4237s] | ~~~~ [ 4237s] 2479 | double r, s, t = 0.0, w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2480 | uint32_t sign; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2481 | uint32_t high, low; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2482 | [ 4237s] | [ 4237s] 2483 | EXTRACT_WORDS(hx, low, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2484 | sign = hx & 0x80000000; /* sign= sign(x) */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2485 | hx ^= sign; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2486 | if (hx >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2487 | return (x + x); /* cbrt(NaN,INF) is itself */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2488 | [ 4237s] | [ 4237s] 2489 | /* [ 4237s] | ~~ [ 4237s] 2490 | * Rough cbrt to 5 bits: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2491 | * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2492 | * where e is integral and >= 0, m is real and in [0, 1), and "/" and [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2493 | * "%" are integer division and modulus with rounding towards minus [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2494 | * infinity. The RHS is always >= the LHS and has a maximum relative [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2495 | * error of about 1 in 16. Adding a bias of -0.03306235651 to the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2496 | * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2497 | * floating point representation, for finite positive normal values, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2498 | * ordinary integer division of the value in bits magically gives [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2499 | * almost exactly the RHS of the above provided we first subtract the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2500 | * exponent bias (1023 for doubles) and later add it back. We do the [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2501 | * subtraction virtually to keep e >= 0 so that ordinary integer [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2502 | * division rounds towards minus infinity; this is also efficient. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2503 | */ [ 4237s] | ~~ [ 4237s] 2504 | if (hx < 0x00100000) { /* zero or subnormal? */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2505 | if ((hx | low) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2506 | return (x); /* cbrt(0) is itself */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2507 | SET_HIGH_WORD(t, 0x43500000); /* set t= 2**54 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2508 | t *= x; [ 4237s] | ~~~~~~~ [ 4237s] 2509 | GET_HIGH_WORD(high, t); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2510 | INSERT_WORDS(t, sign | ((high & 0x7FFFFFFF) / 3 + B2), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2511 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2512 | INSERT_WORDS(t, sign | (hx / 3 + B1), 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2513 | } [ 4237s] | ~ [ 4237s] 2514 | [ 4237s] | [ 4237s] 2515 | /* [ 4237s] | ~~ [ 4237s] 2516 | * New cbrt to 23 bits: [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2517 | * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2518 | * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2519 | * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2520 | * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2521 | * gives us bounds for r = t**3/x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2522 | * [ 4237s] | ~ [ 4237s] 2523 | * Try to optimize for parallel evaluation as in k_tanf.c. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2524 | */ [ 4237s] | ~~ [ 4237s] 2525 | r = (t * t) * (t / x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2526 | t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2527 | [ 4237s] | [ 4237s] 2528 | /* [ 4237s] | ~~ [ 4237s] 2529 | * Round t away from zero to 23 bits (sloppily except for ensuring that [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2530 | * the result is larger in magnitude than cbrt(x) but not much more than [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2531 | * 2 23-bit ulps larger). With rounding towards zero, the error bound [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2532 | * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2533 | * in the rounded t, the infinite-precision error in the Newton [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2534 | * approximation barely affects third digit in the final error [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2535 | * 0.667; the error in the rounded t can be up to about 3 23-bit ulps [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2536 | * before the final error is larger than 0.667 ulps. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2537 | */ [ 4237s] | ~~ [ 4237s] 2538 | u.value = t; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2539 | u.bits = (u.bits + 0x80000000) & 0xFFFFFFFFC0000000ULL; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2540 | t = u.value; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2541 | [ 4237s] | [ 4237s] 2542 | /* one step Newton iteration to 53 bits with error < 0.667 ulps */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2543 | s = t * t; /* t*t is exact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2544 | r = x / s; /* error <= 0.5 ulps; |r| < |t| */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2545 | w = t + t; /* t+t is exact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2546 | r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2547 | t = t + t * r; /* error <= 0.5 + 0.5/3 + epsilon */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2548 | [ 4237s] | [ 4237s] 2549 | return (t); [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2550 | } [ 4237s] | ~ [ 4237s] 2551 | [ 4237s] | [ 4237s] 2552 | /* sin(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 2553 | * Return sine function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2554 | * [ 4237s] | ~ [ 4237s] 2555 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2556 | * __kernel_sin ... sine function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2557 | * __kernel_cos ... cose function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2558 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2559 | * [ 4237s] | ~ [ 4237s] 2560 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 2561 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2562 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2563 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2564 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2565 | * [ 4237s] | ~ [ 4237s] 2566 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2567 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2568 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2569 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2570 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2571 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2572 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2573 | * [ 4237s] | ~ [ 4237s] 2574 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2575 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2576 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2577 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2578 | * [ 4237s] | ~ [ 4237s] 2579 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2580 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2581 | */ [ 4237s] | ~~ [ 4237s] 2582 | double sin(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2583 | { [ 4237s] | ~ [ 4237s] 2584 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2585 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2586 | [ 4237s] | [ 4237s] 2587 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2588 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2589 | [ 4237s] | [ 4237s] 2590 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2591 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2592 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2593 | return __kernel_sin(x, z, 0); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2594 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2595 | /* sin(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2596 | return x - x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2597 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2598 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2599 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2600 | switch (n & 3) { [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2601 | case 0: [ 4237s] | ~~~~~~~ [ 4237s] 2602 | return __kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2603 | case 1: [ 4237s] | ~~~~~~~ [ 4237s] 2604 | return __kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2605 | case 2: [ 4237s] | ~~~~~~~ [ 4237s] 2606 | return -__kernel_sin(y[0], y[1], 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2607 | default: [ 4237s] | ~~~~~~~~ [ 4237s] 2608 | return -__kernel_cos(y[0], y[1]); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2609 | } [ 4237s] | ~ [ 4237s] 2610 | } [ 4237s] | ~ [ 4237s] 2611 | } [ 4237s] | ~ [ 4237s] 2612 | [ 4237s] | [ 4237s] 2613 | /* tan(x) [ 4237s] | ~~~~~~~~~ [ 4237s] 2614 | * Return tangent function of x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2615 | * [ 4237s] | ~ [ 4237s] 2616 | * kernel function: [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2617 | * __kernel_tan ... tangent function on [-pi/4,pi/4] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2618 | * __ieee754_rem_pio2 ... argument reduction routine [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2619 | * [ 4237s] | ~ [ 4237s] 2620 | * Method. [ 4237s] | ~~~~~~~~~ [ 4237s] 2621 | * Let S,C and T denote the sin, cos and tan respectively on [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2622 | * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2623 | * in [-pi/4 , +pi/4], and let n = k mod 4. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2624 | * We have [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2625 | * [ 4237s] | ~ [ 4237s] 2626 | * n sin(x) cos(x) tan(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2627 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2628 | * 0 S C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2629 | * 1 C -S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2630 | * 2 -S -C T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2631 | * 3 -C S -1/T [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2632 | * ---------------------------------------------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2633 | * [ 4237s] | ~ [ 4237s] 2634 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2635 | * Let trig be any of sin, cos, or tan. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2636 | * trig(+-INF) is NaN, with signals; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2637 | * trig(NaN) is that NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2638 | * [ 4237s] | ~ [ 4237s] 2639 | * Accuracy: [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2640 | * TRIG(x) returns trig(x) nearly rounded [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2641 | */ [ 4237s] | ~~ [ 4237s] 2642 | double tan(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2643 | { [ 4237s] | ~ [ 4237s] 2644 | double y[2], z = 0.0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2645 | int32_t n, ix; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2646 | [ 4237s] | [ 4237s] 2647 | /* High word of x. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2648 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2649 | [ 4237s] | [ 4237s] 2650 | /* |x| ~< pi/4 */ [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2651 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2652 | if (ix <= 0x3FE921FB) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2653 | return __kernel_tan(x, z, 1); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2654 | } else if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2655 | /* tan(Inf or NaN) is NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2656 | return x - x; /* NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2657 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2658 | /* argument reduction needed */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2659 | n = __ieee754_rem_pio2(x, y); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2660 | /* 1 -> n even, -1 -> n odd */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2661 | return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2662 | } [ 4237s] | ~ [ 4237s] 2663 | } [ 4237s] | ~ [ 4237s] 2664 | [ 4237s] | [ 4237s] 2665 | /* [ 4237s] | ~~ [ 4237s] 2666 | * ES6 draft 09-27-13, section 20.2.2.12. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2667 | * Math.cosh [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2668 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2669 | * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2670 | * 1. Replace x by |x| (cosh(x) = cosh(-x)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2671 | * 2. [ 4237s] | ~~~~~~~~~ [ 4237s] 2672 | * [ exp(x) - 1 ]^2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2673 | * 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2674 | * 2*exp(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2675 | * [ 4237s] | ~ [ 4237s] 2676 | * exp(x) + 1/exp(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2677 | * ln2/2 <= x <= 22 : cosh(x) := ------------------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2678 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2679 | * 22 <= x <= lnovft : cosh(x) := exp(x)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2680 | * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2681 | * ln2ovft < x : cosh(x) := huge*huge (overflow) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2682 | * [ 4237s] | ~ [ 4237s] 2683 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2684 | * cosh(x) is |x| if x is +INF, -INF, or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2685 | * only cosh(0)=1 is exact for finite x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2686 | */ [ 4237s] | ~~ [ 4237s] 2687 | double cosh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2688 | { [ 4237s] | ~ [ 4237s] 2689 | constexpr double KCOSH_OVERFLOW = 710.4758600739439; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2690 | constexpr double one = 1.0, half = 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2691 | constexpr volatile double huge = 1.0e+300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2692 | [ 4237s] | [ 4237s] 2693 | int32_t ix; [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2694 | [ 4237s] | [ 4237s] 2695 | /* High word of |x|. */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2696 | GET_HIGH_WORD(ix, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2697 | ix &= 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2698 | [ 4237s] | [ 4237s] 2699 | // |x| in [0,0.5*log2], return 1+expm1(|x|)^2/(2*exp(|x|)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2700 | if (ix < 0x3FD62E43) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2701 | double t = expm1(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2702 | double w = one + t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2703 | // For |x| < 2^-55, cosh(x) = 1 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2704 | if (ix < 0x3C800000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2705 | return w; [ 4237s] | ~~~~~~~~~ [ 4237s] 2706 | return one + (t * t) / (w + w); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2707 | } [ 4237s] | ~ [ 4237s] 2708 | [ 4237s] | [ 4237s] 2709 | // |x| in [0.5*log2, 22], return (exp(|x|)+1/exp(|x|)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2710 | if (ix < 0x40360000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2711 | double t = exp(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2712 | return half * t + half / t; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2713 | } [ 4237s] | ~ [ 4237s] 2714 | [ 4237s] | [ 4237s] 2715 | // |x| in [22, log(maxdouble)], return half*exp(|x|) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2716 | if (ix < 0x40862E42) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2717 | return half * exp(fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2718 | [ 4237s] | [ 4237s] 2719 | // |x| in [log(maxdouble), overflowthreshold] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2720 | if (fabs(x) <= KCOSH_OVERFLOW) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2721 | double w = exp(half * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2722 | double t = half * w; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2723 | return t * w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2724 | } [ 4237s] | ~ [ 4237s] 2725 | [ 4237s] | [ 4237s] 2726 | /* x is INF or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2727 | if (ix >= 0x7FF00000) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2728 | return x * x; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2729 | [ 4237s] | [ 4237s] 2730 | // |x| > overflowthreshold. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2731 | return huge * huge; [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2732 | } [ 4237s] | ~ [ 4237s] 2733 | [ 4237s] | [ 4237s] 2734 | /* [ 4237s] | ~~ [ 4237s] 2735 | * ES6 draft 09-27-13, section 20.2.2.30. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2736 | * Math.sinh [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2737 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2738 | * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2739 | * 1. Replace x by |x| (sinh(-x) = -sinh(x)). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2740 | * 2. [ 4237s] | ~~~~~~~~~ [ 4237s] 2741 | * E + E/(E+1) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2742 | * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2743 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2744 | * [ 4237s] | ~ [ 4237s] 2745 | * 22 <= x <= lnovft : sinh(x) := exp(x)/2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2746 | * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2747 | * ln2ovft < x : sinh(x) := x*shuge (overflow) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2748 | * [ 4237s] | ~ [ 4237s] 2749 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2750 | * sinh(x) is |x| if x is +Infinity, -Infinity, or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2751 | * only sinh(0)=0 is exact for finite x. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2752 | */ [ 4237s] | ~~ [ 4237s] 2753 | double sinh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2754 | { [ 4237s] | ~ [ 4237s] 2755 | constexpr double KSINH_OVERFLOW = 710.4758600739439, [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2756 | TWO_M28 = 3.725290298461914e-9, // 2^-28, empty lower half [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2757 | LOG_MAXD = 709.7822265625; // 0x40862E42 00000000, empty lower half [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2758 | constexpr double shuge = 1.0e307; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2759 | [ 4237s] | [ 4237s] 2760 | double h = (x < 0) ? -0.5 : 0.5; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2761 | // |x| in [0, 22]. return sign(x)*0.5*(E+E/(E+1)) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2762 | double ax = fabs(x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2763 | if (ax < 22) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2764 | // For |x| < 2^-28, sinh(x) = x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2765 | if (ax < TWO_M28) [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2766 | return x; [ 4237s] | ~~~~~~~~~ [ 4237s] 2767 | double t = expm1(ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2768 | if (ax < 1) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2769 | return h * (2 * t - t * t / (t + 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2770 | } [ 4237s] | ~ [ 4237s] 2771 | return h * (t + t / (t + 1)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2772 | } [ 4237s] | ~ [ 4237s] 2773 | // |x| in [22, log(maxdouble)], return 0.5 * exp(|x|) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2774 | if (ax < LOG_MAXD) [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2775 | return h * exp(ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2776 | // |x| in [log(maxdouble), overflowthreshold] [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2777 | // overflowthreshold = 710.4758600739426 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2778 | if (ax <= KSINH_OVERFLOW) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2779 | double w = exp(0.5 * ax); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2780 | double t = h * w; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2781 | return t * w; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2782 | } [ 4237s] | ~ [ 4237s] 2783 | // |x| > overflowthreshold or is NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2784 | // Return Infinity of the appropriate sign or NaN. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2785 | return x * shuge; [ 4237s] | ~~~~~~~~~~~~~~~~~ [ 4237s] 2786 | } [ 4237s] | ~ [ 4237s] 2787 | [ 4237s] | [ 4237s] 2788 | /* Tanh(x) [ 4237s] | ~~~~~~~~~~ [ 4237s] 2789 | * Return the Hyperbolic Tangent of x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2790 | * [ 4237s] | ~ [ 4237s] 2791 | * Method : [ 4237s] | ~~~~~~~~~~ [ 4237s] 2792 | * x -x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2793 | * e - e [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2794 | * 0. tanh(x) is defined to be ----------- [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2795 | * x -x [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2796 | * e + e [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2797 | * 1. reduce x to non-negative by tanh(-x) = -tanh(x). [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2798 | * 2. 0 <= x < 2**-28 : tanh(x) := x with inexact if x != 0 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2799 | * -t [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2800 | * 2**-28 <= x < 1 : tanh(x) := -----; t = expm1(-2x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2801 | * t + 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2802 | * 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2803 | * 1 <= x < 22 : tanh(x) := 1 - -----; t = expm1(2x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2804 | * t + 2 [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2805 | * 22 <= x <= INF : tanh(x) := 1. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2806 | * [ 4237s] | ~ [ 4237s] 2807 | * Special cases: [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2808 | * tanh(NaN) is NaN; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2809 | * only tanh(0)=0 is exact for finite argument. [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2810 | */ [ 4237s] | ~~ [ 4237s] 2811 | double tanh(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2812 | { [ 4237s] | ~ [ 4237s] 2813 | constexpr volatile double tiny = 1.0e-300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2814 | constexpr double one = 1.0, two = 2.0, huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2815 | double t, z; [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2816 | int32_t jx, ix; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2817 | [ 4237s] | [ 4237s] 2818 | GET_HIGH_WORD(jx, x); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2819 | ix = jx & 0x7FFFFFFF; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2820 | [ 4237s] | [ 4237s] 2821 | /* x is INF or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2822 | if (ix >= 0x7FF00000) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2823 | if (jx >= 0) [ 4237s] | ~~~~~~~~~~~~ [ 4237s] 2824 | return one / x + one; /* tanh(+-inf)=+-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2825 | else [ 4237s] | ~~~~ [ 4237s] 2826 | return one / x - one; /* tanh(NaN) = NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2827 | } [ 4237s] | ~ [ 4237s] 2828 | [ 4237s] | [ 4237s] 2829 | /* |x| < 22 */ [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2830 | if (ix < 0x40360000) { /* |x|<22 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2831 | if (ix < 0x3E300000 && huge + x > one) { /* |x|<2**-28 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2832 | return x; /* tanh(tiny) = tiny with inexact */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2833 | } [ 4237s] | ~ [ 4237s] 2834 | if (ix >= 0x3FF00000) { /* |x|>=1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2835 | t = expm1(two * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2836 | z = one - two / (t + two); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2837 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2838 | t = expm1(-two * fabs(x)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2839 | z = -t / (t + two); [ 4237s] | ~~~~~~~~~~~~~~~~~~~ [ 4237s] 2840 | } [ 4237s] | ~ [ 4237s] 2841 | /* |x| >= 22, return +-1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2842 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2843 | z = one - tiny; /* raise inexact flag */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2844 | } [ 4237s] | ~ [ 4237s] 2845 | return (jx >= 0) ? z : -z; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2846 | } [ 4237s] | ~ [ 4237s] 2847 | [ 4237s] | [ 4237s] 2848 | double ceil(double x) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2849 | { [ 4237s] | ~ [ 4237s] 2850 | constexpr double huge = 1.0e300; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2851 | int i0, i1, j0; [ 4237s] | ~~~~~~~~~~~~~~~ [ 4237s] 2852 | unsigned i, j; [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2853 | i0 = __HI(x); [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2854 | i1 = __LO(x); [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2855 | j0 = ((i0 >> 20) & 0x7ff) - 0x3ff; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2856 | if (j0 < 20) { [ 4237s] | ~~~~~~~~~~~~~~ [ 4237s] 2857 | if (j0 < 0) { /* raise inexact if x != 0 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2858 | if (huge + x > 0.0) { /* return 0*sign(x) if |x|<1 */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2859 | if (i0 < 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2860 | i0 = 0x80000000; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2861 | i1 = 0; [ 4237s] | ~~~~~~~ [ 4237s] 2862 | } else if ((i0 | i1) != 0) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2863 | i0 = 0x3ff00000; [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2864 | i1 = 0; [ 4237s] | ~~~~~~~ [ 4237s] 2865 | } [ 4237s] | ~ [ 4237s] 2866 | } [ 4237s] | ~ [ 4237s] 2867 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2868 | i = (0x000fffff) >> j0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2869 | if (((i0 & i) | i1) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2870 | return x; /* x is integral */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2871 | if (huge + x > 0.0) { /* raise inexact flag */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2872 | if (i0 > 0) [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2873 | i0 += (0x00100000) >> j0; [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2874 | i0 &= (~i); [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2875 | i1 = 0; [ 4237s] | ~~~~~~~ [ 4237s] 2876 | } [ 4237s] | ~ [ 4237s] 2877 | } [ 4237s] | ~ [ 4237s] 2878 | } else if (j0 > 51) { [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2879 | if (j0 == 0x400) [ 4237s] | ~~~~~~~~~~~~~~~~ [ 4237s] 2880 | return x + x; /* inf or NaN */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2881 | else [ 4237s] | ~~~~ [ 4237s] 2882 | return x; /* x is integral */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2883 | } else { [ 4237s] | ~~~~~~~~ [ 4237s] 2884 | i = ((unsigned)(0xffffffff)) >> (j0 - 20); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2885 | if ((i1 & i) == 0) [ 4237s] | ~~~~~~~~~~~~~~~~~~ [ 4237s] 2886 | return x; /* x is integral */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2887 | if (huge + x > 0.0) { /* raise inexact flag */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2888 | if (i0 > 0) { [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2889 | if (j0 == 20) [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2890 | i0 += 1; [ 4237s] | ~~~~~~~~ [ 4237s] 2891 | else { [ 4237s] | ~~~~~~ [ 4237s] 2892 | j = i1 + (1 << (52 - j0)); [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2893 | if (j < (unsigned)i1) [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2894 | i0 += 1; /* got a carry */ [ 4237s] | ~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 4237s] 2895 | i1 = j; [ 4237s] | ~~~~~~~ [ 4237s] 2896 | } [ 4237s] | ~ [ 4237s] 2897 | } [ 4237s] | ~ [ 4237s] 2898 | i1 &= (~i); [ 4237s] | ~~~~~~~~~~~ [ 4237s] 2899 | } [ 4237s] | ~ [ 4237s] 2900 | } [ 4237s] | ~ [ 4237s] 2901 | __HI(x) = i0; [ 4237s] | ~~~~~~~~~~~~~ [ 4237s] 2902 | __LO(x) = i1; [ 4237s] | ~~~~~~ [ 4237s] third_party/escargot/src/runtime/IEEE754.cpp:2902:5: note: in expansion of macro '__LO' [ 4237s] 2902 | __LO(x) = i1; [ 4237s] | ^~~~ [ 4237s] [1017/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinRegExp.cpp.o [ 4237s] [1018/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ObjectStructurePropertyDescriptor.cpp.o [ 4237s] [1019/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Job.cpp.o [ 4237s] [1020/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlLocale.cpp.o [ 4237s] [1021/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IteratorObject.cpp.o [ 4238s] [1022/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/MapObject.cpp.o [ 4238s] [1023/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/JobQueue.cpp.o [ 4238s] [1024/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlNumberFormat.cpp.o [ 4238s] [1025/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ModuleNamespaceObject.cpp.o [ 4238s] [1026/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlDateTimeFormat.cpp.o [ 4238s] [1027/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinString.cpp.o [ 4238s] [1028/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/IntlCollator.cpp.o [ 4239s] [1029/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/NativeFunctionObject.cpp.o [ 4239s] [1030/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/NumberObject.cpp.o [ 4239s] [1031/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/PointerValue.cpp.o [ 4239s] [1032/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ObjectStructure.cpp.o [ 4240s] [1033/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptArrowFunctionObject.cpp.o [ 4240s] [1034/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/RopeString.cpp.o [ 4241s] [1035/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Intl.cpp.o [ 4241s] [1036/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptClassMethodFunctionObject.cpp.o [ 4241s] [1037/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ProxyObject.cpp.o [ 4241s] [1038/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/PromiseObject.cpp.o [ 4242s] [1039/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptAsyncFunctionObject.cpp.o [ 4242s] [1040/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SandBox.cpp.o [ 4242s] [1041/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptAsyncGeneratorFunctionObject.cpp.o [ 4242s] [1042/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptClassConstructorFunctionObject.cpp.o [ 4242s] [1043/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringObject.cpp.o [ 4242s] [1044/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Object.cpp.o [ 4242s] [1045/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringBuilder.cpp.o [ 4242s] [1046/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SetObject.cpp.o [ 4242s] [1047/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StringView.cpp.o [ 4243s] [1048/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/RegExpObject.cpp.o [ 4243s] [1049/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptGeneratorFunctionObject.cpp.o [ 4243s] [1050/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ScriptFunctionObject.cpp.o [ 4243s] [1051/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/String.cpp.o [ 4244s] [1052/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/SymbolObject.cpp.o [ 4244s] [1053/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Symbol.cpp.o [ 4244s] [1054/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/GlobalObjectBuiltinTypedArray.cpp.o [ 4244s] [1055/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/TypedArrayObject.cpp.o [ 4244s] [1056/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/StaticStrings.cpp.o [ 4244s] [1057/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/Util.cpp.o [ 4244s] [1058/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/ToStringRecursionPreventer.cpp.o [ 4244s] [1059/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/Vector.cpp.o [ 4244s] [1060/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/util/BasicString.cpp.o [ 4244s] [1061/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/OSAllocatorPosix.cpp.o [ 4244s] [1062/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/cached-powers.cc.o [ 4244s] [1063/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/diy-fp.cc.o [ 4244s] [1064/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/PageBlock.cpp.o [ 4244s] [1065/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/bignum-dtoa.cc.o [ 4244s] [1066/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrCanonicalizeUnicode.cpp.o [ 4244s] [1067/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/WeakSetObject.cpp.o [ 4244s] [1068/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/dyn_load.c.o [ 4244s] [1069/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/backgraph.c.o [ 4245s] [1070/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/OSAllocatorWin.cpp.o [ 4245s] [1071/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/fixed-dtoa.cc.o [ 4245s] [1072/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/fast-dtoa.cc.o [ 4245s] [1073/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/strtod.cc.o [ 4245s] [1074/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/Value.cpp.o [ 4245s] [1075/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/bignum.cc.o [ 4245s] [1076/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/checksums.c.o [ 4245s] [1077/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/blacklst.c.o [ 4245s] [1078/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/darwin_stop_world.c.o [ 4245s] [1079/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/allchblk.c.o [ 4245s] [1080/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/gcj_mlc.c.o [ 4245s] [1081/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/fnlz_mlc.c.o [ 4245s] [1082/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/gc_dlopen.c.o [ 4245s] [1083/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/win32_threads.c.o [ 4245s] [1084/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrCanonicalizeUCS2.cpp.o [ 4245s] [1085/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/WeakMapObject.cpp.o [ 4245s] [1086/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/double_conversion/double-conversion.cc.o [ 4245s] [1087/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mach_dep.c.o [ 4245s] [1088/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrErrorCode.cpp.o [ 4245s] [1089/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/headers.c.o [ 4245s] [1090/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/new_hblk.c.o [ 4245s] [1091/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/dbg_mlc.c.o [ 4245s] [1092/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_start.c.o [ 4245s] [1093/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/malloc.c.o [ 4245s] [1094/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/obj_map.c.o [ 4245s] [1095/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mallocx.c.o [ 4245s] [1096/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/alloc.c.o [ 4245s] [1097/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_support.c.o [ 4245s] [1098/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/pthread_stop_world.c.o [ 4245s] [1099/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/specific.c.o [ 4245s] [1100/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/thread_local_alloc.c.o [ 4245s] [1101/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mark_rts.c.o [ 4245s] [1102/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/os_dep.c.o [ 4245s] [1103/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/finalize.c.o [ 4245s] [1104/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/ptr_chck.c.o [ 4245s] [1105/1121] Building CXX object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/LeakChecker.cpp.o [ 4245s] [1106/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/misc.c.o [ 4246s] [1107/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/typd_mlc.c.o [ 4246s] [1108/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/reclaim.c.o [ 4246s] [1109/1121] Building C object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/bdwgc/mark.c.o [ 4246s] [1110/1121] Building CXX object third_party/escargot/third_party/GCutil/CMakeFiles/gc-lib.dir/Allocator.cpp.o [ 4246s] [1111/1121] Linking CXX static library out_tizen/unified_wearable/release/lib/libgc-lib.a [ 4246s] [1112/1121] Building CXX object third_party/escargot/third_party/runtime_icu_binder/CMakeFiles/runtime-icu-binder-static.dir/RuntimeICUBinder.cpp.o [ 4246s] [1113/1121] Linking CXX static library out_tizen/unified_wearable/release/lib/libruntime-icu-binder-static.a [ 4246s] [1114/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/src/runtime/VMInstance.cpp.o [ 4247s] [1115/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrSyntaxChecker.cpp.o [ 4247s] [1116/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/lz4/lz4.cpp.o [ 4248s] [1117/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrInterpreter.cpp.o [ 4249s] [1118/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrPattern.cpp.o [ 4272s] [1119/1121] Building CXX object third_party/escargot/CMakeFiles/escargot.dir/third_party/yarr/YarrUnicodeProperties.cpp.o [ 4274s] [1120/1121] Linking CXX static library out_tizen/unified_wearable/release/lib/libescargot.a [ 4482s] [1121/1121] Linking CXX shared library out_tizen/unified_wearable/release/lib/liblightweight-web-engine-dali-plugin.wearable.so [ 4482s] + rm -f CMakeCache.txt [ 4482s] + cmake CMakeLists.txt -DMODE=release -DHOST=tizen -DARCH=arm -DCUSTOM=unified_wearable -DBACKEND=efl_cairo -DLTO=1 -DTARGETNAME=lightweight-web-engine.wearable -G Ninja [ 4483s] -- The C compiler identification is GNU 9.2.0 [ 4483s] -- The CXX compiler identification is GNU 9.2.0 [ 4483s] -- Check for working C compiler: /bin/cc [ 4483s] -- Check for working C compiler: /bin/cc -- works [ 4483s] -- Detecting C compiler ABI info [ 4483s] -- Detecting C compiler ABI info - done [ 4483s] -- Detecting C compile features [ 4483s] -- Detecting C compile features - done [ 4483s] -- Check for working CXX compiler: /bin/c++ [ 4483s] -- Check for working CXX compiler: /bin/c++ -- works [ 4483s] -- Detecting CXX compiler ABI info [ 4484s] -- Detecting CXX compiler ABI info - done [ 4484s] -- Detecting CXX compile features [ 4484s] -- Detecting CXX compile features - done [ 4484s] -- Found PkgConfig: /bin/pkg-config (found version "0.28") [ 4484s] -- Checking for modules 'libpng;freetype2;fontconfig;harfbuzz;elementary;ecore;ecore-imf' [ 4485s] -- Found libpng, version 1.6.37 [ 4485s] -- Found freetype2, version 23.1.17 [ 4485s] -- Found fontconfig, version 2.13.1 [ 4485s] -- Found harfbuzz, version 2.6.4 [ 4485s] -- Found elementary, version 1.24.0 [ 4485s] -- Found ecore, version 1.24.0 [ 4485s] -- Found ecore-imf, version 1.24.0 [ 4489s] -- Checking for module 'ecore-imf-evas' [ 4489s] -- Found ecore-imf-evas, version 1.24.0 [ 4490s] -- Checking for module 'libtbm' [ 4490s] -- Found libtbm, version 3.0.0 [ 4490s] -- Checking for module 'cairo' [ 4490s] -- Found cairo, version 1.14.2 [ 4491s] -- Checking for modules 'dlog;capi-media-player;capi-media-sound-manager;capi-system-info;capi-system-device' [ 4492s] -- Found dlog, version 1.0 [ 4492s] -- Found capi-media-player, version [ 4492s] -- Found capi-media-sound-manager, version 0.0.1 [ 4492s] -- Found capi-system-info, version 0.2.0 [ 4492s] -- Found capi-system-device, version [ 4493s] -- Checking for module 'bundle' [ 4493s] -- Found bundle, version 0.4.5 [ 4493s] -- Looking for cap_set_flag in cap [ 4493s] -- Looking for cap_set_flag in cap - not found [ 4493s] -- Checking for module 'dlog' [ 4494s] -- Found dlog, version 1.0 [ 4494s] -- Starfish [ 4494s] -- FLAGS: -std=c++11-g3-Wall-Wextra-Werror-Wno-unused-parameter-Wno-unused-result-Wno-unused-variable-Wno-unused-function-Wno-maybe-uninitialized-Wno-deprecated-declarations-Wno-type-limits-fno-math-errno-fdata-sections-ffunction-sections-Wno-invalid-offsetof-fvisibility=hidden-fno-omit-frame-pointer-fstack-protector-fPIC-frounding-math-fsignaling-nans-Wno-unused-but-set-variable-Wno-unused-but-set-parameter-Wno-attributes-Wno-class-memaccess-Wno-deprecated-copy-Wno-cast-function-type-Wno-stringop-truncation-Wno-pessimizing-move-Wno-format-nonliteral-fno-rtti-O2-flto-O2-g2-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong-Wformat-security-fmessage-length=0-frecord-gcc-switches-Wl,-z,relro,--as-needed--param=ssp-buffer-size=4-march=armv7-a-mtune=cortex-a8-mlittle-endian-mfpu=neon-mfloat-abi=softfp-mthumb-Wp,-D__SOFTFP__-Wl,-O1-Wl,--hash-style=gnu-Wa,-mimplicit-it=thumb-g-DSTARFISH_TIZEN_MAJOR_VERSION=6-DSTARFISH_TIZEN_VERSION_6_0-Os [ 4494s] -- LIBRARIES: clipperescargotmp4parsewebmskia_matrixpthreadcurlsslcryptojpeggifturbojpegrtdlcapi-location-manager-Wl,-soname,liblightweight-web-engine.so.1png16zfontconfigfreetypeharfbuzzelementarydlpthreadecore_evasecore_fileecore_conedjemevasectorluameldbusefreetefreet_mimeefreet_trashethumb_clientethumbecore_waylandwayland-cursorxkbcommonuuidxdg-shell-clienttext-clienttizen-extension-clientwayland-tbm-clientwayland-clienttbmcapi-base-commontdm-clientecore_wl2emotioneioeetemileecoreeflecore_imfecore_inputeoeinapthreadcairoecore_imf_evasefleoeinapthreadtbmcapi-base-commondlogcapi-media-playercapi-media-tooltbmcapi-media-sound-managercapi-system-infocapi-system-devicecapi-base-commonbundlecapi-base-common [ 4494s] -- DEFINITIONS: -DSTARFISH_TIZEN-DSTARFISH_TIZEN_OBS-DTIZEN_DEVICE_API-DSIZE_MAX=0xffffffff-DSTARFISH_ENABLE_ANIMATION-DSTARFISH_ENABLE_RUNTIME_ICU_BINDER-DSTARFISH_TIZEN_WEARABLE_WIDGET-DSTARFISH_TIZEN_CAPI_LOCATION_MANAGER_ENABLED-DSTARFISH_DISABLE_OVERFLOW_SCROLL-DSTARFISH_ENABLE_OBSOLETE_SPEC-DSTARFISH_ENABLE_BATTERY_STATUS-DNDEBUG [ 4494s] -- LDFLAGS: -Wl,--gc-sections-Wl,-rpath=/usr/local/lib-flto [ 4494s] -- INCLUDE_DIRS: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/src/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/inc/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/rapidjson/include/usr/include/elementary-1/usr/include/efreet-1/usr/include/ethumb-client-1/usr/include/ethumb-1/usr/include/edje-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-imf-evas-1/usr/include/embryo-1/usr/include/efreet-1/usr/include/ecore-audio-1/usr/include/ecore-wayland-1/usr/include/wayland-extension/usr/include/ecore-wl2-1/usr/include/wayland-extension/usr/include/emotion-1/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ector-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/eio-1/usr/include/efreet-1/usr/include/ecore-ipc-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/eet-1/usr/include/emile-1/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/libmount/usr/include/blkid/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/cairo/usr/include/pixman-1/usr/include/ecore-evas-1/usr/include/ecore-input-evas-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/uuid/usr/include/freetype2/usr/include/fribidi/usr/include/harfbuzz/usr/include/ecore-1/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/usr/include/libpng16/usr/include/ecore-imf-evas-1/usr/include/ecore-imf-1/usr/include/ecore-input-1/usr/include/eeze-1/usr/include/ecore-file-1/usr/include/ecore-con-1/usr/include/eldbus-1/usr/include/dbus-1.0/usr/lib/dbus-1.0/include/usr/include/libmount/usr/include/blkid/usr/include/evas-1/usr/include/evas-1/canvas/usr/include/evas-1/gesture/usr/include/ecore-1/usr/include/ector-1/usr/include/eet-1/usr/include/emile-1/usr/include/uuid/usr/include/freetype2/usr/include/libpng16/usr/include/fribidi/usr/include/harfbuzz/usr/include/glib-2.0/usr/lib/glib-2.0/include/usr/include/efl-1/usr/include/efl-1/interfaces/usr/include/eo-1/usr/include/eina-1/usr/include/efl-1/usr/include/eina-1/eina/usr/include/dlog/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/MP4Parse/source/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/webm/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/GCutil/bdwgc/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/src/api/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/escargot/third_party/runtime_icu_binder/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsg/dist/include/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/nanomsgcpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/clipper/cpp/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/earcut.hpp/include/mapbox/usr/include/dlog/usr/include/media/usr/include/system/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/deviceapi/src//usr/include/dlog/usr/include/location/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/skia_matrix/include/core/home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/third_party/libwebsockets/build/tizen/arm/release/include [ 4494s] -- Configuring done [ 4495s] -- Generating done [ 4495s] -- Build files have been written to: /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 4495s] + ninja starfish.shared_library [ 4496s] [1/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BaseAudioContextBinding.cpp.o [ 4496s] [2/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextOptionsBinding.cpp.o [ 4496s] [3/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferBinding.cpp.o [ 4496s] [4/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferOptionsBinding.cpp.o [ 4496s] [5/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceOptionsBinding.cpp.o [ 4496s] [6/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DOrWebGLRenderingContextOrImageBitmapRenderingContextBinding.cpp.o [ 4496s] [7/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioScheduledSourceNodeBinding.cpp.o [ 4496s] [8/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioBufferSourceNodeBinding.cpp.o [ 4496s] [9/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioContextBinding.cpp.o [ 4496s] [10/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioNodeBinding.cpp.o [ 4496s] [11/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AudioDestinationNodeBinding.cpp.o [ 4496s] [12/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrDOMStringBinding.cpp.o [ 4498s] [13/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericTypeBinding.cpp.o [ 4498s] [14/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BufferSourceOrBlobOrDOMStringBinding.cpp.o [ 4498s] [15/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ArrayBufferViewOrArrayBufferBinding.cpp.o [ 4498s] [16/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobOrBufferSourceOrUSVStringOrReadableStreamBinding.cpp.o [ 4498s] [17/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCache.cpp.o [ 4498s] [18/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventInitBinding.cpp.o [ 4498s] [19/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPCacheEntry.cpp.o [ 4498s] [20/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/StaticStrings.cpp.o [ 4498s] [21/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationBinding.cpp.o [ 4498s] [22/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BatteryManagerBinding.cpp.o [ 4498s] [23/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSImportRuleBinding.cpp.o [ 4499s] [24/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSConditionRuleBinding.cpp.o [ 4499s] [25/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobBinding.cpp.o [ 4499s] [26/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframeRuleBinding.cpp.o [ 4499s] [27/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleDeclarationBinding.cpp.o [ 4499s] [28/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleRuleBinding.cpp.o [ 4499s] [29/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AnimationEventBinding.cpp.o [ 4500s] [30/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleListBinding.cpp.o [ 4500s] [31/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleSheetBinding.cpp.o [ 4501s] [32/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/AttrBinding.cpp.o [ 4501s] [33/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/BlobCustomBinding.cpp.o [ 4501s] [34/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSBinding.cpp.o [ 4501s] [35/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/Starfish.cpp.o [ 4501s] [36/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSMediaRuleBinding.cpp.o [ 4502s] [37/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasImageSourceOrBlobOrImageDataBinding.cpp.o [ 4502s] [38/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSCounterStyleRuleBinding.cpp.o [ 4502s] [39/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPHeaderMap.cpp.o [ 4502s] [40/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSFontFaceRuleBinding.cpp.o [ 4502s] [41/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasRenderingContext2DBinding.cpp.o [ 4502s] [42/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeywordValueBinding.cpp.o [ 4502s] [43/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNamespaceRuleBinding.cpp.o [ 4502s] [44/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSNumericValueBinding.cpp.o [ 4502s] [45/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSRuleBinding.cpp.o [ 4503s] [46/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasGradientBinding.cpp.o [ 4503s] [47/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSGroupingRuleBinding.cpp.o [ 4503s] [48/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CanvasPatternBinding.cpp.o [ 4503s] [49/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSStyleValueBinding.cpp.o [ 4504s] [50/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSKeyframesRuleBinding.cpp.o [ 4504s] [51/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CDATASectionBinding.cpp.o [ 4504s] [52/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSSupportsRuleBinding.cpp.o [ 4504s] [53/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CSSUnitValueBinding.cpp.o [ 4504s] [54/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventInitBinding.cpp.o [ 4504s] [55/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CompositionEventBinding.cpp.o [ 4505s] [56/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventInitBinding.cpp.o [ 4505s] [57/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventInitBinding.cpp.o [ 4505s] [58/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CloseEventBinding.cpp.o [ 4505s] [59/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CoordinatesBinding.cpp.o [ 4506s] [60/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMExceptionBinding.cpp.o [ 4506s] [61/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrix2DInitBinding.cpp.o [ 4506s] [62/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataCustomBinding.cpp.o [ 4506s] [63/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CustomEventBinding.cpp.o [ 4506s] [64/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixInitBinding.cpp.o [ 4507s] [65/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CharacterDataBinding.cpp.o [ 4507s] [66/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectListBinding.cpp.o [ 4507s] [67/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/CommentBinding.cpp.o [ 4507s] [68/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointInitBinding.cpp.o [ 4507s] [69/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixBinding.cpp.o [ 4508s] [70/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointBinding.cpp.o [ 4508s] [71/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMQuadBinding.cpp.o [ 4508s] [72/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMPointReadOnlyBinding.cpp.o [ 4508s] [73/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMImplementationBinding.cpp.o [ 4508s] [74/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectBinding.cpp.o [ 4508s] [75/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMMatrixReadOnlyBinding.cpp.o [ 4509s] [76/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMParserBinding.cpp.o [ 4509s] [77/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringListBinding.cpp.o [ 4509s] [78/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfdoubleBinding.cpp.o [ 4509s] [79/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMRectReadOnlyBinding.cpp.o [ 4509s] [80/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrCanvasGradientOrCanvasPatternBinding.cpp.o [ 4509s] [81/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringMapBinding.cpp.o [ 4509s] [82/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrFunctionBinding.cpp.o [ 4509s] [83/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrRTCOAuthCredentialBinding.cpp.o [ 4509s] [84/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrMediaStreamTrackBinding.cpp.o [ 4510s] [85/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMStringOrSequenceOfDOMStringBinding.cpp.o [ 4511s] [86/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventInitBinding.cpp.o [ 4511s] [87/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DOMTokenListBinding.cpp.o [ 4511s] [88/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EffectTimingBinding.cpp.o [ 4512s] [89/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventInitBinding.cpp.o [ 4512s] [90/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ErrorEventBinding.cpp.o [ 4512s] [91/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventModifierInitBinding.cpp.o [ 4512s] [92/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventOrDOMStringBinding.cpp.o [ 4512s] [93/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentCustomBinding.cpp.o [ 4512s] [94/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventBinding.cpp.o [ 4512s] [95/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceBinding.cpp.o [ 4512s] [96/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventSourceInitBinding.cpp.o [ 4512s] [97/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAudioElementBinding.cpp.o [ 4512s] [98/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCanvasElementBinding.cpp.o [ 4513s] [99/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/EventTargetBinding.cpp.o [ 4513s] [100/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentFragmentBinding.cpp.o [ 4513s] [101/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceTransportBinding.cpp.o [ 4513s] [102/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverBinding.cpp.o [ 4513s] [103/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventBinding.cpp.o [ 4513s] [104/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentHoldable.cpp.o [ 4513s] [105/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentTypeBinding.cpp.o [ 4514s] [106/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FocusEventInitBinding.cpp.o [ 4514s] [107/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ElementBinding.cpp.o [ 4514s] [108/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/DocumentBinding.cpp.o [ 4515s] [109/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationBinding.cpp.o [ 4515s] [110/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeopositionBinding.cpp.o [ 4516s] [111/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/FormDataBinding.cpp.o [ 4516s] [112/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GetRootNodeOptionsBinding.cpp.o [ 4517s] [113/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/GeolocationCustomBinding.cpp.o [ 4517s] [114/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAnchorElementBinding.cpp.o [ 4517s] [115/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBRElementBinding.cpp.o [ 4517s] [116/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBaseElementBinding.cpp.o [ 4517s] [117/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLAreaElementBinding.cpp.o [ 4517s] [118/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLButtonElementBinding.cpp.o [ 4517s] [119/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLCollectionBinding.cpp.o [ 4518s] [120/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLBodyElementBinding.cpp.o [ 4518s] [121/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementOrHTMLVideoElementOrHTMLCanvasElementOrImageBitmapBinding.cpp.o [ 4518s] [122/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadElementBinding.cpp.o [ 4518s] [123/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementOrSVGImageElementBinding.cpp.o [ 4518s] [124/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDListElementBinding.cpp.o [ 4518s] [125/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDivElementBinding.cpp.o [ 4519s] [126/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDocumentBinding.cpp.o [ 4519s] [127/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLDialogElementBinding.cpp.o [ 4519s] [128/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementOrlongBinding.cpp.o [ 4519s] [129/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLElementBinding.cpp.o [ 4519s] [130/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMediaElementBinding.cpp.o [ 4520s] [131/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFieldSetElementBinding.cpp.o [ 4521s] [132/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFontElementBinding.cpp.o [ 4521s] [133/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormControlsCollectionBinding.cpp.o [ 4522s] [134/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLFormElementBinding.cpp.o [ 4522s] [135/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMetaElementBinding.cpp.o [ 4522s] [136/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementCustomBinding.cpp.o [ 4522s] [137/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLIFrameElementBinding.cpp.o [ 4522s] [138/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHeadingElementBinding.cpp.o [ 4522s] [139/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHRElementBinding.cpp.o [ 4522s] [140/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLHtmlElementBinding.cpp.o [ 4523s] [141/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLImageElementBinding.cpp.o [ 4523s] [142/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLInputElementBinding.cpp.o [ 4523s] [143/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLIElementBinding.cpp.o [ 4523s] [144/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLabelElementBinding.cpp.o [ 4524s] [145/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLMapElementBinding.cpp.o [ 4524s] [146/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLinkElementBinding.cpp.o [ 4524s] [147/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSourceElementBinding.cpp.o [ 4524s] [148/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLLegendElementBinding.cpp.o [ 4525s] [149/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLModElementBinding.cpp.o [ 4525s] [150/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOListElementBinding.cpp.o [ 4526s] [151/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptGroupElementBinding.cpp.o [ 4526s] [152/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLObjectElementBinding.cpp.o [ 4526s] [153/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementOrHTMLOptGroupElementBinding.cpp.o [ 4527s] [154/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParagraphElementBinding.cpp.o [ 4527s] [155/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionElementBinding.cpp.o [ 4527s] [156/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOutputElementBinding.cpp.o [ 4527s] [157/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLParamElementBinding.cpp.o [ 4527s] [158/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLOptionsCollectionBinding.cpp.o [ 4527s] [159/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLPreElementBinding.cpp.o [ 4527s] [160/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTrackElementBinding.cpp.o [ 4528s] [161/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementBinding.cpp.o [ 4528s] [162/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLScriptElementOrSVGScriptElementBinding.cpp.o [ 4528s] [163/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLQuoteElementBinding.cpp.o [ 4528s] [164/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSelectElementBinding.cpp.o [ 4529s] [165/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLVideoElementBinding.cpp.o [ 4529s] [166/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLStyleElementBinding.cpp.o [ 4529s] [167/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLSpanElementBinding.cpp.o [ 4529s] [168/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapRenderingContextBinding.cpp.o [ 4529s] [169/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataBinding.cpp.o [ 4529s] [170/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTFootElementBinding.cpp.o [ 4530s] [171/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHElementBinding.cpp.o [ 4530s] [172/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTHeadElementBinding.cpp.o [ 4531s] [173/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableColElementBinding.cpp.o [ 4531s] [174/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HistoryBinding.cpp.o [ 4531s] [175/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCellElementBinding.cpp.o [ 4531s] [176/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableCaptionElementBinding.cpp.o [ 4531s] [177/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HeadersBinding.cpp.o [ 4531s] [178/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaDevicesBinding.cpp.o [ 4531s] [179/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTextAreaElementBinding.cpp.o [ 4532s] [180/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceNodeBinding.cpp.o [ 4532s] [181/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaElementAudioSourceOptionsBinding.cpp.o [ 4532s] [182/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableRowElementBinding.cpp.o [ 4532s] [183/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapOptionsBinding.cpp.o [ 4532s] [184/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageDataCustomBinding.cpp.o [ 4532s] [185/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTitleElementBinding.cpp.o [ 4532s] [186/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamBinding.cpp.o [ 4532s] [187/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamTrackBinding.cpp.o [ 4532s] [188/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ImageBitmapBinding.cpp.o [ 4532s] [189/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaStreamConstraintsBinding.cpp.o [ 4532s] [190/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaSourceBinding.cpp.o [ 4532s] [191/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableSectionElementBinding.cpp.o [ 4532s] [192/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintSetBinding.cpp.o [ 4532s] [193/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaTrackConstraintsBinding.cpp.o [ 4532s] [194/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventBinding.cpp.o [ 4532s] [195/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLTableElementBinding.cpp.o [ 4532s] [196/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/InputEventInitBinding.cpp.o [ 4533s] [197/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUListElementBinding.cpp.o [ 4533s] [198/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/HTMLUnknownElementBinding.cpp.o [ 4533s] [199/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationBinding.cpp.o [ 4533s] [200/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventBinding.cpp.o [ 4534s] [201/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyboardEventInitBinding.cpp.o [ 4534s] [202/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeAnimationOptionsBinding.cpp.o [ 4534s] [203/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/KeyframeEffectOptionsBinding.cpp.o [ 4534s] [204/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/LocationBinding.cpp.o [ 4534s] [205/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventInitBinding.cpp.o [ 4534s] [206/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NotificationOptionsBinding.cpp.o [ 4534s] [207/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DBinding.cpp.o [ 4535s] [208/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListBinding.cpp.o [ 4535s] [209/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaListBinding.cpp.o [ 4535s] [210/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MediaQueryListEventBinding.cpp.o [ 4535s] [211/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/Path2DOrDOMStringBinding.cpp.o [ 4535s] [212/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushManagerBinding.cpp.o [ 4535s] [213/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionBinding.cpp.o [ 4535s] [214/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDtlsTransportBinding.cpp.o [ 4535s] [215/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageChannelBinding.cpp.o [ 4535s] [216/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorBinding.cpp.o [ 4535s] [217/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsBinding.cpp.o [ 4535s] [218/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PushSubscriptionOptionsInitBinding.cpp.o [ 4535s] [219/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventInitBinding.cpp.o [ 4535s] [220/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCAnswerOptionsBinding.cpp.o [ 4535s] [221/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCCertificateBinding.cpp.o [ 4535s] [222/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCConfigurationBinding.cpp.o [ 4535s] [223/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelBinding.cpp.o [ 4535s] [224/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventBinding.cpp.o [ 4535s] [225/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelInitBinding.cpp.o [ 4535s] [226/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCDataChannelEventInitBinding.cpp.o [ 4535s] [227/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventInitBinding.cpp.o [ 4535s] [228/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateBinding.cpp.o [ 4535s] [229/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCErrorInitBinding.cpp.o [ 4535s] [230/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidatePairBinding.cpp.o [ 4535s] [231/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceCandidateInitBinding.cpp.o [ 4535s] [232/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCIceServerBinding.cpp.o [ 4535s] [233/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferAnswerOptionsBinding.cpp.o [ 4535s] [234/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessagePortBinding.cpp.o [ 4535s] [235/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionBinding.cpp.o [ 4535s] [236/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOfferOptionsBinding.cpp.o [ 4535s] [237/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MessageEventBinding.cpp.o [ 4536s] [238/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventBinding.cpp.o [ 4536s] [239/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventInitBinding.cpp.o [ 4536s] [240/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceErrorEventBinding.cpp.o [ 4536s] [241/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCPeerConnectionIceEventInitBinding.cpp.o [ 4536s] [242/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpReceiverBinding.cpp.o [ 4536s] [243/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpParametersBinding.cpp.o [ 4536s] [244/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSenderBinding.cpp.o [ 4536s] [245/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpSendParametersBinding.cpp.o [ 4536s] [246/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCRtpTransceiverInitBinding.cpp.o [ 4536s] [247/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSctpTransportBinding.cpp.o [ 4536s] [248/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionBinding.cpp.o [ 4536s] [249/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCSessionDescriptionInitBinding.cpp.o [ 4536s] [250/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCStatsReportBinding.cpp.o [ 4536s] [251/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventBinding.cpp.o [ 4536s] [252/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCTrackEventInitBinding.cpp.o [ 4536s] [253/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/MouseEventBinding.cpp.o [ 4536s] [254/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NavigatorBinding.cpp.o [ 4537s] [255/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NamedNodeMapBinding.cpp.o [ 4537s] [256/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventInitBinding.cpp.o [ 4537s] [257/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/PositionErrorBinding.cpp.o [ 4538s] [258/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeOrDOMStringBinding.cpp.o [ 4538s] [259/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProgressEventBinding.cpp.o [ 4538s] [260/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RTCOAuthCredentialBinding.cpp.o [ 4538s] [261/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeListBinding.cpp.o [ 4539s] [262/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeFilterBinding.cpp.o [ 4539s] [263/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamBinding.cpp.o [ 4539s] [264/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RegistrationOptionsBinding.cpp.o [ 4539s] [265/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeIteratorBinding.cpp.o [ 4539s] [266/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultReaderBinding.cpp.o [ 4539s] [267/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ProcessingInstructionBinding.cpp.o [ 4539s] [268/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/NodeBinding.cpp.o [ 4539s] [269/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ReadableStreamDefaultControllerBinding.cpp.o [ 4540s] [270/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestOrUSVStringBinding.cpp.o [ 4540s] [271/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestInitBinding.cpp.o [ 4541s] [272/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RangeBinding.cpp.o [ 4541s] [273/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseInitBinding.cpp.o [ 4541s] [274/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGCircleElement.cpp.o [ 4541s] [275/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/RequestBinding.cpp.o [ 4541s] [276/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGRectElementBinding.cpp.o [ 4541s] [277/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ResponseBinding.cpp.o [ 4541s] [278/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGAnimatedLengthBinding.cpp.o [ 4543s] [279/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLengthBinding.cpp.o [ 4543s] [280/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWorkerInstance.cpp.o [ 4543s] [281/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGClipPathElementBinding.cpp.o [ 4544s] [282/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGElementBinding.cpp.o [ 4544s] [283/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGCircleElementBinding.cpp.o [ 4544s] [284/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDefsElementBinding.cpp.o [ 4544s] [285/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGEllipseElementBinding.cpp.o [ 4544s] [286/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGGElementBinding.cpp.o [ 4544s] [287/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGImageElementBinding.cpp.o [ 4545s] [288/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGDocumentBinding.cpp.o [ 4545s] [289/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGLineElementBinding.cpp.o [ 4545s] [290/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolylineElementBinding.cpp.o [ 4545s] [291/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPolygonElementBinding.cpp.o [ 4545s] [292/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerBinding.cpp.o [ 4545s] [293/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerContainerBinding.cpp.o [ 4545s] [294/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGPathElementBinding.cpp.o [ 4545s] [295/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerGlobalScopeBinding.cpp.o [ 4545s] [296/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ServiceWorkerRegistrationBinding.cpp.o [ 4546s] [297/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferBinding.cpp.o [ 4546s] [298/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGSVGElementBinding.cpp.o [ 4546s] [299/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SourceBufferListBinding.cpp.o [ 4546s] [300/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisBinding.cpp.o [ 4546s] [301/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventBinding.cpp.o [ 4546s] [302/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisUtteranceBinding.cpp.o [ 4546s] [303/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGScriptElementBinding.cpp.o [ 4546s] [304/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisEventInitBinding.cpp.o [ 4546s] [305/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SpeechSynthesisVoiceBinding.cpp.o [ 4546s] [306/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGTextElementBinding.cpp.o [ 4546s] [307/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGStyleElementBinding.cpp.o [ 4546s] [308/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SVGUseElementBinding.cpp.o [ 4546s] [309/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextMetricsBinding.cpp.o [ 4546s] [310/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScreenBinding.cpp.o [ 4546s] [311/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackBinding.cpp.o [ 4546s] [312/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueBinding.cpp.o [ 4546s] [313/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackCueListBinding.cpp.o [ 4546s] [314/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextTrackListBinding.cpp.o [ 4546s] [315/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TimeRangesBinding.cpp.o [ 4547s] [316/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollToOptionsBinding.cpp.o [ 4547s] [317/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScrollOptionsBinding.cpp.o [ 4548s] [318/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptEngineInstance.cpp.o [ 4548s] [319/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingWindowInstance.cpp.o [ 4548s] [320/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventBinding.cpp.o [ 4548s] [321/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/SecurityPolicyViolationEventInitBinding.cpp.o [ 4548s] [322/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventInitBinding.cpp.o [ 4549s] [323/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TransitionEventBinding.cpp.o [ 4549s] [324/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetListBinding.cpp.o [ 4549s] [325/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StorageBinding.cpp.o [ 4549s] [326/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptWrappable.cpp.o [ 4549s] [327/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/VTTCueBinding.cpp.o [ 4549s] [328/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingSecurity.cpp.o [ 4549s] [329/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebGLRenderingContextBinding.cpp.o [ 4549s] [330/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebSocketBinding.cpp.o [ 4550s] [331/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchEventBinding.cpp.o [ 4550s] [332/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchBinding.cpp.o [ 4550s] [333/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchInitBinding.cpp.o [ 4550s] [334/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TouchListBinding.cpp.o [ 4550s] [335/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeBinding.cpp.o [ 4550s] [336/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerGlobalScopeCustomBinding.cpp.o [ 4550s] [337/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerLocationBinding.cpp.o [ 4550s] [338/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ScriptBindingInstance.cpp.o [ 4550s] [339/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WorkerNavigatorBinding.cpp.o [ 4550s] [340/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TextBinding.cpp.o [ 4551s] [341/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/StyleSheetBinding.cpp.o [ 4551s] [342/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrAutoKeywordBinding.cpp.o [ 4551s] [343/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventInitBinding.cpp.o [ 4551s] [344/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/UIEventBinding.cpp.o [ 4551s] [345/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/ShadowRootBinding.cpp.o [ 4551s] [346/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLBinding.cpp.o [ 4551s] [347/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/testRunnerBinding.cpp.o [ 4552s] [348/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsCustomBinding.cpp.o [ 4552s] [349/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/URLSearchParamsBinding.cpp.o [ 4552s] [350/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/TreeWalkerBinding.cpp.o [ 4553s] [351/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WebViewHoldable.cpp.o [ 4553s] [352/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowOrServiceWorkerBinding.cpp.o [ 4553s] [353/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestUploadBinding.cpp.o [ 4554s] [354/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/doubleOrCSSNumericValueBinding.cpp.o [ 4554s] [355/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestEventTargetBinding.cpp.o [ 4554s] [356/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageImpl.cpp.o [ 4554s] [357/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowHoldable.cpp.o [ 4554s] [358/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/WebStorageNamespaceProvider.cpp.o [ 4555s] [359/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLHttpRequestBinding.cpp.o [ 4555s] [360/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageNamespaceImpl.cpp.o [ 4555s] [361/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowProxy.cpp.o [ 4555s] [362/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/storage/StorageManager.cpp.o [ 4555s] [363/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/Animation.cpp.o [ 4555s] [364/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowBinding.cpp.o [ 4556s] [365/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/CubicBezier.cpp.o [ 4556s] [366/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/XMLDocumentBinding.cpp.o [ 4556s] [367/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingFunction.cpp.o [ 4556s] [368/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/binding/WindowCustomBinding.cpp.o [ 4557s] [369/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/browser/history/HistoryManager.cpp.o [ 4557s] [370/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attribute.cpp.o [ 4557s] [371/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicyDirectiveList.cpp.o [ 4557s] [372/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/AnimationEvent.cpp.o [ 4557s] [373/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicy.cpp.o [ 4558s] [374/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CSS.cpp.o [ 4558s] [375/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/csp/ContentSecurityPolicySourceListDirective.cpp.o [ 4558s] [376/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CloseEvent.cpp.o [ 4558s] [377/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/TimingOptions.cpp.o [ 4558s] [378/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMException.cpp.o [ 4559s] [379/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Attr.cpp.o [ 4559s] [380/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationUtil.cpp.o [ 4560s] [381/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixInit.cpp.o [ 4560s] [382/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CDATASection.cpp.o [ 4560s] [383/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrix.cpp.o [ 4560s] [384/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Comment.cpp.o [ 4560s] [385/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPoint.cpp.o [ 4561s] [386/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRect.cpp.o [ 4561s] [387/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLImageElement.cpp.o [ 4561s] [388/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMPointReadOnly.cpp.o [ 4561s] [389/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMQuad.cpp.o [ 4561s] [390/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMImplementation.cpp.o [ 4561s] [391/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectReadOnly.cpp.o [ 4561s] [392/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMRectList.cpp.o [ 4561s] [393/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/CharacterData.cpp.o [ 4562s] [394/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMMatrixReadOnly.cpp.o [ 4563s] [395/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/animation/AnimationTask.cpp.o [ 4563s] [396/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Event.cpp.o [ 4563s] [397/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMParser.cpp.o [ 4563s] [398/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringMap.cpp.o [ 4564s] [399/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMStringList.cpp.o [ 4564s] [400/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ExecutionContext.cpp.o [ 4564s] [401/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DOMTokenList.cpp.o [ 4564s] [402/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/DocumentFragment.cpp.o [ 4566s] [403/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAreaElement.cpp.o [ 4566s] [404/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBaseElement.cpp.o [ 4566s] [405/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLButtonElement.cpp.o [ 4566s] [406/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDialogElement.cpp.o [ 4566s] [407/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLAnchorElement.cpp.o [ 4566s] [408/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDivElement.cpp.o [ 4567s] [409/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLBodyElement.cpp.o [ 4567s] [410/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/EventTarget.cpp.o [ 4568s] [411/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLCollection.cpp.o [ 4568s] [412/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFieldSetElement.cpp.o [ 4568s] [413/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFontElement.cpp.o [ 4568s] [414/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMediaElement.cpp.o [ 4568s] [415/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLDocument.cpp.o [ 4569s] [416/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHeadingElement.cpp.o [ 4569s] [417/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormControlsCollection.cpp.o [ 4570s] [418/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Element.cpp.o [ 4570s] [419/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHtmlElement.cpp.o [ 4570s] [420/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLFormElement.cpp.o [ 4571s] [421/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Document.cpp.o [ 4571s] [422/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLabelElement.cpp.o [ 4571s] [423/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLHyperlinkContainer.cpp.o [ 4571s] [424/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLIElement.cpp.o [ 4572s] [425/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLegendElement.cpp.o [ 4572s] [426/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLElement.cpp.o [ 4572s] [427/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSourceElement.cpp.o [ 4572s] [428/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLListContainer.cpp.o [ 4573s] [429/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMapElement.cpp.o [ 4573s] [430/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLIFrameElement.cpp.o [ 4573s] [431/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLMetaElement.cpp.o [ 4573s] [432/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOListElement.cpp.o [ 4573s] [433/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLLinkElement.cpp.o [ 4574s] [434/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLObjectElement.cpp.o [ 4574s] [435/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLModElement.cpp.o [ 4574s] [436/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLInputElement.cpp.o [ 4574s] [437/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLParamElement.cpp.o [ 4574s] [438/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOutputElement.cpp.o [ 4575s] [439/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptGroupElement.cpp.o [ 4575s] [440/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTrackElement.cpp.o [ 4575s] [441/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLQuoteElement.cpp.o [ 4575s] [442/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionElement.cpp.o [ 4576s] [443/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLOptionsCollection.cpp.o [ 4577s] [444/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCaptionElement.cpp.o [ 4577s] [445/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLVideoElement.cpp.o [ 4578s] [446/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTitleElement.cpp.o [ 4578s] [447/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLScriptElement.cpp.o [ 4578s] [448/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLSelectElement.cpp.o [ 4578s] [449/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColElement.cpp.o [ 4578s] [450/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableCellElement.cpp.o [ 4578s] [451/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableColGroupElement.cpp.o [ 4578s] [452/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextAreaElement.cpp.o [ 4578s] [453/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLStyleElement.cpp.o [ 4579s] [454/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableElement.cpp.o [ 4579s] [455/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableRowElement.cpp.o [ 4579s] [456/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTableSectionElement.cpp.o [ 4579s] [457/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTablePartElement.cpp.o [ 4580s] [458/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUnknownElement.cpp.o [ 4580s] [459/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLUListElement.cpp.o [ 4580s] [460/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrack.cpp.o [ 4580s] [461/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCue.cpp.o [ 4580s] [462/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackCueList.cpp.o [ 4580s] [463/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPath.cpp.o [ 4580s] [464/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmap.cpp.o [ 4580s] [465/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TextTrackList.cpp.o [ 4580s] [466/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ImageBitmapOptions.cpp.o [ 4580s] [467/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NamedNodeMap.cpp.o [ 4580s] [468/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/KeyboardEvent.cpp.o [ 4581s] [469/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/HTMLTextEditable.cpp.o [ 4581s] [470/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessageChannel.cpp.o [ 4581s] [471/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/MessagePort.cpp.o [ 4583s] [472/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeList.cpp.o [ 4583s] [473/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeListImpl.cpp.o [ 4583s] [474/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/ProcessingInstruction.cpp.o [ 4583s] [475/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/NodeIterator.cpp.o [ 4583s] [476/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TransitionEvent.cpp.o [ 4583s] [477/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext.cpp.o [ 4583s] [478/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2D.cpp.o [ 4583s] [479/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasRenderingContext2DMixIn.cpp.o [ 4583s] [480/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/HTMLCanvasElement.cpp.o [ 4583s] [481/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageData.cpp.o [ 4583s] [482/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageBitmapRenderingContext.cpp.o [ 4583s] [483/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/UIEvent.cpp.o [ 4583s] [484/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/TextMetrics.cpp.o [ 4583s] [485/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/Path2D.cpp.o [ 4583s] [486/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/WebOrigin.cpp.o [ 4583s] [487/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/WebGLRenderingContext.cpp.o [ 4584s] [488/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Text.cpp.o [ 4584s] [489/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Node.cpp.o [ 4584s] [490/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Range.cpp.o [ 4584s] [491/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Touch.cpp.o [ 4585s] [492/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/PseudoElement.cpp.o [ 4585s] [493/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchEvent.cpp.o [ 4585s] [494/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/SelectorQuery.cpp.o [ 4585s] [495/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TreeWalker.cpp.o [ 4585s] [496/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasImageSource.cpp.o [ 4586s] [497/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/TouchList.cpp.o [ 4586s] [498/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasGradient.cpp.o [ 4586s] [499/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/ImageSmoothingQuality.cpp.o [ 4586s] [500/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/canvas/CanvasPattern.cpp.o [ 4587s] [501/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementLookupTrie.cpp.o [ 4587s] [502/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntitySearch.cpp.o [ 4587s] [503/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/Scrolling.cpp.o [ 4587s] [504/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityParser.cpp.o [ 4587s] [505/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParserIdioms.cpp.o [ 4588s] [506/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/builder/html/HTMLDocumentBuilder.cpp.o [ 4588s] [507/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLEntityTable.cpp.o [ 4588s] [508/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLElementStack.cpp.o [ 4588s] [509/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/PreloadScanner.cpp.o [ 4589s] [510/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLConstructionSite.cpp.o [ 4589s] [511/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLFormattingElementList.cpp.o [ 4589s] [512/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTreeBuilder.cpp.o [ 4590s] [513/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLTokenizer.cpp.o [ 4590s] [514/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLStackItem.cpp.o [ 4590s] [515/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/parser/HTMLParser.cpp.o [ 4590s] [516/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGAnimatedLength.cpp.o [ 4591s] [517/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGDocument.cpp.o [ 4592s] [518/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGEllipseElement.cpp.o [ 4592s] [519/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Avplay.cpp.o [ 4592s] [520/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGElement.cpp.o [ 4592s] [521/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/TimeRanges.cpp.o [ 4592s] [522/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGClipPathElement.cpp.o [ 4592s] [523/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolylineElement.cpp.o [ 4592s] [524/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGImageElement.cpp.o [ 4592s] [525/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPathElement.cpp.o [ 4593s] [526/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Request.cpp.o [ 4593s] [527/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLineElement.cpp.o [ 4593s] [528/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGLength.cpp.o [ 4593s] [529/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGSVGElement.cpp.o [ 4593s] [530/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGPolygonElement.cpp.o [ 4593s] [531/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGRectElement.cpp.o [ 4594s] [532/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/Console.cpp.o [ 4594s] [533/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/extra/MimeType.cpp.o [ 4595s] [534/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGTextElement.cpp.o [ 4595s] [535/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Body.cpp.o [ 4595s] [536/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Fetch.cpp.o [ 4595s] [537/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/xml/XMLSerializer.cpp.o [ 4595s] [538/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/inspector/Inspector.cpp.o [ 4595s] [539/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/HeadersData.cpp.o [ 4595s] [540/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/FetchUtils.cpp.o [ 4595s] [541/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGScriptElement.cpp.o [ 4595s] [542/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/RequestData.cpp.o [ 4596s] [543/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultReader.cpp.o [ 4596s] [544/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Headers.cpp.o [ 4596s] [545/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGStyleElement.cpp.o [ 4596s] [546/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/ResponseData.cpp.o [ 4596s] [547/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/Response.cpp.o [ 4596s] [548/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamDefaultController.cpp.o [ 4596s] [549/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fileapi/Blob.cpp.o [ 4597s] [550/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStream.cpp.o [ 4597s] [551/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/fetch/stream/ReadableStreamBuffer.cpp.o [ 4597s] [552/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/dom/svg/SVGUseElement.cpp.o [ 4597s] [553/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedCanvas.cpp.o [ 4601s] [554/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameCounterText.cpp.o [ 4602s] [555/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxBlockLayout.cpp.o [ 4602s] [556/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameQuoteText.cpp.o [ 4602s] [557/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedVideo.cpp.o [ 4602s] [558/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameDocument.cpp.o [ 4602s] [559/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInline.cpp.o [ 4603s] [560/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameButtonBox.cpp.o [ 4603s] [561/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBox.cpp.o [ 4603s] [562/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptGroupBox.cpp.o [ 4604s] [563/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameFlexibleBox.cpp.o [ 4604s] [564/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableObjectBox.cpp.o [ 4604s] [565/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameOptionBox.cpp.o [ 4604s] [566/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedIFrame.cpp.o [ 4604s] [567/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameInputBox.cpp.o [ 4604s] [568/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplaced.cpp.o [ 4605s] [569/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/Frame.cpp.o [ 4605s] [570/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameGridBox.cpp.o [ 4606s] [571/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBox.cpp.o [ 4608s] [572/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedObject.cpp.o [ 4608s] [573/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCaptionBox.cpp.o [ 4608s] [574/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameBlockBoxInlineLayout.cpp.o [ 4609s] [575/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameReplacedImage.cpp.o [ 4609s] [576/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameSelectBox.cpp.o [ 4610s] [577/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableCellBox.cpp.o [ 4610s] [578/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableColBox.cpp.o [ 4610s] [579/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableSectionBox.cpp.o [ 4611s] [580/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableBox.cpp.o [ 4611s] [581/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTableRowBox.cpp.o [ 4611s] [582/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGBox.cpp.o [ 4612s] [583/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGCircleBox.cpp.o [ 4612s] [584/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/LayoutRepaintTracker.cpp.o [ 4612s] [585/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/RepaintRegionTracker.cpp.o [ 4612s] [586/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGClipPathBox.cpp.o [ 4613s] [587/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/FrameTreeBuilder.cpp.o [ 4613s] [588/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGEllipseBox.cpp.o [ 4614s] [589/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/battery/Battery.cpp.o [ 4614s] [590/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGInvisibleBox.cpp.o [ 4614s] [591/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGLineBox.cpp.o [ 4614s] [592/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/StackingContext.cpp.o [ 4614s] [593/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/CanvasFillStrokeSource.cpp.o [ 4614s] [594/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastApplication.cpp.o [ 4614s] [595/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastConfig.cpp.o [ 4614s] [596/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/CastServer.cpp.o [ 4614s] [597/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/DIALRunnable.cpp.o [ 4615s] [598/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGRectBox.cpp.o [ 4615s] [599/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/SSDPRunnable.cpp.o [ 4615s] [600/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/ShadowBlur.cpp.o [ 4615s] [601/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolygonBox.cpp.o [ 4615s] [602/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCConfiguration.cpp.o [ 4615s] [603/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCCertificate.cpp.o [ 4615s] [604/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPathBox.cpp.o [ 4615s] [605/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/MediaSource.cpp.o [ 4615s] [606/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBuffer.cpp.o [ 4615s] [607/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediasource/SourceBufferList.cpp.o [ 4616s] [608/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaDevices.cpp.o [ 4616s] [609/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStream.cpp.o [ 4616s] [610/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/MediaStreamTrack.cpp.o [ 4616s] [611/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannel.cpp.o [ 4616s] [612/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDtlsTransport.cpp.o [ 4616s] [613/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCDataChannelEvent.cpp.o [ 4616s] [614/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceServer.cpp.o [ 4616s] [615/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCError.cpp.o [ 4616s] [616/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceCandidate.cpp.o [ 4616s] [617/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGPolylineBox.cpp.o [ 4616s] [618/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Canvas.cpp.o [ 4616s] [619/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCIceTransport.cpp.o [ 4616s] [620/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/Compositor.cpp.o [ 4616s] [621/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnection.cpp.o [ 4616s] [622/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpReceiver.cpp.o [ 4616s] [623/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp.o [ 4616s] [624/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCPeerConnectionIceEvent.cpp.o [ 4616s] [625/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCTrackEvent.cpp.o [ 4616s] [626/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCStatsReport.cpp.o [ 4616s] [627/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSctpTransport.cpp.o [ 4616s] [628/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCSessionDescription.cpp.o [ 4616s] [629/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpTransceiver.cpp.o [ 4616s] [630/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/RTCRtpSender.cpp.o [ 4617s] [631/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/mediastream/WebRtcManager.cpp.o [ 4617s] [632/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/WebSocket.cpp.o [ 4617s] [633/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/LWSRunnable.cpp.o [ 4617s] [634/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/TextDecorationData.cpp.o [ 4617s] [635/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketLWS.cpp.o [ 4617s] [636/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/networking/SocketNN.cpp.o [ 4617s] [637/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGSVGBox.cpp.o [ 4617s] [638/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/ImageDecoder.cpp.o [ 4617s] [639/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/cast/BaseRunnable.cpp.o [ 4617s] [640/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/image/BufferedNativeImageData.cpp.o [ 4617s] [641/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Connection.cpp.o [ 4617s] [642/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/IORunnable.cpp.o [ 4617s] [643/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGUseBox.cpp.o [ 4617s] [644/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/JobQueue.cpp.o [ 4617s] [645/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/Message.cpp.o [ 4618s] [646/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/PositionError.cpp.o [ 4618s] [647/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorker.cpp.o [ 4618s] [648/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerAgent.cpp.o [ 4618s] [649/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameSVGTextBox.cpp.o [ 4618s] [650/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerContainer.cpp.o [ 4619s] [651/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/layout/svg/FrameTreeBuilderSVG.cpp.o [ 4619s] [652/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Coordinates.cpp.o [ 4619s] [653/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/Profiling.cpp.o [ 4619s] [654/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/MessageLoop.cpp.o [ 4619s] [655/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geoposition.cpp.o [ 4619s] [656/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistration.cpp.o [ 4619s] [657/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/canvas/font/Font.cpp.o [ 4619s] [658/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostJobHandler.cpp.o [ 4619s] [659/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRequest.cpp.o [ 4619s] [660/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerClientConnection.cpp.o [ 4619s] [661/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerServer.cpp.o [ 4619s] [662/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerGlobalScope.cpp.o [ 4619s] [663/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ErrorData.cpp.o [ 4619s] [664/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerExecutor.cpp.o [ 4619s] [665/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/message_loop/Timer.cpp.o [ 4620s] [666/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/Notification.cpp.o [ 4620s] [667/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationJob.cpp.o [ 4620s] [668/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/MessageServiceWorker.cpp.o [ 4620s] [669/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/notification/NotificationService.cpp.o [ 4620s] [670/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushManager.cpp.o [ 4620s] [671/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscription.cpp.o [ 4620s] [672/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushSubscriptionOptions.cpp.o [ 4620s] [673/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/push/PushServiceAgent.cpp.o [ 4620s] [674/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/SpeechSynthesis.cpp.o [ 4620s] [675/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/RegistrationOptions.cpp.o [ 4620s] [676/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBuffer.cpp.o [ 4620s] [677/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/tts/TextAlternativeHelper.cpp.o [ 4620s] [678/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequestJob.cpp.o [ 4620s] [679/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioBufferSourceNode.cpp.o [ 4620s] [680/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/MediaElementAudioSourceNode.cpp.o [ 4620s] [681/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/GeolocationTizen.cpp.o [ 4620s] [682/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/location/Geolocation.cpp.o [ 4620s] [683/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioContext.cpp.o [ 4620s] [684/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioDestinationNode.cpp.o [ 4621s] [685/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioNode.cpp.o [ 4621s] [686/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/AudioScheduledSourceNode.cpp.o [ 4621s] [687/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WebWorker.cpp.o [ 4621s] [688/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/webaudio/BaseAudioContext.cpp.o [ 4621s] [689/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerGlobalScope.cpp.o [ 4621s] [690/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerNavigator.cpp.o [ 4621s] [691/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerLocation.cpp.o [ 4621s] [692/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/worker/host/WorkerScriptController.cpp.o [ 4621s] [693/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerRegistrationData.cpp.o [ 4621s] [694/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerData.cpp.o [ 4621s] [695/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/ResourceRequest.cpp.o [ 4621s] [696/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJob.cpp.o [ 4621s] [697/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/ServiceWorkerJobData.cpp.o [ 4621s] [698/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/resource_request/NetworkURLResourceRequestJobDelegate.cpp.o [ 4622s] [699/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Mutex.cpp.o [ 4622s] [700/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/profiling/LayoutFlowLoggerBuilder.cpp.o [ 4622s] [701/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/host/ServiceWorkerHostConnection.cpp.o [ 4622s] [702/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/AdaptedThread.cpp.o [ 4622s] [703/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/serviceworker/client/ServiceWorkerProcessManager.cpp.o [ 4622s] [704/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Semaphore.cpp.o [ 4623s] [705/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/ThreadPool.cpp.o [ 4623s] [706/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/modules/threading/Thread.cpp.o [ 4623s] [707/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSourceParser.cpp.o [ 4623s] [708/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/NavigatorMixin.cpp.o [ 4624s] [709/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WindowOrWorkerGlobalScope.cpp.o [ 4625s] [710/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/storage/Storage.cpp.o [ 4625s] [711/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebBase.cpp.o [ 4625s] [712/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Serializer.cpp.o [ 4625s] [713/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Screen.cpp.o [ 4626s] [714/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSAngle.cpp.o [ 4626s] [715/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/BorderImage.cpp.o [ 4626s] [716/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/CompressedNativeImageDataImpl.cpp.o [ 4627s] [717/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Navigator.cpp.o [ 4627s] [718/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/History.cpp.o [ 4627s] [719/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/EventSource.cpp.o [ 4627s] [720/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSGradientValue.cpp.o [ 4627s] [721/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSFilterFunction.cpp.o [ 4627s] [722/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Location.cpp.o [ 4627s] [723/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/AncestorSelectorFilter.cpp.o [ 4628s] [724/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSLength.cpp.o [ 4628s] [725/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSProperty.cpp.o [ 4629s] [726/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSKeywordValue.cpp.o [ 4629s] [727/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleLookupTrie.cpp.o [ 4630s] [728/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSNumericValue.cpp.o [ 4630s] [729/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSTime.cpp.o [ 4630s] [730/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSRuleList.cpp.o [ 4630s] [731/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CalcData.cpp.o [ 4631s] [732/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/Window.cpp.o [ 4631s] [733/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSVariableSyntaxTreeBuilder.cpp.o [ 4631s] [734/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleValue.cpp.o [ 4631s] [735/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/BrowsingContext.cpp.o [ 4632s] [736/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSUnitValue.cpp.o [ 4632s] [737/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/page/WebView.cpp.o [ 4632s] [738/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ContentData.cpp.o [ 4632s] [739/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CounterStyle.cpp.o [ 4632s] [740/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ImageValue.cpp.o [ 4633s] [741/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSParser.cpp.o [ 4633s] [742/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleRule.cpp.o [ 4634s] [743/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ListStyleData.cpp.o [ 4634s] [744/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/FilterFunctions.cpp.o [ 4634s] [745/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuery.cpp.o [ 4635s] [746/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleSheet.cpp.o [ 4635s] [747/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/NamedColors.cpp.o [ 4635s] [748/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryEvaluator.cpp.o [ 4636s] [749/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaList.cpp.o [ 4636s] [750/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/PositionedMaskData.cpp.o [ 4636s] [751/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/GradientData.cpp.o [ 4636s] [752/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archivable.cpp.o [ 4636s] [753/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ShadowData.cpp.o [ 4636s] [754/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Archiver.cpp.o [ 4637s] [755/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryList.cpp.o [ 4637s] [756/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQueryListMatcher.cpp.o [ 4637s] [757/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaQuerySet.cpp.o [ 4637s] [758/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Length.cpp.o [ 4637s] [759/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleAnimationData.cpp.o [ 4637s] [760/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleBackgroundData.cpp.o [ 4637s] [761/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyleCSSStyleDeclaration.cpp.o [ 4637s] [762/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/ProgramOptions.cpp.o [ 4638s] [763/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/ComputedStyle.cpp.o [ 4638s] [764/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheet.cpp.o [ 4639s] [765/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Unit.cpp.o [ 4639s] [766/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/UnitHelper.cpp.o [ 4639s] [767/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleTransitionData.cpp.o [ 4639s] [768/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/MediaValues.cpp.o [ 4639s] [769/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AttributeName.cpp.o [ 4639s] [770/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Cryptographic.cpp.o [ 4639s] [771/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/AtomicString.cpp.o [ 4639s] [772/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/launcher/WebWorkerEntry.cpp.o [ 4639s] [773/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleSheetList.cpp.o [ 4639s] [774/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/GlobalOptions.cpp.o [ 4640s] [775/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Id.cpp.o [ 4640s] [776/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/LineBreakerIteratorPool.cpp.o [ 4640s] [777/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/Message.cpp.o [ 4640s] [778/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/StyleRule.cpp.o [ 4640s] [779/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/CSSStyleDeclaration.cpp.o [ 4640s] [780/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/RandomEngine.cpp.o [ 4640s] [781/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/QualifiedName.cpp.o [ 4642s] [782/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/String.cpp.o [ 4642s] [783/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/TextConverter.cpp.o [ 4642s] [784/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairoUtils.cpp.o [ 4642s] [785/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URL.cpp.o [ 4642s] [786/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasMock.cpp.o [ 4642s] [787/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/util/URLSearchParams.cpp.o [ 4642s] [788/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasSkia.cpp.o [ 4642s] [789/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorGL.cpp.o [ 4643s] [790/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorMock.cpp.o [ 4643s] [791/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorSkia.cpp.o [ 4643s] [792/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathMock.cpp.o [ 4643s] [793/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathSkia.cpp.o [ 4643s] [794/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/FormData.cpp.o [ 4644s] [795/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CompositorCairo.cpp.o [ 4644s] [796/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/hb-icu/HarfBuzzICU.cpp.o [ 4644s] [797/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/PathCairo.cpp.o [ 4644s] [798/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerWebM.cpp.o [ 4644s] [799/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplMock.cpp.o [ 4644s] [800/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplSkia.cpp.o [ 4645s] [801/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/ImageUtils.cpp.o [ 4645s] [802/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/xml/XMLHttpRequest.cpp.o [ 4645s] [803/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopLibUV.cpp.o [ 4645s] [804/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/Directory.cpp.o [ 4645s] [805/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopWindows.cpp.o [ 4645s] [806/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/AnimatedGIFNativeImageDataImpl.cpp.o [ 4646s] [807/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/file/File.cpp.o [ 4646s] [808/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/NativeImageDataImpl.cpp.o [ 4646s] [809/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/HeaderResource.cpp.o [ 4646s] [810/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/CanvasCairo.cpp.o [ 4646s] [811/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/Demuxer.cpp.o [ 4647s] [812/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/DemuxerMP4.cpp.o [ 4647s] [813/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MP4PacketGenerator.cpp.o [ 4647s] [814/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudio.cpp.o [ 4647s] [815/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayer.cpp.o [ 4648s] [816/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceURL.cpp.o [ 4648s] [817/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerLibUV.cpp.o [ 4648s] [818/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioMock.cpp.o [ 4648s] [819/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerAudioTizen.cpp.o [ 4648s] [820/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTV.cpp.o [ 4648s] [821/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizen.cpp.o [ 4648s] [822/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerWindows.cpp.o [ 4648s] [823/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcLinux.cpp.o [ 4648s] [824/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerTizenBase.cpp.o [ 4648s] [825/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtc.cpp.o [ 4648s] [826/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MediaPlayerWebRtcTizen.cpp.o [ 4648s] [827/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/MockMediaPlayer.cpp.o [ 4648s] [828/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/multimedia/StreamInfo.cpp.o [ 4648s] [829/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/MessageLoopEFL.cpp.o [ 4648s] [830/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinWindows.cpp.o [ 4648s] [831/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSTV.cpp.o [ 4648s] [832/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/tts/TTSBase.cpp.o [ 4648s] [833/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/process/base/Process.cpp.o [ 4648s] [834/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/font/FontImplCairo.cpp.o [ 4648s] [835/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/TimerEFL.cpp.o [ 4648s] [836/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/webrtc/VideoCapturer.cpp.o [ 4649s] [837/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinLibUV.cpp.o [ 4649s] [838/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/FontResource.cpp.o [ 4649s] [839/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/TextResource.cpp.o [ 4649s] [840/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ElementResourceClient.cpp.o [ 4649s] [841/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/canvas/image/SVGNativeImageDataImpl.cpp.o [ 4649s] [842/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/Resource.cpp.o [ 4650s] [843/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/message_loop/mixins/MessageLoopMixinEFL.cpp.o [ 4650s] [844/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/curl/NetworkSharedResourceManager.cpp.o [ 4650s] [845/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/android/AndroidBridge.cpp.o [ 4651s] [846/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPResponse.cpp.o [ 4651s] [847/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/public/DeviceInfo.cpp.o [ 4651s] [848/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPRequest.cpp.o [ 4651s] [849/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebView.cpp.o [ 4651s] [850/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGL.cpp.o [ 4651s] [851/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/VirtualCursorData.cpp.o [ 4651s] [852/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPTransaction.cpp.o [ 4651s] [853/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/network/http/HTTPUtil.cpp.o [ 4651s] [854/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ImageResource.cpp.o [ 4652s] [855/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplHeadless.cpp.o [ 4652s] [856/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/JavaScriptNativeHandler.cpp.o [ 4652s] [857/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/loader/ResourceLoader.cpp.o [ 4652s] [858/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWE.cpp.o [ 4652s] [859/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/dali/LWEWebViewDALi.cpp.o [ 4653s] [860/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/ecore_wayland2/LWEWebViewEcoreWayland2.cpp.o [ 4653s] [861/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/glfw/LWEWebViewGLFW.cpp.o [ 4653s] [862/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/WindowImplGB.cpp.o [ 4653s] [863/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionManager.cpp.o [ 4654s] [864/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/core/style/Style.cpp.o [ 4654s] [865/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/ExtensionAdapter.cpp.o [ 4654s] [866/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/TizenDeviceAPILoaderForEscargot.cpp.o [ 4654s] [867/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/bridge/efl/LWEWebViewEFL.cpp.o [ 4654s] [868/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/platform/window/PlatformWindow.cpp.o [ 4654s] [869/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/Extension.cpp.o [ 4655s] [870/872] Building CXX object CMakeFiles/starfish_object_library.dir/third_party/deviceapi/src/WebWidgetAPIInstance.cpp.o [ 4655s] [871/872] Building CXX object CMakeFiles/starfish_object_library.dir/src/public/LWEWebContainer.cpp.o [ 4859s] [872/872] Linking CXX shared library out_tizen/unified_wearable/release/lib/liblightweight-web-engine.wearable.so [ 4859s] + ninja starfish.executable [ 4862s] [1/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/testRunner.cpp.o [ 4863s] [2/3] Building CXX object CMakeFiles/starfish.executable.dir/src/shell/shell.cpp.o [ 5068s] [3/3] Linking CXX executable out_tizen/unified_wearable/release/lightweight-web-engine.wearable [ 5068s] + exit 0 [ 5068s] Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.6gWli3 [ 5068s] + umask 022 [ 5068s] + cd /home/abuild/rpmbuild/BUILD [ 5068s] + cd lightweight-web-engine-1.0.0 [ 5068s] + LANG=C [ 5068s] + export LANG [ 5068s] + unset DISPLAY [ 5068s] + rm -rf /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5068s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5068s] + rm -rf /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5068s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe [ 5068s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/bin [ 5068s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm//usr/lib/lwe/tv [ 5068s] + cp -fr out_tizen/unified_tv/release/lib/libclipper.so out_tizen/unified_tv/release/lib/liblightweight-web-engine-dali-plugin.tv.so out_tizen/unified_tv/release/lib/liblightweight-web-engine.tv.so out_tizen/unified_tv/release/lib/libmp4parse.so out_tizen/unified_tv/release/lib/libskia_matrix.so out_tizen/unified_tv/release/lib/libtuv.so out_tizen/unified_tv/release/lib/libwebm.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv [ 5069s] + cp -fr out_tizen/unified_tv/release/lib/liblightweight-web-engine-dali-plugin.tv.so out_tizen/unified_tv/release/lib/liblightweight-web-engine.tv.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv [ 5082s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm//usr/lib/lwe/mobile [ 5082s] + cp -fr out_tizen/unified_mobile/release/lib/libclipper.so out_tizen/unified_mobile/release/lib/liblightweight-web-engine-dali-plugin.mobile.so out_tizen/unified_mobile/release/lib/liblightweight-web-engine.mobile.so out_tizen/unified_mobile/release/lib/libmp4parse.so out_tizen/unified_mobile/release/lib/libskia_matrix.so out_tizen/unified_mobile/release/lib/libtuv.so out_tizen/unified_mobile/release/lib/libwebm.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile [ 5082s] + cp -fr out_tizen/unified_mobile/release/lib/liblightweight-web-engine-dali-plugin.mobile.so out_tizen/unified_mobile/release/lib/liblightweight-web-engine.mobile.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile [ 5094s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm//usr/lib/lwe/wearable [ 5094s] + cp -fr out_tizen/unified_wearable/release/lib/libclipper.so out_tizen/unified_wearable/release/lib/liblightweight-web-engine-dali-plugin.wearable.so out_tizen/unified_wearable/release/lib/liblightweight-web-engine.wearable.so out_tizen/unified_wearable/release/lib/libmp4parse.so out_tizen/unified_wearable/release/lib/libskia_matrix.so out_tizen/unified_wearable/release/lib/libtuv.so out_tizen/unified_wearable/release/lib/libwebm.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable [ 5094s] + cp -fr out_tizen/unified_wearable/release/lib/liblightweight-web-engine-dali-plugin.wearable.so out_tizen/unified_wearable/release/lib/liblightweight-web-engine.wearable.so /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable [ 5106s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/include/lightweight-web-engine [ 5106s] + cp inc/LWEWebView.h /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/include/lightweight-web-engine/ [ 5106s] + cp inc/PlatformIntegrationData.h /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/include/lightweight-web-engine/ [ 5106s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/pkgconfig/ [ 5106s] + cp lightweight-web-engine.pc lightweight-web-engine-dali-plugin.pc /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/pkgconfig/ [ 5106s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/etc/ld.so.conf.d/ [ 5106s] + cp lightweight-web-engine.conf /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/etc/ld.so.conf.d/ [ 5106s] + pushd /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe [ 5106s] ~/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe ~/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 5106s] + rm -fr '*.so*' [ 5106s] + ln -s liblightweight-web-engine.so.1 liblightweight-web-engine.so [ 5106s] + ln -s liblightweight-web-engine-dali-plugin.so.1 liblightweight-web-engine-dali-plugin.so [ 5106s] + popd [ 5106s] ~/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 5106s] + pushd /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib [ 5106s] ~/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib ~/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 5106s] + ln -s lwe/liblightweight-web-engine.so liblightweight-web-engine.so [ 5106s] + ln -s lwe/liblightweight-web-engine-dali-plugin.so liblightweight-web-engine-dali-plugin.so [ 5106s] + popd [ 5106s] ~/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 5106s] + /usr/lib/rpm/find-debuginfo.sh /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0 [ 5106s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/libclipper.so [ 5107s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/liblightweight-web-engine-dali-plugin.mobile.so [ 5111s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/liblightweight-web-engine.mobile.so [ 5116s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/libmp4parse.so [ 5116s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/libskia_matrix.so [ 5116s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/libtuv.so [ 5116s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/mobile/libwebm.so [ 5117s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/libclipper.so [ 5117s] *** WARNING: identical binaries are copied, not linked: [ 5117s] /usr/lib/lwe/tv/libclipper.so [ 5117s] and /usr/lib/lwe/mobile/libclipper.so [ 5117s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/liblightweight-web-engine-dali-plugin.tv.so [ 5121s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/liblightweight-web-engine.tv.so [ 5125s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/libmp4parse.so [ 5126s] *** WARNING: identical binaries are copied, not linked: [ 5126s] /usr/lib/lwe/tv/libmp4parse.so [ 5126s] and /usr/lib/lwe/mobile/libmp4parse.so [ 5126s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/libskia_matrix.so [ 5126s] *** WARNING: identical binaries are copied, not linked: [ 5126s] /usr/lib/lwe/tv/libskia_matrix.so [ 5126s] and /usr/lib/lwe/mobile/libskia_matrix.so [ 5126s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/libtuv.so [ 5126s] *** WARNING: identical binaries are copied, not linked: [ 5126s] /usr/lib/lwe/tv/libtuv.so [ 5126s] and /usr/lib/lwe/mobile/libtuv.so [ 5126s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/tv/libwebm.so [ 5126s] *** WARNING: identical binaries are copied, not linked: [ 5126s] /usr/lib/lwe/tv/libwebm.so [ 5126s] and /usr/lib/lwe/mobile/libwebm.so [ 5126s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/libclipper.so [ 5126s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/liblightweight-web-engine-dali-plugin.wearable.so [ 5130s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/liblightweight-web-engine.wearable.so [ 5134s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/libmp4parse.so [ 5135s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/libskia_matrix.so [ 5135s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/libtuv.so [ 5135s] *** WARNING: identical binaries are copied, not linked: [ 5135s] /usr/lib/lwe/wearable/libtuv.so [ 5135s] and /usr/lib/lwe/mobile/libtuv.so [ 5135s] extracting debug info from /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/lib/lwe/wearable/libwebm.so [ 5137s] 40359 blocks [ 5137s] + cp /usr/lib/rpm/debug.manifest /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/lightweight-web-engine-debuginfo.manifest [ 5137s] + cp /usr/lib/rpm/debug.manifest /home/abuild/rpmbuild/BUILD/lightweight-web-engine-1.0.0/lightweight-web-engine-debugsource.manifest [ 5137s] + /usr/lib/rpm/check-buildroot [ 5138s] + /usr/lib/rpm//brp-compress [ 5138s] + /usr/lib/rpm/brp-strip-static-archive /bin/strip [ 5142s] + /usr/lib/rpm/brp-python-hardlink [ 5142s] + /usr/lib/rpm/tizen/find-docs.sh /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5142s] Processing files: lightweight-web-engine-1.0.0-68.2.armv7l [ 5142s] Aptk: PG1hbmlmZXN0PgogICAgPHJlcXVlc3Q+CiAgICAgICAgPGRvbWFpbiBuYW1lPSJf [ 5142s] Ii8+CiAgICA8L3JlcXVlc3Q+CjwvbWFuaWZlc3Q+Cg== [ 5142s] [ 5142s] Provides: lightweight-web-engine = 1.0.0-68.2 lightweight-web-engine(armv7l-32) = 1.0.0-68.2 [ 5142s] Requires(interp): /bin/sh /bin/sh [ 5142s] Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 [ 5142s] Requires(post): /sbin/ldconfig /bin/sh [ 5142s] Requires(postun): /sbin/ldconfig /bin/sh [ 5142s] Processing files: lightweight-web-engine-debugsource-1.0.0-68.2.armv7l [ 5142s] Aptk: PG1hbmlmZXN0PgogPHJlcXVlc3Q+CiAgICA8ZG9tYWluIG5hbWU9Il8iLz4KIDwv [ 5142s] cmVxdWVzdD4KPC9tYW5pZmVzdD4K [ 5142s] [ 5142s] Provides: lightweight-web-engine-debugsource = 1.0.0-68.2 lightweight-web-engine-debugsource(armv7l-32) = 1.0.0-68.2 [ 5142s] Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 [ 5142s] Processing files: lightweight-web-engine-profile_tv-1.0.0-68.2.armv7l [ 5142s] Aptk: PG1hbmlmZXN0PgogICAgPHJlcXVlc3Q+CiAgICAgICAgPGRvbWFpbiBuYW1lPSJf [ 5142s] Ii8+CiAgICA8L3JlcXVlc3Q+CjwvbWFuaWZlc3Q+Cg== [ 5142s] [ 5142s] Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.kio7E6 [ 5142s] + umask 022 [ 5142s] + cd /home/abuild/rpmbuild/BUILD [ 5142s] + cd lightweight-web-engine-1.0.0 [ 5142s] + LICENSEDIR=/home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + export LICENSEDIR [ 5142s] + /bin/mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.LGPL-2.1+ /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.BSD-3-Clause /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.BSL-1.0 /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.ISC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.Zlib /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.BOEHM-GC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.NCSA /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.ICU /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + cp -pr LICENSE.Old-MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_tv [ 5142s] + exit 0 [ 5143s] Provides: libclipper.so liblightweight-web-engine-dali-plugin.so.1 liblightweight-web-engine.so.1 libmp4parse.so libskia_matrix.so libtuv.so libwebm.so lightweight-web-engine-compat = 1.0.0-68.2 lightweight-web-engine-profile_tv = 1.0.0-68.2 lightweight-web-engine-profile_tv(armv7l-32) = 1.0.0-68.2 [ 5143s] Requires(interp): /bin/sh [ 5143s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5143s] Requires(post): /bin/sh [ 5143s] Requires: ld-linux.so.3 ld-linux.so.3(GLIBC_2.4) libc.so.6 libc.so.6(GLIBC_2.11) libc.so.6(GLIBC_2.17) libc.so.6(GLIBC_2.27) libc.so.6(GLIBC_2.28) libc.so.6(GLIBC_2.4) libc.so.6(GLIBC_2.7) libcairo.so.2 libcapi-location-manager.so.0 libclipper.so libcrypto.so.1.1 libcrypto.so.1.1(OPENSSL_1_1_0) libcurl.so.4 libcurl.so.4(CURL_OPENSSL_4) libdali-adaptor.so.0 libdali-core.so.0 libdali-toolkit.so.0 libdl.so.2 libdl.so.2(GLIBC_2.4) libdlog.so.0 libecore.so.1 libecore_evas.so.1 libecore_imf.so.1 libecore_imf_evas.so.1 libelementary.so.1 libevas.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GCC_3.3.1) libgcc_s.so.1(GCC_3.5) libgif.so.7 libharfbuzz.so.0 libjpeg.so.8 libjpeg.so.8(LIBJPEG_8.0) libm.so.6 libm.so.6(GLIBC_2.29) libm.so.6(GLIBC_2.4) libpng16.so.16 libpng16.so.16(PNG16_0) libpthread.so.0 libpthread.so.0(GLIBC_2.4) libskia_matrix.so libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(CXXABI_1.3.11) libstdc++.so.6(CXXABI_1.3.3) libstdc++.so.6(CXXABI_1.3.5) libstdc++.so.6(CXXABI_1.3.8) libstdc++.so.6(CXXABI_ARM_1.3.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.11) libstdc++.so.6(GLIBCXX_3.4.14) libstdc++.so.6(GLIBCXX_3.4.15) libstdc++.so.6(GLIBCXX_3.4.18) libstdc++.so.6(GLIBCXX_3.4.19) libstdc++.so.6(GLIBCXX_3.4.20) libstdc++.so.6(GLIBCXX_3.4.21) libstdc++.so.6(GLIBCXX_3.4.26) libstdc++.so.6(GLIBCXX_3.4.5) libstdc++.so.6(GLIBCXX_3.4.9) libtbm.so.1 libtuv.so rtld(GNU_HASH) [ 5143s] Conflicts: lightweight-web-engine-profile_headless = 1.0.0-68.2 lightweight-web-engine-profile_mobile = 1.0.0-68.2 lightweight-web-engine-profile_wearable = 1.0.0-68.2 [ 5143s] Processing files: lightweight-web-engine-profile_mobile-1.0.0-68.2.armv7l [ 5143s] Aptk: PG1hbmlmZXN0PgogICAgPHJlcXVlc3Q+CiAgICAgICAgPGRvbWFpbiBuYW1lPSJf [ 5143s] Ii8+CiAgICA8L3JlcXVlc3Q+CjwvbWFuaWZlc3Q+Cg== [ 5143s] [ 5143s] Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.BzuLI4 [ 5143s] + umask 022 [ 5143s] + cd /home/abuild/rpmbuild/BUILD [ 5143s] + cd lightweight-web-engine-1.0.0 [ 5143s] + LICENSEDIR=/home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + export LICENSEDIR [ 5143s] + /bin/mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.LGPL-2.1+ /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.BSD-3-Clause /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.BSL-1.0 /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.ISC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.Zlib /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.BOEHM-GC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.NCSA /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.ICU /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + cp -pr LICENSE.Old-MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_mobile [ 5143s] + exit 0 [ 5143s] Provides: libclipper.so liblightweight-web-engine-dali-plugin.so.1 liblightweight-web-engine.so.1 libmp4parse.so libskia_matrix.so libtuv.so libwebm.so lightweight-web-engine-compat = 1.0.0-68.2 lightweight-web-engine-profile_mobile = 1.0.0-68.2 lightweight-web-engine-profile_mobile(armv7l-32) = 1.0.0-68.2 [ 5143s] Requires(interp): /bin/sh [ 5143s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5143s] Requires(post): /bin/sh [ 5143s] Requires: ld-linux.so.3 ld-linux.so.3(GLIBC_2.4) libc.so.6 libc.so.6(GLIBC_2.11) libc.so.6(GLIBC_2.17) libc.so.6(GLIBC_2.27) libc.so.6(GLIBC_2.28) libc.so.6(GLIBC_2.4) libc.so.6(GLIBC_2.7) libcairo.so.2 libcapi-media-player.so.0 libcapi-media-tool.so.0 libclipper.so libcrypto.so.1.1 libcrypto.so.1.1(OPENSSL_1_1_0) libcurl.so.4 libcurl.so.4(CURL_OPENSSL_4) libdali-adaptor.so.0 libdali-core.so.0 libdali-toolkit.so.0 libdl.so.2 libdl.so.2(GLIBC_2.4) libdlog.so.0 libecore.so.1 libecore_evas.so.1 libecore_imf.so.1 libecore_imf_evas.so.1 libelementary.so.1 libevas.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GCC_3.3.1) libgcc_s.so.1(GCC_3.5) libgif.so.7 libharfbuzz.so.0 libjpeg.so.8 libjpeg.so.8(LIBJPEG_8.0) libm.so.6 libm.so.6(GLIBC_2.29) libm.so.6(GLIBC_2.4) libmp4parse.so libpng16.so.16 libpng16.so.16(PNG16_0) libpthread.so.0 libpthread.so.0(GLIBC_2.4) libskia_matrix.so libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(CXXABI_1.3.11) libstdc++.so.6(CXXABI_1.3.3) libstdc++.so.6(CXXABI_1.3.5) libstdc++.so.6(CXXABI_1.3.8) libstdc++.so.6(CXXABI_ARM_1.3.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.11) libstdc++.so.6(GLIBCXX_3.4.14) libstdc++.so.6(GLIBCXX_3.4.15) libstdc++.so.6(GLIBCXX_3.4.18) libstdc++.so.6(GLIBCXX_3.4.19) libstdc++.so.6(GLIBCXX_3.4.20) libstdc++.so.6(GLIBCXX_3.4.21) libstdc++.so.6(GLIBCXX_3.4.26) libstdc++.so.6(GLIBCXX_3.4.5) libstdc++.so.6(GLIBCXX_3.4.9) libtbm.so.1 libtuv.so libwebm.so rtld(GNU_HASH) [ 5143s] Conflicts: lightweight-web-engine-profile_tv = 1.0.0-68.2 lightweight-web-engine-profile_headless = 1.0.0-68.2 lightweight-web-engine-profile_wearable = 1.0.0-68.2 [ 5143s] Processing files: lightweight-web-engine-profile_wearable-1.0.0-68.2.armv7l [ 5143s] Aptk: PG1hbmlmZXN0PgogICAgPHJlcXVlc3Q+CiAgICAgICAgPGRvbWFpbiBuYW1lPSJf [ 5143s] Ii8+CiAgICA8L3JlcXVlc3Q+CjwvbWFuaWZlc3Q+Cg== [ 5143s] [ 5143s] Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.hSnBK2 [ 5143s] + umask 022 [ 5143s] + cd /home/abuild/rpmbuild/BUILD [ 5143s] + cd lightweight-web-engine-1.0.0 [ 5143s] + LICENSEDIR=/home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + export LICENSEDIR [ 5143s] + /bin/mkdir -p /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.LGPL-2.1+ /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.BSD-3-Clause /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.BSL-1.0 /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.ISC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.Zlib /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.BOEHM-GC /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.NCSA /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.ICU /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + cp -pr LICENSE.Old-MIT /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm/usr/share/licenses/lightweight-web-engine-profile_wearable [ 5143s] + exit 0 [ 5143s] Provides: libclipper.so liblightweight-web-engine-dali-plugin.so.1 liblightweight-web-engine.so.1 libmp4parse.so libskia_matrix.so libtuv.so libwebm.so lightweight-web-engine-compat = 1.0.0-68.2 lightweight-web-engine-profile_wearable = 1.0.0-68.2 lightweight-web-engine-profile_wearable(armv7l-32) = 1.0.0-68.2 [ 5143s] Requires(interp): /bin/sh [ 5143s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5143s] Requires(post): /bin/sh [ 5143s] Requires: ld-linux.so.3 ld-linux.so.3(GLIBC_2.4) libbundle.so.0 libc.so.6 libc.so.6(GLIBC_2.11) libc.so.6(GLIBC_2.17) libc.so.6(GLIBC_2.27) libc.so.6(GLIBC_2.28) libc.so.6(GLIBC_2.4) libc.so.6(GLIBC_2.7) libcairo.so.2 libcapi-location-manager.so.0 libcapi-system-device.so.0 libcrypto.so.1.1 libcrypto.so.1.1(OPENSSL_1_1_0) libcurl.so.4 libcurl.so.4(CURL_OPENSSL_4) libdali-adaptor.so.0 libdali-core.so.0 libdali-toolkit.so.0 libdl.so.2 libdl.so.2(GLIBC_2.4) libdlog.so.0 libecore.so.1 libecore_evas.so.1 libecore_imf.so.1 libelementary.so.1 libevas.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GCC_3.3.1) libgcc_s.so.1(GCC_3.5) libgif.so.7 libharfbuzz.so.0 libjpeg.so.8 libjpeg.so.8(LIBJPEG_8.0) libm.so.6 libm.so.6(GLIBC_2.29) libm.so.6(GLIBC_2.4) libpng16.so.16 libpng16.so.16(PNG16_0) libpthread.so.0 libpthread.so.0(GLIBC_2.4) libskia_matrix.so libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(CXXABI_1.3.11) libstdc++.so.6(CXXABI_1.3.3) libstdc++.so.6(CXXABI_1.3.5) libstdc++.so.6(CXXABI_1.3.8) libstdc++.so.6(CXXABI_ARM_1.3.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.11) libstdc++.so.6(GLIBCXX_3.4.14) libstdc++.so.6(GLIBCXX_3.4.15) libstdc++.so.6(GLIBCXX_3.4.18) libstdc++.so.6(GLIBCXX_3.4.19) libstdc++.so.6(GLIBCXX_3.4.20) libstdc++.so.6(GLIBCXX_3.4.21) libstdc++.so.6(GLIBCXX_3.4.26) libstdc++.so.6(GLIBCXX_3.4.5) libstdc++.so.6(GLIBCXX_3.4.9) libtbm.so.1 libtuv.so rtld(GNU_HASH) [ 5143s] Conflicts: lightweight-web-engine-profile_tv = 1.0.0-68.2 lightweight-web-engine-profile_headless = 1.0.0-68.2 lightweight-web-engine-profile_mobile = 1.0.0-68.2 [ 5143s] Processing files: lightweight-web-engine-devel-1.0.0-68.2.armv7l [ 5143s] Aptk: PG1hbmlmZXN0PgogICAgPHJlcXVlc3Q+CiAgICAgICAgPGRvbWFpbiBuYW1lPSJf [ 5143s] Ii8+CiAgICA8L3JlcXVlc3Q+CjwvbWFuaWZlc3Q+Cg== [ 5143s] [ 5144s] Provides: lightweight-web-engine-devel = 1.0.0-68.2 lightweight-web-engine-devel(armv7l-32) = 1.0.0-68.2 pkgconfig(lightweight-web-engine) = 0.0.1 pkgconfig(lightweight-web-engine-dali-plugin) = 0.0.1 [ 5144s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5144s] Requires: /usr/bin/pkg-config [ 5144s] Processing files: lightweight-web-engine-profile_tv-debuginfo-1.0.0-68.2.armv7l [ 5144s] Aptk: PG1hbmlmZXN0PgogPHJlcXVlc3Q+CiAgICA8ZG9tYWluIG5hbWU9Il8iLz4KIDwv [ 5144s] cmVxdWVzdD4KPC9tYW5pZmVzdD4K [ 5144s] [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5144s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] Provides: lightweight-web-engine-profile_tv-debuginfo = 1.0.0-68.2 lightweight-web-engine-profile_tv-debuginfo(armv7l-32) = 1.0.0-68.2 [ 5145s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5145s] Processing files: lightweight-web-engine-profile_mobile-debuginfo-1.0.0-68.2.armv7l [ 5145s] Aptk: PG1hbmlmZXN0PgogPHJlcXVlc3Q+CiAgICA8ZG9tYWluIG5hbWU9Il8iLz4KIDwv [ 5145s] cmVxdWVzdD4KPC9tYW5pZmVzdD4K [ 5145s] [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5145s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] Provides: lightweight-web-engine-profile_mobile-debuginfo = 1.0.0-68.2 lightweight-web-engine-profile_mobile-debuginfo(armv7l-32) = 1.0.0-68.2 [ 5146s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5146s] Processing files: lightweight-web-engine-profile_wearable-debuginfo-1.0.0-68.2.armv7l [ 5146s] Aptk: PG1hbmlmZXN0PgogPHJlcXVlc3Q+CiAgICA8ZG9tYWluIG5hbWU9Il8iLz4KIDwv [ 5146s] cmVxdWVzdD4KPC9tYW5pZmVzdD4K [ 5146s] [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5146s] warning: File listed twice: /usr/lib/debug/.build-id [ 5148s] Provides: lightweight-web-engine-profile_wearable-debuginfo = 1.0.0-68.2 lightweight-web-engine-profile_wearable-debuginfo(armv7l-32) = 1.0.0-68.2 [ 5148s] Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [ 5148s] Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5148s] warning: Could not canonicalize hostname: obspw03 [ 5151s] Wrote: /home/abuild/rpmbuild/SRPMS/lightweight-web-engine-1.0.0-68.2.src.rpm [ 5151s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-1.0.0-68.2.armv7l.rpm [ 5156s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-debugsource-1.0.0-68.2.armv7l.rpm [ 5161s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_tv-1.0.0-68.2.armv7l.rpm [ 5166s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_mobile-1.0.0-68.2.armv7l.rpm [ 5170s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_wearable-1.0.0-68.2.armv7l.rpm [ 5170s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-devel-1.0.0-68.2.armv7l.rpm [ 5200s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_tv-debuginfo-1.0.0-68.2.armv7l.rpm [ 5229s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_mobile-debuginfo-1.0.0-68.2.armv7l.rpm [ 5256s] Wrote: /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_wearable-debuginfo-1.0.0-68.2.armv7l.rpm [ 5256s] Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.YRUA06 [ 5256s] + umask 022 [ 5256s] + cd /home/abuild/rpmbuild/BUILD [ 5256s] + cd lightweight-web-engine-1.0.0 [ 5256s] + /bin/rm -rf /home/abuild/rpmbuild/BUILDROOT/lightweight-web-engine-1.0.0-68.2.arm [ 5256s] + exit 0 [ 5256s] ... checking for files with abuild user/group [ 5257s] ... creating baselibs [ 5257s] ... comparing built packages with the former built [ 5257s] /usr/lib/build/pkg-diff.sh [ 5257s] compare /.build.oldpackages/lightweight-web-engine-1.0.0-68.1.src.rpm /home/abuild/rpmbuild/SRPMS/lightweight-web-engine-1.0.0-68.2.src.rpm [ 5257s] This is not a prerelease project. Compare the project name. [ 5257s] comparing rpmtags [ 5258s] comparing RELEASE [ 5258s] comparing PROVIDES [ 5258s] comparing scripts [ 5258s] comparing filelist [ 5258s] comparing file checksum [ 5258s] RPM meta information is identical [ 5258s] compare /.build.oldpackages/lightweight-web-engine-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-1.0.0-68.2.armv7l.rpm [ 5258s] Comparing lightweight-web-engine-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-1.0.0-68.2.armv7l.rpm [ 5258s] This is not a prerelease project. Compare the project name. [ 5258s] comparing rpmtags [ 5258s] comparing RELEASE [ 5258s] comparing PROVIDES [ 5258s] comparing scripts [ 5258s] comparing filelist [ 5258s] comparing file checksum [ 5258s] creating rename script [ 5258s] RPM meta information is identical [ 5258s] compare /.build.oldpackages/lightweight-web-engine-debugsource-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-debugsource-1.0.0-68.2.armv7l.rpm [ 5258s] Comparing lightweight-web-engine-debugsource-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-debugsource-1.0.0-68.2.armv7l.rpm [ 5258s] This is not a prerelease project. Compare the project name. [ 5258s] comparing rpmtags [ 5258s] comparing RELEASE [ 5258s] comparing PROVIDES [ 5258s] comparing scripts [ 5259s] comparing filelist [ 5259s] comparing file checksum [ 5259s] creating rename script [ 5259s] RPM meta information is identical [ 5259s] compare /.build.oldpackages/lightweight-web-engine-devel-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-devel-1.0.0-68.2.armv7l.rpm [ 5259s] Comparing lightweight-web-engine-devel-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-devel-1.0.0-68.2.armv7l.rpm [ 5259s] This is not a prerelease project. Compare the project name. [ 5259s] comparing rpmtags [ 5259s] comparing RELEASE [ 5259s] comparing PROVIDES [ 5259s] comparing scripts [ 5259s] comparing filelist [ 5259s] comparing file checksum [ 5259s] creating rename script [ 5259s] RPM meta information is identical [ 5259s] compare /.build.oldpackages/lightweight-web-engine-profile_mobile-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_mobile-1.0.0-68.2.armv7l.rpm [ 5259s] Comparing lightweight-web-engine-profile_mobile-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-profile_mobile-1.0.0-68.2.armv7l.rpm [ 5259s] This is not a prerelease project. Compare the project name. [ 5259s] comparing rpmtags [ 5259s] comparing RELEASE [ 5259s] comparing PROVIDES [ 5259s] comparing scripts [ 5259s] comparing filelist [ 5259s] comparing file checksum [ 5260s] creating rename script [ 5260s] RPM file checksum differs. [ 5260s] Extracting packages [ 5303s] /usr/lib/lwe/mobile/liblightweight-web-engine-dali-plugin.mobile.so differs in ELF section .rodata [ 5303s] --- /tmp/tmp.xWzdv35482/tmp.pZZFA35581 2020-05-15 10:44:22.991780908 +0000 [ 5303s] +++ /tmp/tmp.xWzdv35482/tmp.YtTmY35583 2020-05-15 10:44:23.039781057 +0000 [ 5303s] @@ -10502,7 +10502,7 @@ [ 5303s] 6d1db8 01000000 00000000 0000803f 00000000 ...........?.... [ 5303s] 6d1dc8 0000803f 0000003f 00000000 0000803f ...?...?.......? [ 5303s] 6d1dd8 00000000 0000803f 0000003f db0f4940 .......?...?..I@ [ 5303s] - 6d1de8 db0fc93f db0f493f 01000000 38000000 ...?..I?....8... [ 5303s] + 6d1de8 db0fc93f db0f493f 01000000 3b000000 ...?..I?....;... [ 5303s] 6d1df8 00000000 00000000 00000000 01000000 ................ [ 5303s] 6d1e08 02000000 03000000 04000000 05000000 ................ [ 5303s] 6d1e18 00000000 21000000 40000000 23000000 ....!...@...#... [ 5303s] compare /.build.oldpackages/lightweight-web-engine-profile_mobile-debuginfo-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_mobile-debuginfo-1.0.0-68.2.armv7l.rpm [ 5303s] skipping -debuginfo package [ 5303s] compare /.build.oldpackages/lightweight-web-engine-profile_tv-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_tv-1.0.0-68.2.armv7l.rpm [ 5303s] Comparing lightweight-web-engine-profile_tv-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-profile_tv-1.0.0-68.2.armv7l.rpm [ 5303s] This is not a prerelease project. Compare the project name. [ 5303s] comparing rpmtags [ 5303s] comparing RELEASE [ 5303s] comparing PROVIDES [ 5303s] comparing scripts [ 5303s] comparing filelist [ 5303s] comparing file checksum [ 5303s] creating rename script [ 5303s] RPM file checksum differs. [ 5303s] Extracting packages [ 5342s] /usr/lib/lwe/tv/liblightweight-web-engine-dali-plugin.tv.so differs in ELF section .rodata [ 5342s] --- /tmp/tmp.TmcYw36315/tmp.RTzLf36441 2020-05-15 10:45:02.451903210 +0000 [ 5342s] +++ /tmp/tmp.TmcYw36315/tmp.tmDja36443 2020-05-15 10:45:02.499903360 +0000 [ 5342s] @@ -9894,7 +9894,7 @@ [ 5342s] 68ff08 00000000 0000803f 00000000 0000803f .......?.......? [ 5342s] 68ff18 0000003f 00000000 0000803f 00000000 ...?.......?.... [ 5342s] 68ff28 0000803f 0000003f db0f4940 db0fc93f ...?...?..I@...? [ 5342s] - 68ff38 db0f493f 01000000 38000000 00000000 ..I?....8....... [ 5342s] + 68ff38 db0f493f 01000000 3b000000 00000000 ..I?....;....... [ 5342s] 68ff48 00000000 00000000 01000000 02000000 ................ [ 5342s] 68ff58 03000000 04000000 05000000 00000000 ................ [ 5342s] 68ff68 21000000 40000000 23000000 24000000 !...@...#...$... [ 5342s] compare /.build.oldpackages/lightweight-web-engine-profile_tv-debuginfo-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_tv-debuginfo-1.0.0-68.2.armv7l.rpm [ 5342s] skipping -debuginfo package [ 5342s] compare /.build.oldpackages/lightweight-web-engine-profile_wearable-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_wearable-1.0.0-68.2.armv7l.rpm [ 5342s] Comparing lightweight-web-engine-profile_wearable-1.0.0-68.1.armv7l.rpm to lightweight-web-engine-profile_wearable-1.0.0-68.2.armv7l.rpm [ 5343s] This is not a prerelease project. Compare the project name. [ 5343s] comparing rpmtags [ 5343s] comparing RELEASE [ 5343s] comparing PROVIDES [ 5343s] comparing scripts [ 5343s] comparing filelist [ 5343s] comparing file checksum [ 5343s] creating rename script [ 5343s] RPM file checksum differs. [ 5343s] Extracting packages [ 5368s] /usr/lib/lwe/wearable/liblightweight-web-engine-dali-plugin.wearable.so differs in ELF section .rodata [ 5368s] --- /tmp/tmp.aXxnJ38207/tmp.hNFvh38316 2020-05-15 10:45:28.135983380 +0000 [ 5368s] +++ /tmp/tmp.aXxnJ38207/tmp.Tsprf38318 2020-05-15 10:45:28.179983518 +0000 [ 5368s] @@ -9266,7 +9266,7 @@ [ 5368s] 4a65a8 00000000 0000803f 00000000 0000803f .......?.......? [ 5368s] 4a65b8 0000003f 00000000 0000803f 00000000 ...?.......?.... [ 5368s] 4a65c8 0000803f 0000003f db0f4940 db0fc93f ...?...?..I@...? [ 5368s] - 4a65d8 db0f493f 01000000 38000000 00000000 ..I?....8....... [ 5368s] + 4a65d8 db0f493f 01000000 3b000000 00000000 ..I?....;....... [ 5368s] 4a65e8 00000000 00000000 01000000 02000000 ................ [ 5368s] 4a65f8 03000000 04000000 05000000 00000000 ................ [ 5368s] 4a6608 21402324 255e262a 282a5a4e 31394441 !@#$%^&*(*ZN19DA [ 5368s] compare /.build.oldpackages/lightweight-web-engine-profile_wearable-debuginfo-1.0.0-68.1.armv7l.rpm /home/abuild/rpmbuild/RPMS/armv7l/lightweight-web-engine-profile_wearable-debuginfo-1.0.0-68.2.armv7l.rpm [ 5368s] skipping -debuginfo package [ 5368s] [ 5368s] obspw03 finished "build lightweight-web-engine.spec" at Fri May 15 10:45:28 UTC 2020. [ 5368s] Retried build at Mon May 18 23:35:58 2020 returned same result, skipped Retried build at Tue May 19 09:57:41 2020 returned same result, skipped Retried build at Wed May 20 13:14:13 2020 returned same result, skipped Retried build at Wed May 20 23:22:57 2020 returned same result, skipped Retried build at Thu May 21 01:44:19 2020 returned same result, skipped Retried build at Thu May 21 03:00:44 2020 returned same result, skipped