Raspbian Package Auto-Building

Build log for mecat2 (0.0+git20200428.f54c542+ds-2) on armhf

mecat20.0+git20200428.f54c542+ds-2armhf → 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