mecat2 →
0.0+git20200428.f54c542+ds-2 →
armhf → 2020-10-21 09:47:37
sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on testbuildd
+==============================================================================+
| mecat2 0.0+git20200428.f54c542+ds-2 (armhf) Wed, 21 Oct 2020 09:32:24 +0000 |
+==============================================================================+
Package: mecat2
Version: 0.0+git20200428.f54c542+ds-2
Source Version: 0.0+git20200428.f54c542+ds-2
Distribution: bullseye-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf
I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/bullseye-staging-armhf-sbuild-91ca1bae-bc37-4c50-a696-67a5b217a5b8' with '<<CHROOT>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 http://172.17.0.1/private bullseye-staging InRelease [11.3 kB]
Get:2 http://172.17.0.1/private bullseye-staging/main Sources [11.7 MB]
Get:3 http://172.17.0.1/private bullseye-staging/main armhf Packages [12.7 MB]
Fetched 24.4 MB in 28s (871 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Fetch source files |
+------------------------------------------------------------------------------+
Check APT
---------
Checking available source versions...
Download source files with APT
------------------------------
Reading package lists...
NOTICE: 'mecat2' packaging is maintained in the 'Git' version control system at:
https://salsa.debian.org/med-team/mecat2.git
Please use:
git clone https://salsa.debian.org/med-team/mecat2.git
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 339 MB of source archives.
Get:1 http://172.17.0.1/private bullseye-staging/main mecat2 0.0+git20200428.f54c542+ds-2 (dsc) [2123 B]
Get:2 http://172.17.0.1/private bullseye-staging/main mecat2 0.0+git20200428.f54c542+ds-2 (tar) [381 kB]
Get:3 http://172.17.0.1/private bullseye-staging/main mecat2 0.0+git20200428.f54c542+ds-2 (diff) [339 MB]
Fetched 339 MB in 2min 35s (2193 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/mecat2-jRmD7p/mecat2-0.0+git20200428.f54c542+ds' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/mecat2-jRmD7p' with '<<BUILDDIR>>'
+------------------------------------------------------------------------------+
| Install build-essential |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<<BUILDDIR>>/resolver-JWpCXS/apt_archive/sbuild-build-depends-core-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: sbuild-build-depends-core-dummy
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
gpg: keybox '/<<BUILDDIR>>/resolver-JWpCXS/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-JWpCXS/gpg/trustdb.gpg: trustdb created
gpg: key 35506D9A48F77B2E: public key "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: key 35506D9A48F77B2E: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 35506D9A48F77B2E: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Packages [432 B]
Fetched 2108 B in 1s (2821 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...
Install core build dependencies (apt-based resolver)
----------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
bsdextrautils netbase sensible-utils
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
sbuild-build-depends-core-dummy
0 upgraded, 1 newly installed, 0 to remove and 46 not upgraded.
Need to get 852 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [852 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 852 B in 0s (23.1 kB/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 12495 files and directories currently installed.)
Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ...
Setting up sbuild-build-depends-core-dummy (0.invalid.0) ...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Check architectures |
+------------------------------------------------------------------------------+
Arch check ok (armhf included in any)
+------------------------------------------------------------------------------+
| Install package build dependencies |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: debhelper-compat (= 13), zlib1g-dev, perl
Filtered Build-Depends: debhelper-compat (= 13), zlib1g-dev, perl
dpkg-deb: building package 'sbuild-build-depends-mecat2-dummy' in '/<<BUILDDIR>>/resolver-JWpCXS/apt_archive/sbuild-build-depends-mecat2-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: sbuild-build-depends-core-dummy sbuild-build-depends-mecat2-dummy
dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Sources [501 B]
Get:5 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ Packages [581 B]
Fetched 2415 B in 1s (3133 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...
Install mecat2 build dependencies (apt-based resolver)
------------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following package was automatically installed and is no longer required:
netbase
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
autoconf automake autopoint autotools-dev debhelper dh-autoreconf
dh-strip-nondeterminism dwz file gettext gettext-base groff-base
intltool-debian libarchive-zip-perl libcroco3 libdebhelper-perl libelf1
libfile-stripnondeterminism-perl libglib2.0-0 libicu67 libmagic-mgc
libmagic1 libpipeline1 libsigsegv2 libsub-override-perl libtool libuchardet0
libxml2 m4 man-db po-debconf zlib1g-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc dh-make gettext-doc
libasprintf-dev libgettextpo-dev groff libtool-doc gfortran
| fortran95-compiler gcj-jdk m4-doc apparmor less www-browser
libmail-box-perl
Recommended packages:
curl | wget | lynx libarchive-cpio-perl libglib2.0-data shared-mime-info
xdg-user-dirs libltdl-dev libmail-sendmail-perl
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev debhelper dh-autoreconf
dh-strip-nondeterminism dwz file gettext gettext-base groff-base
intltool-debian libarchive-zip-perl libcroco3 libdebhelper-perl libelf1
libfile-stripnondeterminism-perl libglib2.0-0 libicu67 libmagic-mgc
libmagic1 libpipeline1 libsigsegv2 libsub-override-perl libtool libuchardet0
libxml2 m4 man-db po-debconf sbuild-build-depends-mecat2-dummy zlib1g-dev
0 upgraded, 33 newly installed, 0 to remove and 46 not upgraded.
Need to get 18.6 MB of archives.
After this operation, 68.6 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-JWpCXS/apt_archive ./ sbuild-build-depends-mecat2-dummy 0.invalid.0 [868 B]
Get:2 http://172.17.0.1/private bullseye-staging/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB]
Get:3 http://172.17.0.1/private bullseye-staging/main armhf groff-base armhf 1.22.4-5 [783 kB]
Get:4 http://172.17.0.1/private bullseye-staging/main armhf libpipeline1 armhf 1.5.3-1 [29.9 kB]
Get:5 http://172.17.0.1/private bullseye-staging/main armhf man-db armhf 2.9.3-2 [1269 kB]
Get:6 http://172.17.0.1/private bullseye-staging/main armhf libmagic-mgc armhf 1:5.38-5 [262 kB]
Get:7 http://172.17.0.1/private bullseye-staging/main armhf libmagic1 armhf 1:5.38-5 [113 kB]
Get:8 http://172.17.0.1/private bullseye-staging/main armhf file armhf 1:5.38-5 [67.0 kB]
Get:9 http://172.17.0.1/private bullseye-staging/main armhf gettext-base armhf 0.19.8.1-10 [117 kB]
Get:10 http://172.17.0.1/private bullseye-staging/main armhf libsigsegv2 armhf 2.12-2 [32.3 kB]
Get:11 http://172.17.0.1/private bullseye-staging/main armhf m4 armhf 1.4.18-4 [185 kB]
Get:12 http://172.17.0.1/private bullseye-staging/main armhf autoconf all 2.69-11.1 [341 kB]
Get:13 http://172.17.0.1/private bullseye-staging/main armhf autotools-dev all 20180224.1 [77.0 kB]
Get:14 http://172.17.0.1/private bullseye-staging/main armhf automake all 1:1.16.2-4 [801 kB]
Get:15 http://172.17.0.1/private bullseye-staging/main armhf autopoint all 0.19.8.1-10 [435 kB]
Get:16 http://172.17.0.1/private bullseye-staging/main armhf libtool all 2.4.6-14 [513 kB]
Get:17 http://172.17.0.1/private bullseye-staging/main armhf dh-autoreconf all 19 [16.9 kB]
Get:18 http://172.17.0.1/private bullseye-staging/main armhf libdebhelper-perl all 13.2.1 [188 kB]
Get:19 http://172.17.0.1/private bullseye-staging/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get:20 http://172.17.0.1/private bullseye-staging/main armhf libsub-override-perl all 0.09-2 [10.2 kB]
Get:21 http://172.17.0.1/private bullseye-staging/main armhf libfile-stripnondeterminism-perl all 1.9.0-1 [25.5 kB]
Get:22 http://172.17.0.1/private bullseye-staging/main armhf dh-strip-nondeterminism all 1.9.0-1 [15.2 kB]
Get:23 http://172.17.0.1/private bullseye-staging/main armhf libelf1 armhf 0.181-1 [161 kB]
Get:24 http://172.17.0.1/private bullseye-staging/main armhf dwz armhf 0.13-5 [142 kB]
Get:25 http://172.17.0.1/private bullseye-staging/main armhf libglib2.0-0 armhf 2.66.1-1 [1174 kB]
Get:26 http://172.17.0.1/private bullseye-staging/main armhf libicu67 armhf 67.1-4 [8289 kB]
Get:27 http://172.17.0.1/private bullseye-staging/main armhf libxml2 armhf 2.9.10+dfsg-6.1 [578 kB]
Get:28 http://172.17.0.1/private bullseye-staging/main armhf libcroco3 armhf 0.6.13-1 [133 kB]
Get:29 http://172.17.0.1/private bullseye-staging/main armhf gettext armhf 0.19.8.1-10 [1219 kB]
Get:30 http://172.17.0.1/private bullseye-staging/main armhf intltool-debian all 0.35.0+20060710.5 [26.8 kB]
Get:31 http://172.17.0.1/private bullseye-staging/main armhf po-debconf all 1.0.21 [248 kB]
Get:32 http://172.17.0.1/private bullseye-staging/main armhf debhelper all 13.2.1 [1007 kB]
Get:33 http://172.17.0.1/private bullseye-staging/main armhf zlib1g-dev armhf 1:1.2.11.dfsg-2 [184 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 18.6 MB in 7s (2596 kB/s)
Selecting previously unselected package libuchardet0:armhf.
(Reading database ... 12495 files and directories currently installed.)
Preparing to unpack .../00-libuchardet0_0.0.7-1_armhf.deb ...
Unpacking libuchardet0:armhf (0.0.7-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../01-groff-base_1.22.4-5_armhf.deb ...
Unpacking groff-base (1.22.4-5) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../02-libpipeline1_1.5.3-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.3-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../03-man-db_2.9.3-2_armhf.deb ...
Unpacking man-db (2.9.3-2) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../04-libmagic-mgc_1%3a5.38-5_armhf.deb ...
Unpacking libmagic-mgc (1:5.38-5) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../05-libmagic1_1%3a5.38-5_armhf.deb ...
Unpacking libmagic1:armhf (1:5.38-5) ...
Selecting previously unselected package file.
Preparing to unpack .../06-file_1%3a5.38-5_armhf.deb ...
Unpacking file (1:5.38-5) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../07-gettext-base_0.19.8.1-10_armhf.deb ...
Unpacking gettext-base (0.19.8.1-10) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../08-libsigsegv2_2.12-2_armhf.deb ...
Unpacking libsigsegv2:armhf (2.12-2) ...
Selecting previously unselected package m4.
Preparing to unpack .../09-m4_1.4.18-4_armhf.deb ...
Unpacking m4 (1.4.18-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../10-autoconf_2.69-11.1_all.deb ...
Unpacking autoconf (2.69-11.1) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../11-autotools-dev_20180224.1_all.deb ...
Unpacking autotools-dev (20180224.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../12-automake_1%3a1.16.2-4_all.deb ...
Unpacking automake (1:1.16.2-4) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../13-autopoint_0.19.8.1-10_all.deb ...
Unpacking autopoint (0.19.8.1-10) ...
Selecting previously unselected package libtool.
Preparing to unpack .../14-libtool_2.4.6-14_all.deb ...
Unpacking libtool (2.4.6-14) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../15-dh-autoreconf_19_all.deb ...
Unpacking dh-autoreconf (19) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../16-libdebhelper-perl_13.2.1_all.deb ...
Unpacking libdebhelper-perl (13.2.1) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../17-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libsub-override-perl.
Preparing to unpack .../18-libsub-override-perl_0.09-2_all.deb ...
Unpacking libsub-override-perl (0.09-2) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../19-libfile-stripnondeterminism-perl_1.9.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.9.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../20-dh-strip-nondeterminism_1.9.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.9.0-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../21-libelf1_0.181-1_armhf.deb ...
Unpacking libelf1:armhf (0.181-1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../22-dwz_0.13-5_armhf.deb ...
Unpacking dwz (0.13-5) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../23-libglib2.0-0_2.66.1-1_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.66.1-1) ...
Selecting previously unselected package libicu67:armhf.
Preparing to unpack .../24-libicu67_67.1-4_armhf.deb ...
Unpacking libicu67:armhf (67.1-4) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../25-libxml2_2.9.10+dfsg-6.1_armhf.deb ...
Unpacking libxml2:armhf (2.9.10+dfsg-6.1) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../26-libcroco3_0.6.13-1_armhf.deb ...
Unpacking libcroco3:armhf (0.6.13-1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../27-gettext_0.19.8.1-10_armhf.deb ...
Unpacking gettext (0.19.8.1-10) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../28-intltool-debian_0.35.0+20060710.5_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.5) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../29-po-debconf_1.0.21_all.deb ...
Unpacking po-debconf (1.0.21) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../30-debhelper_13.2.1_all.deb ...
Unpacking debhelper (13.2.1) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../31-zlib1g-dev_1%3a1.2.11.dfsg-2_armhf.deb ...
Unpacking zlib1g-dev:armhf (1:1.2.11.dfsg-2) ...
Selecting previously unselected package sbuild-build-depends-mecat2-dummy.
Preparing to unpack .../32-sbuild-build-depends-mecat2-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-mecat2-dummy (0.invalid.0) ...
Setting up libpipeline1:armhf (1.5.3-1) ...
Setting up libicu67:armhf (67.1-4) ...
Setting up libmagic-mgc (1:5.38-5) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libglib2.0-0:armhf (2.66.1-1) ...
No schema files found: doing nothing.
Setting up libdebhelper-perl (13.2.1) ...
Setting up libmagic1:armhf (1:5.38-5) ...
Setting up gettext-base (0.19.8.1-10) ...
Setting up file (1:5.38-5) ...
Setting up autotools-dev (20180224.1) ...
Setting up libsigsegv2:armhf (2.12-2) ...
Setting up autopoint (0.19.8.1-10) ...
Setting up zlib1g-dev:armhf (1:1.2.11.dfsg-2) ...
Setting up libuchardet0:armhf (0.0.7-1) ...
Setting up libsub-override-perl (0.09-2) ...
Setting up libelf1:armhf (0.181-1) ...
Setting up libxml2:armhf (2.9.10+dfsg-6.1) ...
Setting up libfile-stripnondeterminism-perl (1.9.0-1) ...
Setting up libtool (2.4.6-14) ...
Setting up m4 (1.4.18-4) ...
Setting up libcroco3:armhf (0.6.13-1) ...
Setting up autoconf (2.69-11.1) ...
Setting up dh-strip-nondeterminism (1.9.0-1) ...
Setting up dwz (0.13-5) ...
Setting up groff-base (1.22.4-5) ...
Setting up automake (1:1.16.2-4) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up gettext (0.19.8.1-10) ...
Setting up man-db (2.9.3-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up intltool-debian (0.35.0+20060710.5) ...
Setting up po-debconf (1.0.21) ...
Setting up debhelper (13.2.1) ...
Setting up sbuild-build-depends-mecat2-dummy (0.invalid.0) ...
Setting up dh-autoreconf (19) ...
Processing triggers for libc-bin (2.31-3+rpi1) ...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 4.9.0-0.bpo.6-armmp armhf (armv7l)
Toolchain package versions: binutils_2.35-2+rpi1 dpkg-dev_1.20.5+rpi1 g++-10_10.2.0-5+rpi1 gcc-10_10.2.0-5+rpi1 libc6-dev_2.31-3+rpi1 libstdc++-10-dev_10.2.0-5+rpi1 libstdc++6_10.2.0-5+rpi1 linux-libc-dev_5.7.10-1+rpi1
Package versions: adduser_3.118 apt_2.1.10 aptitude_0.8.13-2 aptitude-common_0.8.13-2 autoconf_2.69-11.1 automake_1:1.16.2-4 autopoint_0.19.8.1-10 autotools-dev_20180224.1 base-files_11+rpi1 base-passwd_3.5.47 bash_5.0-7 binutils_2.35-2+rpi1 binutils-arm-linux-gnueabihf_2.35-2+rpi1 binutils-common_2.35-2+rpi1 bsdextrautils_2.36-3 bsdutils_1:2.36-3 build-essential_12.8 bzip2_1.0.8-4 coreutils_8.30-3 cpp_4:10.1.0-1+rpi1 cpp-10_10.2.0-5+rpi1 dash_0.5.10.2-7 debconf_1.5.74 debhelper_13.2.1 debianutils_4.9.1 dh-autoreconf_19 dh-strip-nondeterminism_1.9.0-1 diffutils_1:3.7-3 dirmngr_2.2.20-1 dpkg_1.20.5+rpi1 dpkg-dev_1.20.5+rpi1 dwz_0.13-5 e2fsprogs_1.45.6-1 fakeroot_1.24-1 file_1:5.38-5 findutils_4.7.0-1 g++_4:10.1.0-1+rpi1 g++-10_10.2.0-5+rpi1 gcc_4:10.1.0-1+rpi1 gcc-10_10.2.0-5+rpi1 gcc-10-base_10.2.0-5+rpi1 gcc-6-base_6.5.0-1+rpi3 gcc-7-base_7.5.0-6+rpi1+b1 gcc-8-base_8.4.0-4+rpi1+b1 gettext_0.19.8.1-10 gettext-base_0.19.8.1-10 gnupg_2.2.20-1 gnupg-l10n_2.2.20-1 gnupg-utils_2.2.20-1 gpg_2.2.20-1 gpg-agent_2.2.20-1 gpg-wks-client_2.2.20-1 gpg-wks-server_2.2.20-1 gpgconf_2.2.20-1 gpgsm_2.2.20-1 gpgv_2.2.20-1 grep_3.4-1 groff-base_1.22.4-5 gzip_1.10-2 hostname_3.23 init-system-helpers_1.58 intltool-debian_0.35.0+20060710.5 libacl1_2.2.53-8 libapt-pkg6.0_2.1.10 libarchive-zip-perl_1.68-1 libasan6_10.2.0-5+rpi1 libassuan0_2.5.3-7.1 libatomic1_10.2.0-5+rpi1 libattr1_1:2.4.48-5 libaudit-common_1:2.8.5-3 libaudit1_1:2.8.5-3 libbinutils_2.35-2+rpi1 libblkid1_2.36-3 libboost-iostreams1.71.0_1.71.0-6+b1 libbz2-1.0_1.0.8-4 libc-bin_2.31-3+rpi1 libc-dev-bin_2.31-3+rpi1 libc6_2.31-3+rpi1 libc6-dev_2.31-3+rpi1 libcap-ng0_0.7.9-2.2 libcc1-0_10.2.0-5+rpi1 libcom-err2_1.45.6-1 libcroco3_0.6.13-1 libcrypt-dev_1:4.4.17-1 libcrypt1_1:4.4.17-1 libctf-nobfd0_2.35-2+rpi1 libctf0_2.35-2+rpi1 libcwidget4_0.5.18-5 libdb5.3_5.3.28+dfsg1-0.6 libdebconfclient0_0.253 libdebhelper-perl_13.2.1 libdpkg-perl_1.20.5+rpi1 libelf1_0.181-1 libext2fs2_1.45.6-1 libfakeroot_1.24-1 libffi7_3.3-4 libfile-stripnondeterminism-perl_1.9.0-1 libgcc-10-dev_10.2.0-5+rpi1 libgcc-s1_10.2.0-5+rpi1 libgcrypt20_1.8.6-2 libgdbm-compat4_1.18.1-5.1 libgdbm6_1.18.1-5.1 libglib2.0-0_2.66.1-1 libgmp10_2:6.2.0+dfsg-6 libgnutls30_3.6.14-2+b1 libgomp1_10.2.0-5+rpi1 libgpg-error0_1.38-2 libhogweed6_3.6-2 libicu67_67.1-4 libidn2-0_2.3.0-1 libisl22_0.22.1-1 libksba8_1.4.0-2 libldap-2.4-2_2.4.51+dfsg-1 libldap-common_2.4.51+dfsg-1 liblocale-gettext-perl_1.07-4 liblz4-1_1.9.2-2 liblzma5_5.2.4-1 libmagic-mgc_1:5.38-5 libmagic1_1:5.38-5 libmount1_2.36-3 libmpc3_1.2.0~rc1-1 libmpfr6_4.1.0-3 libncursesw6_6.2-1 libnettle8_3.6-2 libnpth0_1.6-2 libp11-kit0_0.23.21-2 libpam-modules_1.3.1-5 libpam-modules-bin_1.3.1-5 libpam-runtime_1.3.1-5 libpam0g_1.3.1-5 libpcre2-8-0_10.34-7 libpcre3_2:8.39-13 libperl5.30_5.30.3-4 libpipeline1_1.5.3-1 libreadline8_8.0-4 libsasl2-2_2.1.27+dfsg-2 libsasl2-modules-db_2.1.27+dfsg-2 libseccomp2_2.4.3-1+rpi1 libselinux1_3.1-2 libsemanage-common_3.1-1 libsemanage1_3.1-1 libsepol1_3.1-1 libsigc++-2.0-0v5_2.10.2-1 libsigsegv2_2.12-2 libsmartcols1_2.36-3 libsqlite3-0_3.33.0-1 libss2_1.45.6-1 libstdc++-10-dev_10.2.0-5+rpi1 libstdc++6_10.2.0-5+rpi1 libsub-override-perl_0.09-2 libsystemd0_246.2-1+rpi1 libtasn1-6_4.16.0-2 libtext-charwidth-perl_0.04-10 libtext-iconv-perl_1.7-7 libtinfo6_6.2-1 libtool_2.4.6-14 libubsan1_10.2.0-5+rpi1 libuchardet0_0.0.7-1 libudev1_246.2-1+rpi1 libunistring2_0.9.10-4 libuuid1_2.36-3 libxapian30_1.4.17-1 libxml2_2.9.10+dfsg-6.1 libzstd1_1.4.5+dfsg-4+rpi1 linux-libc-dev_5.7.10-1+rpi1 login_1:4.8.1-1 logsave_1.45.6-1 lsb-base_11.1.0+rpi1 m4_1.4.18-4 make_4.3-4 man-db_2.9.3-2 mawk_1.3.4.20200120-2 mount_2.36-3 ncurses-base_6.2-1 ncurses-bin_6.2-1 netbase_6.1 passwd_1:4.8.1-1 patch_2.7.6-6 perl_5.30.3-4 perl-base_5.30.3-4 perl-modules-5.30_5.30.3-4 pinentry-curses_1.1.0-4 po-debconf_1.0.21 raspbian-archive-keyring_20120528.2 readline-common_8.0-4 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-mecat2-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.12+nmu1 sysvinit-utils_2.96-4 tar_1.30+dfsg-7 tzdata_2020a-1 util-linux_2.36-3 xz-utils_5.2.4-1 zlib1g_1:1.2.11.dfsg-2 zlib1g-dev_1:1.2.11.dfsg-2
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/tmp/dpkg-verify-sig.xuA3fjML/trustedkeys.kbx': General error
gpgv: Signature made Sun Oct 18 19:46:02 2020 UTC
gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1
gpgv: issuer "tille@debian.org"
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./mecat2_0.0+git20200428.f54c542+ds-2.dsc
dpkg-source: info: extracting mecat2 in /<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds
dpkg-source: info: unpacking mecat2_0.0+git20200428.f54c542+ds.orig.tar.xz
dpkg-source: info: unpacking mecat2_0.0+git20200428.f54c542+ds-2.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying modify_makefiles.patch
Check disc space
----------------
Sufficient free space for build
User Environment
----------------
APT_CONFIG=/var/lib/sbuild/apt.conf
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
LC_ALL=POSIX
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=bullseye-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=bullseye-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=bullseye-staging-armhf-sbuild-91ca1bae-bc37-4c50-a696-67a5b217a5b8
SCHROOT_UID=104
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=linux
USER=buildd
dpkg-buildpackage
-----------------
dpkg-buildpackage: info: source package mecat2
dpkg-buildpackage: info: source version 0.0+git20200428.f54c542+ds-2
dpkg-buildpackage: info: source distribution unstable
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture armhf
debian/rules clean
dh clean
dh_auto_clean
make -j4 clean
make[1]: Entering directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds'
cd src && make clean
make[2]: Entering directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds/src'
make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Building for 'Linux' '4.9.0-0.bpo.6-armmp' as 'armv7l'
Makefile:401: warning: overriding recipe for target '../Linux-armv7l/bin/mecat2cns'
Makefile:401: warning: ignoring old recipe for target '../Linux-armv7l/bin/mecat2cns'
Makefile:418: warning: overriding recipe for target 'clean_mecat2cns'
Makefile:418: warning: ignoring old recipe for target 'clean_mecat2cns'
rm -f ../Linux-armv7l/bin/libhbn.a ../Linux-armv7l/obj/libhbn.a/corelib/build_db.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/cmd_arg.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/cstr_util.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/db_format.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/fasta.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/gapped_candidate.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/hbn_aux.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/hbn_format.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/hbn_hit.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/hbn_package_version.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/kstring.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/line_reader.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/m4_record.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/name2id_map.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/partition_aux.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/raw_reads.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/seqdb_summary.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/seqdb.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag_report.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/small_object_alloc.[doP] ../Linux-armv7l/obj/libhbn.a/corelib/string2hsp.[doP] ../Linux-armv7l/obj/libhbn.a/algo/chain_dp.[doP] ../Linux-armv7l/obj/libhbn.a/algo/diff_gapalign.[doP] ../Linux-armv7l/obj/libhbn.a/algo/hash_list_bucket_sort.[doP] ../Linux-armv7l/obj/libhbn.a/algo/kalloc.[doP] ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extd2_sse.[doP] ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extz2_sse.[doP] ../Linux-armv7l/obj/libhbn.a/algo/ksw2_wrapper.[doP] ../Linux-armv7l/obj/libhbn.a/algo/hbn_lookup_table.[doP] ../Linux-armv7l/obj/libhbn.a/algo/hbn_traceback_aux.[doP] ../Linux-armv7l/obj/libhbn.a/algo/word_finder.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/c_ncbi_blast_aux.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/ncbi_blast_aux.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/blast_args.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/cmdline_flags.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/format_flags.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_allow.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_desc.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_types.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr_util.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_cmp.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/numeric_str_interconv.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_util.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_encoding.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_hits.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_message.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_options.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_stat.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_parameters.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_program.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_types.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/boost_erf.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/hsp2string.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/ncbi_math.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_query_info.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_sequence_blk.[doP] ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/gapinfo.[doP]
rm -f ../Linux-armv7l/bin/mecat2pcan ../Linux-armv7l/obj/mecat2pcan/app/mecat2pcan/pcan.[doP]
rm -f ../Linux-armv7l/bin/mecat2map ../Linux-armv7l/obj/mecat2map/app/map/cmdline_args.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_align_one_volume.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_build_seqdb.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_extend_subseq_hit.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_find_subseq_hit.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_job_control.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_options.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_subseq_hit.[doP] ../Linux-armv7l/obj/mecat2map/app/map/hbn_task_struct.[doP] ../Linux-armv7l/obj/mecat2map/app/map/main.[doP] ../Linux-armv7l/obj/mecat2map/app/map/mecat_results.[doP]
rm -f ../Linux-armv7l/bin/mecat2cns ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/cmdline_args.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/cns_aux.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/cns_one_part.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/cns_one_read.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/cns_options.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/fccns_align_tag.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/fccns_aux.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/fccns.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/hbn_task_struct.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/main.[doP] ../Linux-armv7l/obj/mecat2cns/app/mecat2cns/raw_reads_reader.[doP]
rm -f ../Linux-armv7l/bin/mecat2viewdb ../Linux-armv7l/obj/mecat2viewdb/app/hbndb/viewhbndb.[doP]
rm -f ../Linux-armv7l/bin/mecat2lcr ../Linux-armv7l/obj/mecat2lcr/app/mecat2trim/1_largest_cover_range/cmdline_args.[doP] ../Linux-armv7l/obj/mecat2lcr/app/mecat2trim/1_largest_cover_range/largest_cover_range.[doP] ../Linux-armv7l/obj/mecat2lcr/app/mecat2trim/1_largest_cover_range/main.[doP] ../Linux-armv7l/obj/mecat2lcr/app/mecat2trim/common/range_list.[doP] ../Linux-armv7l/obj/mecat2lcr/app/mecat2trim/common/m4_aux.[doP]
rm -f ../Linux-armv7l/bin/mecat2splitreads ../Linux-armv7l/obj/mecat2splitreads/app/mecat2trim/2_split_reads/cmdline_args.[doP] ../Linux-armv7l/obj/mecat2splitreads/app/mecat2trim/2_split_reads/main.[doP] ../Linux-armv7l/obj/mecat2splitreads/app/mecat2trim/2_split_reads/split_reads.[doP] ../Linux-armv7l/obj/mecat2splitreads/app/mecat2trim/common/range_list.[doP] ../Linux-armv7l/obj/mecat2splitreads/app/mecat2trim/common/m4_aux.[doP]
rm -f ../Linux-armv7l/bin/mecat2trimbases ../Linux-armv7l/obj/mecat2trimbases/app/mecat2trim/3_trim_bases/main.[doP]
rm -f ../Linux-armv7l/bin/mecat2pm4 ../Linux-armv7l/obj/mecat2pm4/app/mecat2pm4/main.[doP]
rm -f ../Linux-armv7l/bin/mecat2extseqs ../Linux-armv7l/obj/mecat2extseqs/app/mecat2extseqs/main.[doP]
rm -f ../Linux-armv7l/bin/libfsa.a ../Linux-armv7l/obj/libfsa.a/app/fsa/argument_parser.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/getopt.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/logger.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/overlap.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/read_store.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/sequence.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/utility.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/fasta_reader.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/fastq_reader.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/overlap_store.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/simple_align.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/overlap_filter.[doP] ../Linux-armv7l/obj/libfsa.a/app/fsa/overlap_stat.[doP]
rm -f ../Linux-armv7l/bin/fsa_ol_filter ../Linux-armv7l/obj/fsa_ol_filter/app/fsa/fsa_ol_filter.[doP]
rm -f ../Linux-armv7l/bin/fsa_assemble ../Linux-armv7l/obj/fsa_assemble/app/fsa/fsa_assemble.[doP] ../Linux-armv7l/obj/fsa_assemble/app/fsa/assembly.[doP] ../Linux-armv7l/obj/fsa_assemble/app/fsa/graph.[doP] ../Linux-armv7l/obj/fsa_assemble/app/fsa/string_graph.[doP] ../Linux-armv7l/obj/fsa_assemble/app/fsa/path_graph.[doP]
rm -f ../Linux-armv7l/bin/fsa_ctg_bridge ../Linux-armv7l/obj/fsa_ctg_bridge/app/fsa/fsa_ctg_bridge.[doP] ../Linux-armv7l/obj/fsa_ctg_bridge/app/fsa/contig_bridge.[doP] ../Linux-armv7l/obj/fsa_ctg_bridge/app/fsa/contig_graph.[doP] ../Linux-armv7l/obj/fsa_ctg_bridge/app/fsa/contig_link.[doP] ../Linux-armv7l/obj/fsa_ctg_bridge/app/fsa/contig_link_store.[doP]
rm -f ../Linux-armv7l/bin/fsa_rd_stat ../Linux-armv7l/obj/fsa_rd_stat/app/fsa/fsa_rd_stat.[doP] ../Linux-armv7l/obj/fsa_rd_stat/app/fsa/read_stat.[doP]
rm -f ../Linux-armv7l/bin/mecat.pl
rm -f ../Linux-armv7l/bin/mecat.sh
rm -f
rm -f ../Linux-armv7l/bin/Plgd/Grid.pm ../Linux-armv7l/bin/Plgd/GridLsf.pm ../Linux-armv7l/bin/Plgd/GridPbs.pm ../Linux-armv7l/bin/Plgd/GridSge.pm ../Linux-armv7l/bin/Plgd/GridSlurm.pm ../Linux-armv7l/bin/Plgd/Project.pm ../Linux-armv7l/bin/Plgd/Script.pm ../Linux-armv7l/bin/Plgd/Utils.pm
rm -rf ../Linux-armv7l/bin/Plgd
make[2]: Leaving directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds/src'
make[1]: Leaving directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds'
dh_clean
debian/rules binary-arch
dh binary-arch
dh_update_autotools_config -a
dh_autoreconf -a
dh_auto_configure -a
dh_auto_build -a
make -j4 "INSTALL=install --strip-program=true"
make[1]: Entering directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds'
cd src && make
make[2]: Entering directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds/src'
make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Building for 'Linux' '4.9.0-0.bpo.6-armmp' as 'armv7l'
Makefile:401: warning: overriding recipe for target '../Linux-armv7l/bin/mecat2cns'
Makefile:401: warning: ignoring old recipe for target '../Linux-armv7l/bin/mecat2cns'
Makefile:418: warning: overriding recipe for target 'clean_mecat2cns'
Makefile:418: warning: ignoring old recipe for target 'clean_mecat2cns'
cp -pf pipeline/mecat.pl ../Linux-armv7l/bin/mecat.pl
chmod +x ../Linux-armv7l/bin/mecat.pl
cp -pf pipeline/mecat.sh ../Linux-armv7l/bin/mecat.sh
chmod +x ../Linux-armv7l/bin/mecat.sh
cp -pf pipeline/Plgd/Grid.pm ../Linux-armv7l/bin/Plgd/Grid.pm
cp -pf pipeline/Plgd/GridLsf.pm ../Linux-armv7l/bin/Plgd/GridLsf.pm
cp -pf pipeline/Plgd/GridPbs.pm ../Linux-armv7l/bin/Plgd/GridPbs.pm
cp -pf pipeline/Plgd/GridSge.pm ../Linux-armv7l/bin/Plgd/GridSge.pm
cp -pf pipeline/Plgd/GridSlurm.pm ../Linux-armv7l/bin/Plgd/GridSlurm.pm
cp -pf pipeline/Plgd/Project.pm ../Linux-armv7l/bin/Plgd/Project.pm
cp -pf pipeline/Plgd/Script.pm ../Linux-armv7l/bin/Plgd/Script.pm
cp -pf pipeline/Plgd/Utils.pm ../Linux-armv7l/bin/Plgd/Utils.pm
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/build_db.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/build_db.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/cmd_arg.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/cmd_arg.c
g++ -o ../Linux-armv7l/obj/libhbn.a/corelib/cstr_util.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp corelib/cstr_util.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/db_format.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/db_format.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/fasta.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/fasta.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/gapped_candidate.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/gapped_candidate.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_aux.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/hbn_aux.c
corelib/hbn_aux.c: In function ‘hbn_get_cpu_count’:
corelib/hbn_aux.c:357:9: warning: unused variable ‘allCPUNum_’ [-Wunused-variable]
357 | int allCPUNum_ = sysconf(_SC_NPROCESSORS_CONF);
| ^~~~~~~~~~
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_format.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/hbn_format.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_hit.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/hbn_hit.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_package_version.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/hbn_package_version.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/kstring.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/kstring.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/line_reader.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/line_reader.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/m4_record.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/m4_record.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/name2id_map.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/name2id_map.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/partition_aux.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/partition_aux.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/raw_reads.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/raw_reads.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/seqdb_summary.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/seqdb_summary.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/seqdb.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/seqdb.c
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/seq_tag.c
corelib/seq_tag.c:480:1: warning: ‘examine_ovlp_quality_perfect’ defined but not used [-Wunused-function]
480 | examine_ovlp_quality_perfect(int qoff,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
corelib/seq_tag.c:9:12: warning: ‘CircularSeq’ defined but not used [-Wunused-variable]
9 | static int CircularSeq = 0;
| ^~~~~~~~~~~
corelib/seq_tag.c:7:12: warning: ‘RepeatSeq’ defined but not used [-Wunused-variable]
7 | static int RepeatSeq = 0;
| ^~~~~~~~~
g++ -o ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag_report.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp corelib/seq_tag_report.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/corelib/small_object_alloc.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp corelib/small_object_alloc.c
g++ -o ../Linux-armv7l/obj/libhbn.a/corelib/string2hsp.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp corelib/string2hsp.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/algo/chain_dp.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/chain_dp.c
g++ -o ../Linux-armv7l/obj/libhbn.a/algo/diff_gapalign.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp algo/diff_gapalign.cpp
algo/diff_gapalign.cpp:375:1: warning: ‘void dump_subseq(const u8*, int)’ defined but not used [-Wunused-function]
375 | dump_subseq(const u8* seq, int len)
| ^~~~~~~~~~~
cc -o ../Linux-armv7l/obj/libhbn.a/algo/hash_list_bucket_sort.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/hash_list_bucket_sort.c
cc -o ../Linux-armv7l/obj/libhbn.a/algo/kalloc.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/kalloc.c
algo/kalloc.c: In function ‘morecore’:
algo/kalloc.c:49:33: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
49 | fprintf(stderr, "[morecore] %lu bytes requested but not available.\n", rnu * sizeof(size_t));
| ~~^ ~~~~~~~~~~~~~~~~~~~~
| | |
| long unsigned int size_t {aka unsigned int}
| %u
algo/kalloc.c: In function ‘km_stat’:
algo/kalloc.c:212:35: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
212 | fprintf(stderr, "[kr_stat] tot=%lu, free=%lu, n_block=%u, max_block=%lu, frag_len=%.3fK\n",
| ~~^
| |
| long unsigned int
| %u
213 | km->total_allocated, n_units * sizeof(size_t), n_blocks, max_block * sizeof(size_t), frag);
| ~~~~~~~~~~~~~~~~~~~
| |
| size_t {aka unsigned int}
algo/kalloc.c:212:45: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat=]
212 | fprintf(stderr, "[kr_stat] tot=%lu, free=%lu, n_block=%u, max_block=%lu, frag_len=%.3fK\n",
| ~~^
| |
| long unsigned int
| %u
213 | km->total_allocated, n_units * sizeof(size_t), n_blocks, max_block * sizeof(size_t), frag);
| ~~~~~~~~~~~~~~~~~~~~~~~~
| |
| unsigned int
algo/kalloc.c:212:72: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
212 | fprintf(stderr, "[kr_stat] tot=%lu, free=%lu, n_block=%u, max_block=%lu, frag_len=%.3fK\n",
| ~~^
| |
| long unsigned int
| %u
213 | km->total_allocated, n_units * sizeof(size_t), n_blocks, max_block * sizeof(size_t), frag);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| size_t {aka unsigned int}
cc -o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extd2_sse.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/ksw2_extd2_sse.c
cc -o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extz2_sse.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/ksw2_extz2_sse.c
cc -o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_wrapper.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/ksw2_wrapper.c
cc -o ../Linux-armv7l/obj/libhbn.a/algo/hbn_lookup_table.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/hbn_lookup_table.c
cc -o ../Linux-armv7l/obj/libhbn.a/algo/hbn_traceback_aux.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/hbn_traceback_aux.c
algo/hbn_traceback_aux.c: In function ‘validate_aligned_string’:
algo/hbn_traceback_aux.c:54:83: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 9 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
54 | fprintf(stderr, "[%s, %s, %d] qid = %d, tid = %d, right_extend = %d, i = %lu, x = %d, y = %d, qc = %c, qc1 = %c, qoff = %d, qend = %d, toff = %d, tend = %d, align_size = %lu\n",
| ~~^
| |
| long unsigned int
| %u
......
61 | i,
| ~
| |
| size_t {aka unsigned int}
algo/hbn_traceback_aux.c:54:180: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 18 has type ‘size_t’ {aka ‘const unsigned int’} [-Wformat=]
54 | fprintf(stderr, "[%s, %s, %d] qid = %d, tid = %d, right_extend = %d, i = %lu, x = %d, y = %d, qc = %c, qc1 = %c, qoff = %d, qend = %d, toff = %d, tend = %d, align_size = %lu\n",
| ~~^
| |
| long unsigned int
| %u
......
70 | align_size);
| ~~~~~~~~~~
| |
| size_t {aka const unsigned int}
algo/hbn_traceback_aux.c:80:83: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 9 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
80 | fprintf(stderr, "[%s, %s, %d] qid = %d, tid = %d, right_extend = %d, i = %lu, x = %d, y = %d, tc = %c, tc1 = %c, qoff = %d, qend = %d, toff = %d, tend = %d\n",
| ~~^
| |
| long unsigned int
| %u
......
87 | i,
| ~
| |
| size_t {aka unsigned int}
cc -o ../Linux-armv7l/obj/libhbn.a/algo/word_finder.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp algo/word_finder.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/c_ncbi_blast_aux.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/c_ncbi_blast_aux.c
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/ncbi_blast_aux.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/ncbi_blast_aux.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/blast_args.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/blast_args.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/cmdline_flags.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/cmdline_flags.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/format_flags.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/format_flags.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_allow.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/ncbiargs_allow.cpp
ncbi_blast/cmdline_args/ncbiargs_allow.cpp:85:15: warning: ‘std::string ncbi::s_GetSymbolClass(ncbi::CArgAllow_Symbols::ESymbolClass)’ defined but not used [-Wunused-function]
85 | static string s_GetSymbolClass(CArgAllow_Symbols::ESymbolClass symbol_class)
| ^~~~~~~~~~~~~~~~
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_desc.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/ncbiargs_desc.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_types.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/cmdline_args/ncbiargs_types.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr_util.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/str_util/ncbistr_util.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/str_util/ncbistr.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_cmp.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/str_util/str_cmp.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/numeric_str_interconv.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/str_util/numeric_str_interconv.cpp
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_util.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/str_util/str_util.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_encoding.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_encoding.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_hits.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_hits.c
ncbi_blast/setup/blast_hits.c:3897:1: warning: ‘s_TrimResultsByTotalHSPLimitEx’ defined but not used [-Wunused-function]
3897 | s_TrimResultsByTotalHSPLimitEx(BlastHSPResults* results,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ncbi_blast/setup/blast_hits.c:3815:1: warning: ‘s_TrimResultsByTotalHSPLimit’ defined but not used [-Wunused-function]
3815 | s_TrimResultsByTotalHSPLimit(BlastHSPResults* results, Uint4 total_hsp_limit)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ncbi_blast/setup/blast_hits.c:3580:12: warning: ‘s_SortHspWrapRawScore’ defined but not used [-Wunused-function]
3580 | static int s_SortHspWrapRawScore(const void *x, const void *y)
| ^~~~~~~~~~~~~~~~~~~~~
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_message.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_message.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_options.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_options.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_stat.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_stat.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_parameters.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_parameters.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_program.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_program.c
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_types.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/setup/blast_types.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/boost_erf.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/boost_erf.c
g++ -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/hsp2string.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp ncbi_blast/setup/hsp2string.cpp
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/ncbi_math.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/ncbi_math.c
In file included from ncbi_blast/setup/ncbi_math.c:498:
ncbi_blast/setup/ncbi_erf.c: In function ‘s_IEEE754_Exp’:
ncbi_blast/setup/ncbi_erf.c:40:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
40 | #define __LO(x) *(int*)&x
| ^~~~~~~~
41 | #define __HIp(x) *(1+(int*)x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 | #define __LOp(x) *(int*)x
| ~~~~~~~~~~~~~~~~~~~~~~~~~
43 | #endif
| ~~~~~~
44 |
|
45 | #ifdef NEED_EXP
| ~~~~~~~~~~~~~~~
46 | /* s_IEEE754_Exp(x)
| ~~~~~~~~~~~~~~~~~~~
47 | * Returns the exponential of x.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 | *
| ~
49 | * Method
| ~~~~~~~~
50 | * 1. Argument reduction:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
51 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 | * Given x, find r and integer k such that
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | *
| ~
54 | * x = k*ln2 + r, |r| <= 0.5*ln2.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 | *
| ~
56 | * Here r will be represented as r = hi-lo for better
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 | * accuracy.
| ~~~~~~~~~~~
58 | *
| ~
59 | * 2. Approximation of exp(r) by a special rational function on
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 | * the interval [0,0.34658]:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
61 | * Write
| ~~~~~~~
62 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 | * We use a special Remes algorithm on [0,0.34658] to generate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 | * a polynomial of degree 5 to approximate R. The maximum error
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 | * of this polynomial approximation is bounded by 2**-59. In
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 | * other words,
| ~~~~~~~~~~~~~~
67 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | * (where z=r*r, and the values of P1 to P5 are listed below)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | * and
| ~~~~~
70 | * | 5 | -59
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 | * | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | * The computation of exp(r) thus becomes
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | * 2*r
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 | * exp(r) = 1 + -------
| ~~~~~~~~~~~~~~~~~~~~~~~
76 | * R - r
| ~~~~~~~~~~~~~~~~~~~~~~
77 | * r*R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78 | * = 1 + r + ----------- (for better accuracy)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | * 2 - R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 | * where
| ~~~~~~~
81 | * 2 4 10
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83 | *
| ~
84 | * 3. Scale back to obtain exp(x):
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 | * From step 1, we have
| ~~~~~~~~~~~~~~~~~~~~~~
86 | * exp(x) = 2^k * exp(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
87 | *
| ~
88 | * Special cases:
| ~~~~~~~~~~~~~~~~
89 | * exp(INF) is INF, exp(NaN) is NaN;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 | * exp(-INF) is 0, and
| ~~~~~~~~~~~~~~~~~~~~~
91 | * for finite argument, only exp(0)=1 is exact.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 | *
| ~
93 | * Accuracy:
| ~~~~~~~~~~~
94 | * according to an error analysis, the error is always less than
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | * 1 ulp (unit in the last place).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 | *
| ~
97 | * Misc. info.
| ~~~~~~~~~~~~~
98 | * For IEEE double
| ~~~~~~~~~~~~~~~~~
99 | * if x > 7.09782712893383973096e+02 then exp(x) overflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100 | * if x < -7.45133219101941108420e+02 then exp(x) underflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | *
| ~
102 | * Constants:
| ~~~~~~~~~~~~
103 | * The hexadecimal values are the intended ones for the following
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104 | * constants. The decimal values may be used, provided that the
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105 | * compiler will convert from decimal to binary accurately enough
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 | * to produce the hexadecimal values shown.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 | */
| ~~
108 |
|
109 | static const double
| ~~~~~~~~~~~~~~~~~~~
110 | one = 1.0,
| ~~~~~~~~~~
111 | halF[2] = {0.5,-0.5,},
| ~~~~~~~~~~~~~~~~~~~~~~
112 | huge = 1.0e+300,
| ~~~~~~~~~~~~~~~~
113 | twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 | o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115 | u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 | ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 | -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118 | ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119 | -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 | invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125 | P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126 |
|
127 | static double s_IEEE754_Exp(double x) /* default IEEE double exp */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
128 | {
| ~
129 | double y,hi,lo,c,t;
| ~~~~~~~~~~~~~~~~~~~
130 | int k = 0,xsb;
| ~~~~~~~~~~~~~~
131 | unsigned hx;
| ~~~~~~~~~~~~
132 |
|
133 | hx = __HI(x); /* high word of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 | xsb = (hx>>31)&1; /* sign bit of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 | hx &= 0x7fffffff; /* high word of |x| */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136 |
|
137 | /* filter out non-finite argument */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138 | if(hx >= 0x40862E42) { /* if |x|>=709.78... */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139 | if(hx>=0x7ff00000) {
| ~~~~~~~~~~~~~~~~~~~~
140 | if(((hx&0xfffff)|__LO(x))!=0)
| ~~~~~~~~~~~~~~~~~~~~~~~
ncbi_blast/setup/ncbi_erf.c:140:20: note: in expansion of macro ‘__LO’
140 | if(((hx&0xfffff)|__LO(x))!=0)
| ^~~~
ncbi_blast/setup/ncbi_erf.c: In function ‘BLAST_Erf’:
ncbi_blast/setup/ncbi_erf.c:40:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
40 | #define __LO(x) *(int*)&x
| ^~~~~~~~
41 | #define __HIp(x) *(1+(int*)x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 | #define __LOp(x) *(int*)x
| ~~~~~~~~~~~~~~~~~~~~~~~~~
43 | #endif
| ~~~~~~
44 |
|
45 | #ifdef NEED_EXP
| ~~~~~~~~~~~~~~~
46 | /* s_IEEE754_Exp(x)
| ~~~~~~~~~~~~~~~~~~~
47 | * Returns the exponential of x.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 | *
| ~
49 | * Method
| ~~~~~~~~
50 | * 1. Argument reduction:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
51 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 | * Given x, find r and integer k such that
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | *
| ~
54 | * x = k*ln2 + r, |r| <= 0.5*ln2.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 | *
| ~
56 | * Here r will be represented as r = hi-lo for better
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 | * accuracy.
| ~~~~~~~~~~~
58 | *
| ~
59 | * 2. Approximation of exp(r) by a special rational function on
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 | * the interval [0,0.34658]:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
61 | * Write
| ~~~~~~~
62 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 | * We use a special Remes algorithm on [0,0.34658] to generate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 | * a polynomial of degree 5 to approximate R. The maximum error
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 | * of this polynomial approximation is bounded by 2**-59. In
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 | * other words,
| ~~~~~~~~~~~~~~
67 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | * (where z=r*r, and the values of P1 to P5 are listed below)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | * and
| ~~~~~
70 | * | 5 | -59
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 | * | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | * The computation of exp(r) thus becomes
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | * 2*r
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 | * exp(r) = 1 + -------
| ~~~~~~~~~~~~~~~~~~~~~~~
76 | * R - r
| ~~~~~~~~~~~~~~~~~~~~~~
77 | * r*R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78 | * = 1 + r + ----------- (for better accuracy)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | * 2 - R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 | * where
| ~~~~~~~
81 | * 2 4 10
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83 | *
| ~
84 | * 3. Scale back to obtain exp(x):
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 | * From step 1, we have
| ~~~~~~~~~~~~~~~~~~~~~~
86 | * exp(x) = 2^k * exp(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
87 | *
| ~
88 | * Special cases:
| ~~~~~~~~~~~~~~~~
89 | * exp(INF) is INF, exp(NaN) is NaN;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 | * exp(-INF) is 0, and
| ~~~~~~~~~~~~~~~~~~~~~
91 | * for finite argument, only exp(0)=1 is exact.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 | *
| ~
93 | * Accuracy:
| ~~~~~~~~~~~
94 | * according to an error analysis, the error is always less than
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | * 1 ulp (unit in the last place).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 | *
| ~
97 | * Misc. info.
| ~~~~~~~~~~~~~
98 | * For IEEE double
| ~~~~~~~~~~~~~~~~~
99 | * if x > 7.09782712893383973096e+02 then exp(x) overflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100 | * if x < -7.45133219101941108420e+02 then exp(x) underflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | *
| ~
102 | * Constants:
| ~~~~~~~~~~~~
103 | * The hexadecimal values are the intended ones for the following
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104 | * constants. The decimal values may be used, provided that the
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105 | * compiler will convert from decimal to binary accurately enough
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 | * to produce the hexadecimal values shown.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 | */
| ~~
108 |
|
109 | static const double
| ~~~~~~~~~~~~~~~~~~~
110 | one = 1.0,
| ~~~~~~~~~~
111 | halF[2] = {0.5,-0.5,},
| ~~~~~~~~~~~~~~~~~~~~~~
112 | huge = 1.0e+300,
| ~~~~~~~~~~~~~~~~
113 | twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 | o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115 | u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 | ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 | -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118 | ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119 | -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 | invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125 | P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126 |
|
127 | static double s_IEEE754_Exp(double x) /* default IEEE double exp */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
128 | {
| ~
129 | double y,hi,lo,c,t;
| ~~~~~~~~~~~~~~~~~~~
130 | int k = 0,xsb;
| ~~~~~~~~~~~~~~
131 | unsigned hx;
| ~~~~~~~~~~~~
132 |
|
133 | hx = __HI(x); /* high word of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 | xsb = (hx>>31)&1; /* sign bit of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 | hx &= 0x7fffffff; /* high word of |x| */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136 |
|
137 | /* filter out non-finite argument */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138 | if(hx >= 0x40862E42) { /* if |x|>=709.78... */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139 | if(hx>=0x7ff00000) {
| ~~~~~~~~~~~~~~~~~~~~
140 | if(((hx&0xfffff)|__LO(x))!=0)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 | return x+x; /* NaN */
| ~~~~~~~~~~~~~~~~~~~~~~~
142 | else return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143 | }
| ~
144 | if(x > o_threshold)
| ~~~~~~~~~~~~~~~~~~~
145 | return huge*huge; /* NCBI_FAKE_WARNING [deliberate overflow] */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146 | if(x < u_threshold) return twom1000*twom1000; /* underflow */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
147 | }
| ~
148 |
|
149 | /* argument reduction */
| ~~~~~~~~~~~~~~~~~~~~~~~~
150 | if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
151 | if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
152 | hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153 | } else {
| ~~~~~~~~
154 | k = (int)(invln2*x+halF[xsb]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
155 | t = k;
| ~~~~~~~
156 | hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157 | lo = t*ln2LO[0];
| ~~~~~~~~~~~~~~~~
158 | }
| ~
159 | x = hi - lo;
| ~~~~~~~~~~~~~
160 | }
| ~
161 | else if(hx < 0x3e300000) { /* when |x|<2**-28 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 | if(huge+x>one) return one+x;/* trigger inexact */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
163 | }
| ~
164 | else k = 0;
| ~~~~~~~~~~~
165 |
|
166 | /* x is now in primary range */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
167 | t = x*x;
| ~~~~~~~~~
168 | c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169 | if(k==0) return one-((x*c)/(c-2.0)-x);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170 | else y = one-((lo-(x*c)/(2.0-c))-hi);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171 | if(k >= -1021) {
| ~~~~~~~~~~~~~~~~
172 | __HI(y) += (k<<20); /* add k to y's exponent */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 | return y;
| ~~~~~~~~~
174 | } else {
| ~~~~~~~~
175 | __HI(y) += ((k+1000)<<20);/* add k to y's exponent */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
176 | return y*twom1000;
| ~~~~~~~~~~~~~~~~~~
177 | }
| ~
178 | }
| ~
179 | #endif
| ~~~~~~
180 |
|
181 | /* double erf(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~
182 | * double erfc(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~
183 | * x
| ~~~~~~~~~~
184 | * 2 |\
| ~~~~~~~~~~~~~~~~~~
185 | * erf(x) = --------- | exp(-t*t)dt
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186 | * sqrt(pi) \|
| ~~~~~~~~~~~~~~~~~~
187 | * 0
| ~~~~~~~~~~
188 | *
| ~
189 | * erfc(x) = 1-erf(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
190 | * Note that
| ~~~~~~~~~~~~
191 | * erf(-x) = -erf(x)
| ~~~~~~~~~~~~~~~~~~~~
192 | * erfc(-x) = 2 - erfc(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
193 | *
| ~
194 | * Method:
| ~~~~~~~~~
195 | * 1. For |x| in [0, 0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 | * erf(x) = x + x*R(x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197 | * erfc(x) = 1 - erf(x) if x in [-.84375,0.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198 | * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
199 | * where R = P/Q where P is an odd poly of degree 8 and
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
200 | * Q is an odd poly of degree 10.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 | * -57.90
| ~~~~~~~~~~~~~~
202 | * | R - (erf(x)-x)/x | <= 2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
203 | *
| ~
204 | *
| ~
205 | * Remark. The formula is derived by noting
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206 | * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 | * and that
| ~~~~~~~~~~~~~
208 | * 2/sqrt(pi) = 1.128379167095512573896158903121545171688
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209 | * is close to one. The interval is chosen because the fix
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210 | * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
211 | * near 0.6174), and by some experiment, 0.84375 is chosen to
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212 | * guarantee the error is less than one ulp for erf.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213 | *
| ~
214 | * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
215 | * c = 0.84506291151 rounded to single (24 bits)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216 | * erf(x) = sign(x) * (c + P1(s)/Q1(s))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217 | * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
218 | * 1+(c+P1(s)/Q1(s)) if x < 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
219 | * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 | * Remark: here we use the taylor series expansion at x=1.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221 | * erf(1+s) = erf(1) + s*Poly(s)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
222 | * = 0.845.. + P1(s)/Q1(s)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
223 | * That is, we use rational approximation to approximate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224 | * erf(1+s) - (c = (single)0.84506291151)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 | * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 | * where
| ~~~~~~~~~~
227 | * P1(s) = degree 6 poly in s
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
228 | * Q1(s) = degree 6 poly in s
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229 | *
| ~
230 | * 3. For x in [1.25,1/0.35(~2.857143)],
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | * erf(x) = 1 - erfc(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233 | * where
| ~~~~~~~~~~
234 | * R1(z) = degree 7 poly in z, (z=1/x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 | * S1(z) = degree 8 poly in z
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236 | *
| ~
237 | * 4. For x in [1/0.35,28]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
238 | * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239 | * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240 | * = 2.0 - tiny (if x <= -6)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241 | * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
242 | * erf(x) = sign(x)*(1.0 - tiny)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
243 | * where
| ~~~~~~~~~~
244 | * R2(z) = degree 6 poly in z, (z=1/x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
245 | * S2(z) = degree 7 poly in z
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
246 | *
| ~
247 | * Note1:
| ~~~~~~~~~~~~~
248 | * To compute exp(-x*x-0.5625+R/S), let s be a single
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | * precision number and s := x; then
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
250 | * -x*x = -s*s + (s-x)*(s+x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
251 | * exp(-x*x-0.5626+R/S) =
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
252 | * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
253 | * Note2:
| ~~~~~~~~~~~~~
254 | * Here 4 and 5 make use of the asymptotic series
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255 | * exp(-x*x)
| ~~~~~~~~~~~~~~~
256 | * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
257 | * x*sqrt(pi)
| ~~~~~~~~~~~~~~~~
258 | * We use rational approximation to approximate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
259 | * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
260 | * Here is the error bound for R1/S1 and R2/S2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
261 | * |R1/S1 - f(x)| < 2**(-62.57)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
262 | * |R2/S2 - f(x)| < 2**(-61.52)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263 | *
| ~
264 | * 5. For inf > x >= 28
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
265 | * erf(x) = sign(x) *(1 - tiny) (raise inexact)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
266 | * erfc(x) = tiny*tiny (raise underflow) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
267 | * = 2 - tiny if x<0
| ~~~~~~~~~~~~~~~~~~~~~
268 | *
| ~
269 | * 7. Special case:
| ~~~~~~~~~~~~~~~~~~~~~~~
270 | * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271 | * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
272 | * erfc/erf(NaN) is NaN
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
273 | */
| ~~
274 |
|
275 | #ifndef HAVE_ERF
| ~~~~~~~~~~~~~~~~
276 | static const double
| ~~~~~~~~~~~~~~~~~~~
277 | tiny = 1e-300,
| ~~~~~~~~~~~~~~~~~~
278 | half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
279 | /* one = 1.00000000000000000000e+00, */ /* 0x3FF00000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280 | two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281 | /* c = (float)0.84506291151 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 | erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
283 | /*
| ~~
284 | * Coefficients for approximation to erf on [0,0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285 | */
| ~~
286 | efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
287 | efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
288 | pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 | pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
290 | pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291 | pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
292 | pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293 | qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
294 | qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
295 | qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
296 | qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
297 | qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
298 | /*
| ~~
299 | * Coefficients for approximation to erf in [0.84375,1.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300 | */
| ~~
301 | pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
302 | pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
303 | pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304 | pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305 | pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306 | pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
307 | pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
308 | qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
309 | qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
310 | qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
311 | qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
312 | qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
313 | qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
314 | /*
| ~~
315 | * Coefficients for approximation to erfc in [1.25,1/0.35]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
316 | */
| ~~
317 | ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
318 | ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
319 | ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
320 | ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
321 | ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
322 | ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
323 | ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324 | ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
325 | sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326 | sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
327 | sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
328 | sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
329 | sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
330 | sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331 | sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
332 | sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
333 | /*
| ~~
334 | * Coefficients for approximation to erfc in [1/.35,28]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
335 | */
| ~~
336 | rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337 | rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
338 | rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
339 | rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340 | rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
341 | rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342 | rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343 | sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
344 | sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
345 | sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
346 | sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
347 | sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
348 | sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
349 | sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
350 | #endif
| ~~~~~~
351 |
|
352 | double NCBI_Erf(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
353 | {
| ~
354 | #ifdef HAVE_ERF
| ~~~~~~~~~~~~~~~
355 | return erf(x);
| ~~~~~~~~~~~~~~
356 | #else
| ~~~~~
357 | int hx,ix,i;
| ~~~~~~~~~~~~
358 | double R,S,P,Q,s,y,z,r;
| ~~~~~~~~~~~~~~~~~~~~~~~
359 | hx = __HI(x);
| ~~~~~~~~~~~~~
360 | ix = hx&0x7fffffff;
| ~~~~~~~~~~~~~~~~~~~
361 | if(ix>=0x7ff00000) { /* erf(nan)=nan */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
362 | i = ((unsigned)hx>>31)<<1;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
363 | return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
364 | }
| ~
365 |
|
366 | if(ix < 0x3feb0000) { /* |x|<0.84375 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367 | if(ix < 0x3e300000) { /* |x|<2**-28 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
368 | if (ix < 0x00800000)
| ~~~~~~~~~~~~~~~~~~~~
369 | return 0.125*(8.0*x+efx8*x); /*avoid underflow */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370 | return x + efx*x;
| ~~~~~~~~~~~~~~~~~
371 | }
| ~
372 | z = x*x;
| ~~~~~~~~
373 | r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
374 | s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
375 | y = r/s;
| ~~~~~~~~
376 | return x + x*y;
| ~~~~~~~~~~~~~~~
377 | }
| ~
378 | if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
379 | s = fabs(x)-one;
| ~~~~~~~~~~~~~~~~
380 | P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
381 | Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
382 | if(hx>=0) return erx + P/Q; else return -erx - P/Q;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
383 | }
| ~
384 | if (ix >= 0x40180000) { /* inf>|x|>=6 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
385 | if(hx>=0) return one-tiny; else return tiny-one;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
386 | }
| ~
387 | x = fabs(x);
| ~~~~~~~~~~~~
388 | s = one/(x*x);
| ~~~~~~~~~~~~~~
389 | if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
390 | R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
391 | ra5+s*(ra6+s*ra7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
392 | S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393 | sa5+s*(sa6+s*(sa7+s*sa8)))))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
394 | } else { /* |x| >= 1/0.35 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
395 | R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396 | rb5+s*rb6)))));
| ~~~~~~~~~~~~~~~
397 | S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
398 | sb5+s*(sb6+s*sb7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
399 | }
| ~
400 | z = x;
| ~~~~~~~
401 | __LO(z) = 0;
| ~~~~~~
ncbi_blast/setup/ncbi_erf.c:401:2: note: in expansion of macro ‘__LO’
401 | __LO(z) = 0;
| ^~~~
ncbi_blast/setup/ncbi_erf.c: In function ‘BLAST_ErfC’:
ncbi_blast/setup/ncbi_erf.c:40:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
40 | #define __LO(x) *(int*)&x
| ^~~~~~~~
41 | #define __HIp(x) *(1+(int*)x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 | #define __LOp(x) *(int*)x
| ~~~~~~~~~~~~~~~~~~~~~~~~~
43 | #endif
| ~~~~~~
44 |
|
45 | #ifdef NEED_EXP
| ~~~~~~~~~~~~~~~
46 | /* s_IEEE754_Exp(x)
| ~~~~~~~~~~~~~~~~~~~
47 | * Returns the exponential of x.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 | *
| ~
49 | * Method
| ~~~~~~~~
50 | * 1. Argument reduction:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
51 | * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 | * Given x, find r and integer k such that
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | *
| ~
54 | * x = k*ln2 + r, |r| <= 0.5*ln2.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 | *
| ~
56 | * Here r will be represented as r = hi-lo for better
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 | * accuracy.
| ~~~~~~~~~~~
58 | *
| ~
59 | * 2. Approximation of exp(r) by a special rational function on
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 | * the interval [0,0.34658]:
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
61 | * Write
| ~~~~~~~
62 | * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 | * We use a special Remes algorithm on [0,0.34658] to generate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 | * a polynomial of degree 5 to approximate R. The maximum error
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 | * of this polynomial approximation is bounded by 2**-59. In
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 | * other words,
| ~~~~~~~~~~~~~~
67 | * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | * (where z=r*r, and the values of P1 to P5 are listed below)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | * and
| ~~~~~
70 | * | 5 | -59
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 | * | 2.0+P1*z+...+P5*z - R(z) | <= 2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 | * | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | * The computation of exp(r) thus becomes
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | * 2*r
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 | * exp(r) = 1 + -------
| ~~~~~~~~~~~~~~~~~~~~~~~
76 | * R - r
| ~~~~~~~~~~~~~~~~~~~~~~
77 | * r*R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78 | * = 1 + r + ----------- (for better accuracy)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | * 2 - R1(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 | * where
| ~~~~~~~
81 | * 2 4 10
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82 | * R1(r) = r - (P1*r + P2*r + ... + P5*r ).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83 | *
| ~
84 | * 3. Scale back to obtain exp(x):
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 | * From step 1, we have
| ~~~~~~~~~~~~~~~~~~~~~~
86 | * exp(x) = 2^k * exp(r)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
87 | *
| ~
88 | * Special cases:
| ~~~~~~~~~~~~~~~~
89 | * exp(INF) is INF, exp(NaN) is NaN;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 | * exp(-INF) is 0, and
| ~~~~~~~~~~~~~~~~~~~~~
91 | * for finite argument, only exp(0)=1 is exact.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 | *
| ~
93 | * Accuracy:
| ~~~~~~~~~~~
94 | * according to an error analysis, the error is always less than
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | * 1 ulp (unit in the last place).
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 | *
| ~
97 | * Misc. info.
| ~~~~~~~~~~~~~
98 | * For IEEE double
| ~~~~~~~~~~~~~~~~~
99 | * if x > 7.09782712893383973096e+02 then exp(x) overflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100 | * if x < -7.45133219101941108420e+02 then exp(x) underflow
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | *
| ~
102 | * Constants:
| ~~~~~~~~~~~~
103 | * The hexadecimal values are the intended ones for the following
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104 | * constants. The decimal values may be used, provided that the
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105 | * compiler will convert from decimal to binary accurately enough
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 | * to produce the hexadecimal values shown.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 | */
| ~~
108 |
|
109 | static const double
| ~~~~~~~~~~~~~~~~~~~
110 | one = 1.0,
| ~~~~~~~~~~
111 | halF[2] = {0.5,-0.5,},
| ~~~~~~~~~~~~~~~~~~~~~~
112 | huge = 1.0e+300,
| ~~~~~~~~~~~~~~~~
113 | twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 | o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115 | u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 | ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 | -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118 | ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119 | -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 | invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121 | P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122 | P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 | P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124 | P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125 | P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126 |
|
127 | static double s_IEEE754_Exp(double x) /* default IEEE double exp */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
128 | {
| ~
129 | double y,hi,lo,c,t;
| ~~~~~~~~~~~~~~~~~~~
130 | int k = 0,xsb;
| ~~~~~~~~~~~~~~
131 | unsigned hx;
| ~~~~~~~~~~~~
132 |
|
133 | hx = __HI(x); /* high word of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 | xsb = (hx>>31)&1; /* sign bit of x */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 | hx &= 0x7fffffff; /* high word of |x| */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136 |
|
137 | /* filter out non-finite argument */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138 | if(hx >= 0x40862E42) { /* if |x|>=709.78... */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139 | if(hx>=0x7ff00000) {
| ~~~~~~~~~~~~~~~~~~~~
140 | if(((hx&0xfffff)|__LO(x))!=0)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 | return x+x; /* NaN */
| ~~~~~~~~~~~~~~~~~~~~~~~
142 | else return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143 | }
| ~
144 | if(x > o_threshold)
| ~~~~~~~~~~~~~~~~~~~
145 | return huge*huge; /* NCBI_FAKE_WARNING [deliberate overflow] */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146 | if(x < u_threshold) return twom1000*twom1000; /* underflow */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
147 | }
| ~
148 |
|
149 | /* argument reduction */
| ~~~~~~~~~~~~~~~~~~~~~~~~
150 | if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
151 | if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
152 | hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153 | } else {
| ~~~~~~~~
154 | k = (int)(invln2*x+halF[xsb]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
155 | t = k;
| ~~~~~~~
156 | hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157 | lo = t*ln2LO[0];
| ~~~~~~~~~~~~~~~~
158 | }
| ~
159 | x = hi - lo;
| ~~~~~~~~~~~~~
160 | }
| ~
161 | else if(hx < 0x3e300000) { /* when |x|<2**-28 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 | if(huge+x>one) return one+x;/* trigger inexact */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
163 | }
| ~
164 | else k = 0;
| ~~~~~~~~~~~
165 |
|
166 | /* x is now in primary range */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
167 | t = x*x;
| ~~~~~~~~~
168 | c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169 | if(k==0) return one-((x*c)/(c-2.0)-x);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170 | else y = one-((lo-(x*c)/(2.0-c))-hi);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171 | if(k >= -1021) {
| ~~~~~~~~~~~~~~~~
172 | __HI(y) += (k<<20); /* add k to y's exponent */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 | return y;
| ~~~~~~~~~
174 | } else {
| ~~~~~~~~
175 | __HI(y) += ((k+1000)<<20);/* add k to y's exponent */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
176 | return y*twom1000;
| ~~~~~~~~~~~~~~~~~~
177 | }
| ~
178 | }
| ~
179 | #endif
| ~~~~~~
180 |
|
181 | /* double erf(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~
182 | * double erfc(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~
183 | * x
| ~~~~~~~~~~
184 | * 2 |\
| ~~~~~~~~~~~~~~~~~~
185 | * erf(x) = --------- | exp(-t*t)dt
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186 | * sqrt(pi) \|
| ~~~~~~~~~~~~~~~~~~
187 | * 0
| ~~~~~~~~~~
188 | *
| ~
189 | * erfc(x) = 1-erf(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
190 | * Note that
| ~~~~~~~~~~~~
191 | * erf(-x) = -erf(x)
| ~~~~~~~~~~~~~~~~~~~~
192 | * erfc(-x) = 2 - erfc(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
193 | *
| ~
194 | * Method:
| ~~~~~~~~~
195 | * 1. For |x| in [0, 0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 | * erf(x) = x + x*R(x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197 | * erfc(x) = 1 - erf(x) if x in [-.84375,0.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198 | * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
199 | * where R = P/Q where P is an odd poly of degree 8 and
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
200 | * Q is an odd poly of degree 10.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 | * -57.90
| ~~~~~~~~~~~~~~
202 | * | R - (erf(x)-x)/x | <= 2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
203 | *
| ~
204 | *
| ~
205 | * Remark. The formula is derived by noting
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206 | * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 | * and that
| ~~~~~~~~~~~~~
208 | * 2/sqrt(pi) = 1.128379167095512573896158903121545171688
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209 | * is close to one. The interval is chosen because the fix
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210 | * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
211 | * near 0.6174), and by some experiment, 0.84375 is chosen to
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212 | * guarantee the error is less than one ulp for erf.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213 | *
| ~
214 | * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
215 | * c = 0.84506291151 rounded to single (24 bits)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216 | * erf(x) = sign(x) * (c + P1(s)/Q1(s))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217 | * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
218 | * 1+(c+P1(s)/Q1(s)) if x < 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
219 | * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 | * Remark: here we use the taylor series expansion at x=1.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221 | * erf(1+s) = erf(1) + s*Poly(s)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
222 | * = 0.845.. + P1(s)/Q1(s)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
223 | * That is, we use rational approximation to approximate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224 | * erf(1+s) - (c = (single)0.84506291151)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 | * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 | * where
| ~~~~~~~~~~
227 | * P1(s) = degree 6 poly in s
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
228 | * Q1(s) = degree 6 poly in s
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229 | *
| ~
230 | * 3. For x in [1.25,1/0.35(~2.857143)],
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | * erf(x) = 1 - erfc(x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233 | * where
| ~~~~~~~~~~
234 | * R1(z) = degree 7 poly in z, (z=1/x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 | * S1(z) = degree 8 poly in z
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236 | *
| ~
237 | * 4. For x in [1/0.35,28]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
238 | * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239 | * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240 | * = 2.0 - tiny (if x <= -6)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241 | * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
242 | * erf(x) = sign(x)*(1.0 - tiny)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
243 | * where
| ~~~~~~~~~~
244 | * R2(z) = degree 6 poly in z, (z=1/x^2)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
245 | * S2(z) = degree 7 poly in z
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
246 | *
| ~
247 | * Note1:
| ~~~~~~~~~~~~~
248 | * To compute exp(-x*x-0.5625+R/S), let s be a single
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | * precision number and s := x; then
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
250 | * -x*x = -s*s + (s-x)*(s+x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
251 | * exp(-x*x-0.5626+R/S) =
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
252 | * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
253 | * Note2:
| ~~~~~~~~~~~~~
254 | * Here 4 and 5 make use of the asymptotic series
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255 | * exp(-x*x)
| ~~~~~~~~~~~~~~~
256 | * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
257 | * x*sqrt(pi)
| ~~~~~~~~~~~~~~~~
258 | * We use rational approximation to approximate
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
259 | * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
260 | * Here is the error bound for R1/S1 and R2/S2
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
261 | * |R1/S1 - f(x)| < 2**(-62.57)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
262 | * |R2/S2 - f(x)| < 2**(-61.52)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263 | *
| ~
264 | * 5. For inf > x >= 28
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
265 | * erf(x) = sign(x) *(1 - tiny) (raise inexact)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
266 | * erfc(x) = tiny*tiny (raise underflow) if x > 0
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
267 | * = 2 - tiny if x<0
| ~~~~~~~~~~~~~~~~~~~~~
268 | *
| ~
269 | * 7. Special case:
| ~~~~~~~~~~~~~~~~~~~~~~~
270 | * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271 | * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
272 | * erfc/erf(NaN) is NaN
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
273 | */
| ~~
274 |
|
275 | #ifndef HAVE_ERF
| ~~~~~~~~~~~~~~~~
276 | static const double
| ~~~~~~~~~~~~~~~~~~~
277 | tiny = 1e-300,
| ~~~~~~~~~~~~~~~~~~
278 | half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
279 | /* one = 1.00000000000000000000e+00, */ /* 0x3FF00000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280 | two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281 | /* c = (float)0.84506291151 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 | erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
283 | /*
| ~~
284 | * Coefficients for approximation to erf on [0,0.84375]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285 | */
| ~~
286 | efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
287 | efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
288 | pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 | pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
290 | pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291 | pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
292 | pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293 | qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
294 | qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
295 | qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
296 | qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
297 | qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
298 | /*
| ~~
299 | * Coefficients for approximation to erf in [0.84375,1.25]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300 | */
| ~~
301 | pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
302 | pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
303 | pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304 | pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305 | pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306 | pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
307 | pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
308 | qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
309 | qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
310 | qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
311 | qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
312 | qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
313 | qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
314 | /*
| ~~
315 | * Coefficients for approximation to erfc in [1.25,1/0.35]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
316 | */
| ~~
317 | ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
318 | ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
319 | ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
320 | ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
321 | ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
322 | ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
323 | ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324 | ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
325 | sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326 | sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
327 | sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
328 | sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
329 | sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
330 | sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331 | sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
332 | sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
333 | /*
| ~~
334 | * Coefficients for approximation to erfc in [1/.35,28]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
335 | */
| ~~
336 | rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337 | rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
338 | rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
339 | rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340 | rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
341 | rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342 | rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343 | sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
344 | sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
345 | sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
346 | sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
347 | sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
348 | sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
349 | sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
350 | #endif
| ~~~~~~
351 |
|
352 | double NCBI_Erf(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~
353 | {
| ~
354 | #ifdef HAVE_ERF
| ~~~~~~~~~~~~~~~
355 | return erf(x);
| ~~~~~~~~~~~~~~
356 | #else
| ~~~~~
357 | int hx,ix,i;
| ~~~~~~~~~~~~
358 | double R,S,P,Q,s,y,z,r;
| ~~~~~~~~~~~~~~~~~~~~~~~
359 | hx = __HI(x);
| ~~~~~~~~~~~~~
360 | ix = hx&0x7fffffff;
| ~~~~~~~~~~~~~~~~~~~
361 | if(ix>=0x7ff00000) { /* erf(nan)=nan */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
362 | i = ((unsigned)hx>>31)<<1;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
363 | return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
364 | }
| ~
365 |
|
366 | if(ix < 0x3feb0000) { /* |x|<0.84375 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
367 | if(ix < 0x3e300000) { /* |x|<2**-28 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
368 | if (ix < 0x00800000)
| ~~~~~~~~~~~~~~~~~~~~
369 | return 0.125*(8.0*x+efx8*x); /*avoid underflow */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370 | return x + efx*x;
| ~~~~~~~~~~~~~~~~~
371 | }
| ~
372 | z = x*x;
| ~~~~~~~~
373 | r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
374 | s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
375 | y = r/s;
| ~~~~~~~~
376 | return x + x*y;
| ~~~~~~~~~~~~~~~
377 | }
| ~
378 | if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
379 | s = fabs(x)-one;
| ~~~~~~~~~~~~~~~~
380 | P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
381 | Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
382 | if(hx>=0) return erx + P/Q; else return -erx - P/Q;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
383 | }
| ~
384 | if (ix >= 0x40180000) { /* inf>|x|>=6 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
385 | if(hx>=0) return one-tiny; else return tiny-one;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
386 | }
| ~
387 | x = fabs(x);
| ~~~~~~~~~~~~
388 | s = one/(x*x);
| ~~~~~~~~~~~~~~
389 | if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
390 | R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
391 | ra5+s*(ra6+s*ra7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
392 | S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393 | sa5+s*(sa6+s*(sa7+s*sa8)))))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
394 | } else { /* |x| >= 1/0.35 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
395 | R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396 | rb5+s*rb6)))));
| ~~~~~~~~~~~~~~~
397 | S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
398 | sb5+s*(sb6+s*sb7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
399 | }
| ~
400 | z = x;
| ~~~~~~~
401 | __LO(z) = 0;
| ~~~~~~~~~~~~
402 | r = s_IEEE754_Exp(-z*z-0.5625)*s_IEEE754_Exp((z-x)*(z+x)+R/S);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
403 | if(hx>=0) return one-r/x; else return r/x-one;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
404 | #endif
| ~~~~~~
405 | }
| ~
406 |
|
407 | double NCBI_ErfC(double x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
408 | {
| ~
409 | #ifdef HAVE_ERF
| ~~~~~~~~~~~~~~~
410 | return erfc(x);
| ~~~~~~~~~~~~~~~
411 | #else
| ~~~~~
412 | int hx,ix;
| ~~~~~~~~~~
413 | double R,S,P,Q,s,y,z,r;
| ~~~~~~~~~~~~~~~~~~~~~~~
414 | hx = __HI(x);
| ~~~~~~~~~~~~~
415 | ix = hx&0x7fffffff;
| ~~~~~~~~~~~~~~~~~~~
416 | if(ix>=0x7ff00000) { /* erfc(nan)=nan */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
417 | /* erfc(+-inf)=0,2 */
| ~~~~~~~~~~~~~~~~~~~~~
418 | return (double)(((unsigned)hx>>31)<<1)+one/x;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
419 | }
| ~
420 |
|
421 | if(ix < 0x3feb0000) { /* |x|<0.84375 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
422 | if(ix < 0x3c700000) /* |x|<2**-56 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
423 | return one-x;
| ~~~~~~~~~~~~~
424 | z = x*x;
| ~~~~~~~~
425 | r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
426 | s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
427 | y = r/s;
| ~~~~~~~~
428 | if(hx < 0x3fd00000) { /* x<1/4 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
429 | return one-(x+x*y);
| ~~~~~~~~~~~~~~~~~~~
430 | } else {
| ~~~~~~~~
431 | r = x*y;
| ~~~~~~~~
432 | r += (x-half);
| ~~~~~~~~~~~~~~
433 | return half - r ;
| ~~~~~~~~~~~~~~~~~
434 | }
| ~
435 | }
| ~
436 | if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
437 | s = fabs(x)-one;
| ~~~~~~~~~~~~~~~~
438 | P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
439 | Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
440 | if(hx>=0) {
| ~~~~~~~~~~~
441 | z = one-erx; return z - P/Q;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
442 | } else {
| ~~~~~~~~
443 | z = erx+P/Q; return one+z;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
444 | }
| ~
445 | }
| ~
446 | if (ix < 0x403c0000) { /* |x|<28 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
447 | x = fabs(x);
| ~~~~~~~~~~~~
448 | s = one/(x*x);
| ~~~~~~~~~~~~~~
449 | if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
450 | R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
451 | ra5+s*(ra6+s*ra7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
452 | S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
453 | sa5+s*(sa6+s*(sa7+s*sa8)))))));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
454 | } else { /* |x| >= 1/.35 ~ 2.857143 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
455 | if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
456 | R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
457 | rb5+s*rb6)))));
| ~~~~~~~~~~~~~~~
458 | S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
459 | sb5+s*(sb6+s*sb7))))));
| ~~~~~~~~~~~~~~~~~~~~~~~
460 | }
| ~
461 | z = x;
| ~~~~~~~
462 | __LO(z) = 0;
| ~~~~~~
ncbi_blast/setup/ncbi_erf.c:462:6: note: in expansion of macro ‘__LO’
462 | __LO(z) = 0;
| ^~~~
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_query_info.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_query_info.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_sequence_blk.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/blast_sequence_blk.c
cc -o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/gapinfo.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp ncbi_blast/setup/gapinfo.c
ar rv ../Linux-armv7l/bin/libhbn.a ../Linux-armv7l/obj/libhbn.a/corelib/build_db.o ../Linux-armv7l/obj/libhbn.a/corelib/cmd_arg.o ../Linux-armv7l/obj/libhbn.a/corelib/cstr_util.o ../Linux-armv7l/obj/libhbn.a/corelib/db_format.o ../Linux-armv7l/obj/libhbn.a/corelib/fasta.o ../Linux-armv7l/obj/libhbn.a/corelib/gapped_candidate.o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_aux.o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_format.o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_hit.o ../Linux-armv7l/obj/libhbn.a/corelib/hbn_package_version.o ../Linux-armv7l/obj/libhbn.a/corelib/kstring.o ../Linux-armv7l/obj/libhbn.a/corelib/line_reader.o ../Linux-armv7l/obj/libhbn.a/corelib/m4_record.o ../Linux-armv7l/obj/libhbn.a/corelib/name2id_map.o ../Linux-armv7l/obj/libhbn.a/corelib/partition_aux.o ../Linux-armv7l/obj/libhbn.a/corelib/raw_reads.o ../Linux-armv7l/obj/libhbn.a/corelib/seqdb_summary.o ../Linux-armv7l/obj/libhbn.a/corelib/seqdb.o ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag.o ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag_report.o ../Linux-armv7l/obj/libhbn.a/corelib/small_object_alloc.o ../Linux-armv7l/obj/libhbn.a/corelib/string2hsp.o ../Linux-armv7l/obj/libhbn.a/algo/chain_dp.o ../Linux-armv7l/obj/libhbn.a/algo/diff_gapalign.o ../Linux-armv7l/obj/libhbn.a/algo/hash_list_bucket_sort.o ../Linux-armv7l/obj/libhbn.a/algo/kalloc.o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extd2_sse.o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extz2_sse.o ../Linux-armv7l/obj/libhbn.a/algo/ksw2_wrapper.o ../Linux-armv7l/obj/libhbn.a/algo/hbn_lookup_table.o ../Linux-armv7l/obj/libhbn.a/algo/hbn_traceback_aux.o ../Linux-armv7l/obj/libhbn.a/algo/word_finder.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/c_ncbi_blast_aux.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/ncbi_blast_aux.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/blast_args.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/cmdline_flags.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/format_flags.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_allow.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_desc.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_types.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr_util.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_cmp.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/numeric_str_interconv.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_util.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_encoding.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_hits.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_message.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_options.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_stat.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_parameters.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_program.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_types.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/boost_erf.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/hsp2string.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/ncbi_math.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_query_info.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_sequence_blk.o ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/gapinfo.o
ar: creating ../Linux-armv7l/bin/libhbn.a
a - ../Linux-armv7l/obj/libhbn.a/corelib/build_db.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/cmd_arg.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/cstr_util.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/db_format.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/fasta.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/gapped_candidate.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/hbn_aux.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/hbn_format.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/hbn_hit.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/hbn_package_version.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/kstring.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/line_reader.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/m4_record.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/name2id_map.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/partition_aux.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/raw_reads.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/seqdb_summary.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/seqdb.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/seq_tag_report.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/small_object_alloc.o
a - ../Linux-armv7l/obj/libhbn.a/corelib/string2hsp.o
a - ../Linux-armv7l/obj/libhbn.a/algo/chain_dp.o
a - ../Linux-armv7l/obj/libhbn.a/algo/diff_gapalign.o
a - ../Linux-armv7l/obj/libhbn.a/algo/hash_list_bucket_sort.o
a - ../Linux-armv7l/obj/libhbn.a/algo/kalloc.o
a - ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extd2_sse.o
a - ../Linux-armv7l/obj/libhbn.a/algo/ksw2_extz2_sse.o
a - ../Linux-armv7l/obj/libhbn.a/algo/ksw2_wrapper.o
a - ../Linux-armv7l/obj/libhbn.a/algo/hbn_lookup_table.o
a - ../Linux-armv7l/obj/libhbn.a/algo/hbn_traceback_aux.o
a - ../Linux-armv7l/obj/libhbn.a/algo/word_finder.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/c_ncbi_blast_aux.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/ncbi_blast_aux.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/blast_args.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/cmdline_flags.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/format_flags.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_allow.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_desc.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/cmdline_args/ncbiargs_types.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr_util.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/ncbistr.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_cmp.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/numeric_str_interconv.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/str_util/str_util.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_encoding.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_hits.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_message.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_options.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_stat.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_parameters.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_program.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_types.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/boost_erf.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/hsp2string.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/ncbi_math.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_query_info.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/blast_sequence_blk.o
a - ../Linux-armv7l/obj/libhbn.a/ncbi_blast/setup/gapinfo.o
cc -o ../Linux-armv7l/obj/mecat2pcan/app/mecat2pcan/pcan.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/mecat2pcan app/mecat2pcan/pcan.c
cc -o ../Linux-armv7l/bin/mecat2pcan -pthread -lm -lz -lstdc++ -fopenmp -L../Linux-armv7l/bin ../Linux-armv7l/obj/mecat2pcan/app/mecat2pcan/pcan.o -lhbn -pthread -lm -lz -lstdc++ -fopenmp
g++ -o ../Linux-armv7l/obj/mecat2map/app/map/cmdline_args.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=c++11 -DNDEBUG -fopenmp -Iapp/map app/map/cmdline_args.cpp
app/map/cmdline_args.cpp:74:20: warning: ‘ncbi::kGroupExtension’ defined but not used [-Wunused-variable]
74 | static const char* kGroupExtension = "Extension options";
| ^~~~~~~~~~~~~~~
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_align_one_volume.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_align_one_volume.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_build_seqdb.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_build_seqdb.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_extend_subseq_hit.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_extend_subseq_hit.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_find_subseq_hit.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_find_subseq_hit.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_job_control.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_job_control.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_options.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_options.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_subseq_hit.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_subseq_hit.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/hbn_task_struct.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/hbn_task_struct.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/main.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/main.c
cc -o ../Linux-armv7l/obj/mecat2map/app/map/mecat_results.o -c -MD -D_GLIBCXX_PARALLEL -pthread -O3 -Wall -std=gnu99 -DNDEBUG -fopenmp -Iapp/map app/map/mecat_results.c
g++ -o ../Linux-armv7l/bin/mecat2map -pthread -lm -lz -lstdc++ -fopenmp -L../Linux-armv7l/bin ../Linux-armv7l/obj/mecat2map/app/map/cmdline_args.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_align_one_volume.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_build_seqdb.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_extend_subseq_hit.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_find_subseq_hit.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_job_control.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_options.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_subseq_hit.o ../Linux-armv7l/obj/mecat2map/app/map/hbn_task_struct.o ../Linux-armv7l/obj/mecat2map/app/map/main.o ../Linux-armv7l/obj/mecat2map/app/map/mecat_results.o -lhbn -pthread -lm -lz -lstdc++ -fopenmp
/usr/bin/ld: ../Linux-armv7l/bin/libhbn.a(diff_gapalign.o): in function `diff_align':
diff_gapalign.cpp:(.text+0x219c): undefined reference to `ksw_extz2_sse'
/usr/bin/ld: diff_gapalign.cpp:(.text+0x24ec): undefined reference to `ksw_extz2_sse'
/usr/bin/ld: ../Linux-armv7l/bin/libhbn.a(ksw2_wrapper.o): in function `nw_ksw2_extd2':
ksw2_wrapper.c:(.text+0x2f4): undefined reference to `ksw_extd2_sse'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:402: ../Linux-armv7l/bin/mecat2map] Error 1
make[2]: Leaving directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds/src'
make[1]: *** [Makefile:16: mecat] Error 2
make[1]: Leaving directory '/<<BUILDDIR>>/mecat2-0.0+git20200428.f54c542+ds'
dh_auto_build: error: make -j4 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:12: binary-arch] Error 25
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2020-10-21T09:47:30Z
Finished
--------
+------------------------------------------------------------------------------+
| Cleanup |
+------------------------------------------------------------------------------+
Purging /<<BUILDDIR>>
Not cleaning session: cloned chroot in use
E: Build failure (dpkg-buildpackage died)
+------------------------------------------------------------------------------+
| Summary |
+------------------------------------------------------------------------------+
Build Architecture: armhf
Build-Space: 0
Build-Time: 449
Distribution: bullseye-staging
Fail-Stage: build
Host Architecture: armhf
Install-Time: 218
Job: mecat2_0.0+git20200428.f54c542+ds-2
Machine Architecture: armhf
Package: mecat2
Package-Time: 906
Source-Version: 0.0+git20200428.f54c542+ds-2
Space: 0
Status: failed
Version: 0.0+git20200428.f54c542+ds-2
--------------------------------------------------------------------------------
Finished at 2020-10-21T09:47:30Z
Build needed 00:00:00, 0k disc space