0s autopkgtest [19:52:03]: starting date and time: 2024-03-16 19:52:03+0000 0s autopkgtest [19:52:03]: git checkout: b506e79c ssh-setup/nova: fix ARCH having two lines of data 0s autopkgtest [19:52:03]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.mjcm820l/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:r-base,src:curl,src:glib2.0,src:libpng1.6,src:libpsl,src:libtirpc,src:libxt,src:openssl,src:orthanc-python,src:readline,src:wp2latex --apt-upgrade r-cran-rmpfr --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=r-base/4.3.3-2build1 curl/8.5.0-2ubuntu7 glib2.0/2.79.3-3ubuntu5 libpng1.6/1.6.43-3 libpsl/0.21.2-1.1 libtirpc/1.3.4+ds-1.1 libxt/1:1.2.1-1.2 openssl/3.0.13-0ubuntu1 orthanc-python/4.1+ds-2build3 readline/8.2-3.1 wp2latex/4.4~ds-1build1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos02-arm64-6.secgroup --name adt-noble-arm64-r-cran-rmpfr-20240316-195203-juju-7f2275-prod-proposed-migration-environment-2 --image adt/ubuntu-noble-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 221s autopkgtest [19:55:44]: testbed dpkg architecture: arm64 221s autopkgtest [19:55:44]: testbed apt version: 2.7.12 221s autopkgtest [19:55:44]: @@@@@@@@@@@@@@@@@@@@ test bed setup 222s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 223s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [474 kB] 224s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [3657 kB] 224s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [51.4 kB] 224s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [6540 B] 224s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 Packages [646 kB] 224s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 c-n-f Metadata [3144 B] 224s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 Packages [33.6 kB] 224s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 c-n-f Metadata [116 B] 224s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 Packages [4013 kB] 224s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 c-n-f Metadata [8528 B] 224s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 Packages [55.5 kB] 224s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 c-n-f Metadata [116 B] 234s Fetched 9065 kB in 5s (1970 kB/s) 235s Reading package lists... 240s Reading package lists... 241s Building dependency tree... 241s Reading state information... 243s Calculating upgrade... 244s The following packages will be REMOVED: 244s libglib2.0-0 libssl3 244s The following NEW packages will be installed: 244s libglib2.0-0t64 libssl3t64 xdg-user-dirs 244s The following packages have been kept back: 244s curl 244s The following packages will be upgraded: 244s gir1.2-glib-2.0 libglib2.0-data libtirpc-common openssl readline-common 244s 5 upgraded, 3 newly installed, 2 to remove and 1 not upgraded. 244s Need to get 4592 kB of archives. 244s After this operation, 211 kB of additional disk space will be used. 244s Get:1 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 gir1.2-glib-2.0 arm64 2.79.3-3ubuntu5 [182 kB] 244s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-0t64 arm64 2.79.3-3ubuntu5 [1527 kB] 244s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 openssl arm64 3.0.13-0ubuntu1 [983 kB] 244s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libssl3t64 arm64 3.0.13-0ubuntu1 [1770 kB] 245s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-data all 2.79.3-3ubuntu5 [46.6 kB] 245s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc-common all 1.3.4+ds-1.1 [8018 B] 245s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 readline-common all 8.2-3.1 [56.4 kB] 245s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-user-dirs arm64 0.18-1 [18.1 kB] 246s Fetched 4592 kB in 1s (5508 kB/s) 247s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 247s Preparing to unpack .../gir1.2-glib-2.0_2.79.3-3ubuntu5_arm64.deb ... 247s Unpacking gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 247s dpkg: libglib2.0-0:arm64: dependency problems, but removing anyway as you requested: 247s udisks2 depends on libglib2.0-0 (>= 2.77.0). 247s shared-mime-info depends on libglib2.0-0 (>= 2.75.3). 247s python3-gi depends on libglib2.0-0 (>= 2.77.0). 247s python3-dbus depends on libglib2.0-0 (>= 2.16.0). 247s netplan.io depends on libglib2.0-0 (>= 2.70.0). 247s netplan-generator depends on libglib2.0-0 (>= 2.70.0). 247s libxmlb2:arm64 depends on libglib2.0-0 (>= 2.54.0). 247s libvolume-key1:arm64 depends on libglib2.0-0 (>= 2.18.0). 247s libudisks2-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libqrtr-glib0:arm64 depends on libglib2.0-0 (>= 2.56). 247s libqmi-proxy depends on libglib2.0-0 (>= 2.30.0). 247s libqmi-glib5:arm64 depends on libglib2.0-0 (>= 2.54.0). 247s libpolkit-gobject-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 247s libpolkit-agent-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 247s libnetplan0:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libmm-glib0:arm64 depends on libglib2.0-0 (>= 2.62.0). 247s libmbim-proxy depends on libglib2.0-0 (>= 2.56). 247s libmbim-glib4:arm64 depends on libglib2.0-0 (>= 2.56). 247s libjson-glib-1.0-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libjcat1:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libgusb2:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libgudev-1.0-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 247s libgirepository-1.0-1:arm64 depends on libglib2.0-0 (>= 2.79.0). 247s libfwupd2:arm64 depends on libglib2.0-0 (>= 2.79.0). 247s libblockdev3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-utils3:arm64 depends on libglib2.0-0 (>= 2.75.3). 247s libblockdev-swap3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-part3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-nvme3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-mdraid3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-loop3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-fs3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s libblockdev-crypto3:arm64 depends on libglib2.0-0 (>= 2.42.2). 247s fwupd depends on libglib2.0-0 (>= 2.79.0). 247s bolt depends on libglib2.0-0 (>= 2.56.0). 247s 247s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 247s Removing libglib2.0-0:arm64 (2.79.2-1~ubuntu1) ... 247s Selecting previously unselected package libglib2.0-0t64:arm64. 247s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75825 files and directories currently installed.) 247s Preparing to unpack .../libglib2.0-0t64_2.79.3-3ubuntu5_arm64.deb ... 248s libglib2.0-0t64.preinst: Removing /var/lib/dpkg/info/libglib2.0-0:arm64.postrm to avoid loss of /usr/share/glib-2.0/schemas/gschemas.compiled... 248s removed '/var/lib/dpkg/info/libglib2.0-0:arm64.postrm' 248s Unpacking libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 248s Preparing to unpack .../openssl_3.0.13-0ubuntu1_arm64.deb ... 248s Unpacking openssl (3.0.13-0ubuntu1) over (3.0.10-1ubuntu4) ... 248s dpkg: libssl3:arm64: dependency problems, but removing anyway as you requested: 248s wget depends on libssl3 (>= 3.0.0). 248s u-boot-tools depends on libssl3 (>= 3.0.0). 248s tnftp depends on libssl3 (>= 3.0.0). 248s tcpdump depends on libssl3 (>= 3.0.0). 248s systemd-resolved depends on libssl3 (>= 3.0.0). 248s systemd depends on libssl3 (>= 3.0.0). 248s sudo depends on libssl3 (>= 3.0.0). 248s sbsigntool depends on libssl3 (>= 3.0.0). 248s rsync depends on libssl3 (>= 3.0.0). 248s python3-cryptography depends on libssl3 (>= 3.0.0). 248s openssh-server depends on libssl3 (>= 3.0.10). 248s openssh-client depends on libssl3 (>= 3.0.10). 248s mtd-utils depends on libssl3 (>= 3.0.0). 248s mokutil depends on libssl3 (>= 3.0.0). 248s linux-headers-6.8.0-11-generic depends on libssl3 (>= 3.0.0). 248s libsystemd-shared:arm64 depends on libssl3 (>= 3.0.0). 248s libssh-4:arm64 depends on libssl3 (>= 3.0.0). 248s libsasl2-modules:arm64 depends on libssl3 (>= 3.0.0). 248s libsasl2-2:arm64 depends on libssl3 (>= 3.0.0). 248s libpython3.12-minimal:arm64 depends on libssl3 (>= 3.0.0). 248s libpython3.11-minimal:arm64 depends on libssl3 (>= 3.0.0). 248s libnvme1 depends on libssl3 (>= 3.0.0). 248s libkrb5-3:arm64 depends on libssl3 (>= 3.0.0). 248s libkmod2:arm64 depends on libssl3 (>= 3.0.0). 248s libfido2-1:arm64 depends on libssl3 (>= 3.0.0). 248s libcurl4:arm64 depends on libssl3 (>= 3.0.0). 248s libcryptsetup12:arm64 depends on libssl3 (>= 3.0.0). 248s kmod depends on libssl3 (>= 3.0.0). 248s dhcpcd-base depends on libssl3 (>= 3.0.0). 248s bind9-libs:arm64 depends on libssl3 (>= 3.0.0). 248s 248s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 248s Removing libssl3:arm64 (3.0.10-1ubuntu4) ... 249s Selecting previously unselected package libssl3t64:arm64. 249s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75839 files and directories currently installed.) 249s Preparing to unpack .../libssl3t64_3.0.13-0ubuntu1_arm64.deb ... 249s Unpacking libssl3t64:arm64 (3.0.13-0ubuntu1) ... 249s Preparing to unpack .../libglib2.0-data_2.79.3-3ubuntu5_all.deb ... 249s Unpacking libglib2.0-data (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 249s Preparing to unpack .../libtirpc-common_1.3.4+ds-1.1_all.deb ... 249s Unpacking libtirpc-common (1.3.4+ds-1.1) over (1.3.4+ds-1build1) ... 249s Preparing to unpack .../readline-common_8.2-3.1_all.deb ... 249s Unpacking readline-common (8.2-3.1) over (8.2-3) ... 249s Selecting previously unselected package xdg-user-dirs. 249s Preparing to unpack .../xdg-user-dirs_0.18-1_arm64.deb ... 249s Unpacking xdg-user-dirs (0.18-1) ... 249s Setting up xdg-user-dirs (0.18-1) ... 249s Setting up libssl3t64:arm64 (3.0.13-0ubuntu1) ... 249s Setting up libtirpc-common (1.3.4+ds-1.1) ... 249s Setting up libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 249s No schema files found: doing nothing. 249s Setting up libglib2.0-data (2.79.3-3ubuntu5) ... 249s Setting up gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) ... 249s Setting up openssl (3.0.13-0ubuntu1) ... 249s Setting up readline-common (8.2-3.1) ... 249s Processing triggers for man-db (2.12.0-3) ... 251s Processing triggers for install-info (7.1-3) ... 251s Processing triggers for libc-bin (2.39-0ubuntu2) ... 252s Reading package lists... 253s Building dependency tree... 253s Reading state information... 254s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 255s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 255s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 255s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 255s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 261s Reading package lists... 261s Reading package lists... 262s Building dependency tree... 262s Reading state information... 263s Calculating upgrade... 264s The following packages have been kept back: 264s curl 264s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 264s Reading package lists... 265s Building dependency tree... 265s Reading state information... 267s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 270s autopkgtest [19:56:33]: testbed running kernel: Linux 6.8.0-11-generic #11-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 14 02:53:31 UTC 2024 271s autopkgtest [19:56:34]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-rmpfr 273s Get:1 http://ftpmaster.internal/ubuntu noble/universe r-cran-rmpfr 0.9-5-1 (dsc) [2135 B] 273s Get:2 http://ftpmaster.internal/ubuntu noble/universe r-cran-rmpfr 0.9-5-1 (tar) [608 kB] 273s Get:3 http://ftpmaster.internal/ubuntu noble/universe r-cran-rmpfr 0.9-5-1 (diff) [2684 B] 274s gpgv: Signature made Thu Feb 1 16:01:12 2024 UTC 274s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 274s gpgv: issuer "tille@debian.org" 274s gpgv: Can't check signature: No public key 274s dpkg-source: warning: cannot verify inline signature for ./r-cran-rmpfr_0.9-5-1.dsc: no acceptable signature found 274s autopkgtest [19:56:37]: testing package r-cran-rmpfr version 0.9-5-1 274s autopkgtest [19:56:37]: build not needed 275s autopkgtest [19:56:38]: test run-unit-test: preparing testbed 277s Reading package lists... 278s Building dependency tree... 278s Reading state information... 279s Starting pkgProblemResolver with broken count: 0 279s Starting 2 pkgProblemResolver with broken count: 0 279s Done 281s The following additional packages will be installed: 281s curl fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 281s libblas3 libcairo2 libcurl4t64 libdatrie1 libdeflate0 libfontconfig1 281s libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 libjbig0 281s libjpeg-turbo8 libjpeg8 liblapack3 liblerc4 libpango-1.0-0 281s libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpixman-1-0 281s libpng16-16t64 libpsl5t64 libreadline8t64 libsharpyuv0 libsm6 libtcl8.6 281s libthai-data libthai0 libtiff6 libtirpc3t64 libtk8.6 libwebp7 libxcb-render0 281s libxcb-shm0 libxft2 libxrender1 libxss1 libxt6t64 r-base-core r-cran-gmp 281s r-cran-mass r-cran-polynom r-cran-rmpfr r-cran-sfsmisc unzip x11-common 281s xdg-utils zip 281s Suggested packages: 281s tcl8.6 tk8.6 elpa-ess r-doc-info | r-doc-pdf r-mathlib r-base-html 281s r-cran-knitr r-cran-rmarkdown 281s Recommended packages: 281s r-recommended r-base-dev r-doc-html r-cran-cluster r-cran-lattice 281s r-cran-matrix r-cran-nlme libfile-mimeinfo-perl libnet-dbus-perl 281s libx11-protocol-perl x11-utils x11-xserver-utils 281s The following packages will be REMOVED: 281s libcurl4 libpng16-16 libpsl5 libreadline8 libtirpc3 281s The following NEW packages will be installed: 281s autopkgtest-satdep fontconfig fontconfig-config fonts-dejavu-core 281s fonts-dejavu-mono libblas3 libcairo2 libcurl4t64 libdatrie1 libdeflate0 281s libfontconfig1 libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 281s libjbig0 libjpeg-turbo8 libjpeg8 liblapack3 liblerc4 libpango-1.0-0 281s libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpixman-1-0 281s libpng16-16t64 libpsl5t64 libreadline8t64 libsharpyuv0 libsm6 libtcl8.6 281s libthai-data libthai0 libtiff6 libtirpc3t64 libtk8.6 libwebp7 libxcb-render0 281s libxcb-shm0 libxft2 libxrender1 libxss1 libxt6t64 r-base-core r-cran-gmp 281s r-cran-mass r-cran-polynom r-cran-rmpfr r-cran-sfsmisc unzip x11-common 281s xdg-utils zip 281s The following packages will be upgraded: 281s curl 281s 1 upgraded, 55 newly installed, 5 to remove and 0 not upgraded. 281s Need to get 41.0 MB/41.0 MB of archives. 281s After this operation, 80.1 MB of additional disk space will be used. 281s Get:1 /tmp/autopkgtest.gNpW7B/1-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [740 B] 282s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpsl5t64 arm64 0.21.2-1.1 [57.4 kB] 282s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 curl arm64 8.5.0-2ubuntu7 [222 kB] 282s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libcurl4t64 arm64 8.5.0-2ubuntu7 [332 kB] 282s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpng16-16t64 arm64 1.6.43-3 [185 kB] 282s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libreadline8t64 arm64 8.2-3.1 [153 kB] 282s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.1 [83.5 kB] 282s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-mono all 2.37-8 [502 kB] 282s Get:9 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-core all 2.37-8 [835 kB] 282s Get:10 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig-config arm64 2.15.0-1ubuntu1 [37.0 kB] 282s Get:11 http://ftpmaster.internal/ubuntu noble/main arm64 libfontconfig1 arm64 2.15.0-1ubuntu1 [142 kB] 282s Get:12 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig arm64 2.15.0-1ubuntu1 [190 kB] 282s Get:13 http://ftpmaster.internal/ubuntu noble/main arm64 libblas3 arm64 3.12.0-3 [143 kB] 282s Get:14 http://ftpmaster.internal/ubuntu noble/main arm64 libpixman-1-0 arm64 0.42.2-1 [193 kB] 282s Get:15 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-render0 arm64 1.15-1 [16.1 kB] 282s Get:16 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-shm0 arm64 1.15-1 [5780 B] 282s Get:17 http://ftpmaster.internal/ubuntu noble/main arm64 libxrender1 arm64 1:0.9.10-1.1 [19.1 kB] 282s Get:18 http://ftpmaster.internal/ubuntu noble/main arm64 libcairo2 arm64 1.18.0-1 [550 kB] 282s Get:19 http://ftpmaster.internal/ubuntu noble/main arm64 libdatrie1 arm64 0.2.13-3 [21.7 kB] 282s Get:20 http://ftpmaster.internal/ubuntu noble/main arm64 libdeflate0 arm64 1.19-1 [43.4 kB] 282s Get:21 http://ftpmaster.internal/ubuntu noble/main arm64 libgfortran5 arm64 14-20240303-1ubuntu1 [444 kB] 282s Get:22 http://ftpmaster.internal/ubuntu noble/main arm64 libgomp1 arm64 14-20240303-1ubuntu1 [144 kB] 282s Get:23 http://ftpmaster.internal/ubuntu noble/main arm64 libgraphite2-3 arm64 1.3.14-2 [81.5 kB] 282s Get:24 http://ftpmaster.internal/ubuntu noble/main arm64 libharfbuzz0b arm64 8.3.0-2 [463 kB] 282s Get:25 http://ftpmaster.internal/ubuntu noble/main arm64 x11-common all 1:7.7+23ubuntu2 [23.4 kB] 282s Get:26 http://ftpmaster.internal/ubuntu noble/main arm64 libice6 arm64 2:1.0.10-1build2 [41.7 kB] 282s Get:27 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-turbo8 arm64 2.1.5-2ubuntu1 [160 kB] 282s Get:28 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg8 arm64 8c-2ubuntu11 [2148 B] 282s Get:29 http://ftpmaster.internal/ubuntu noble/main arm64 liblapack3 arm64 3.12.0-3 [2241 kB] 282s Get:30 http://ftpmaster.internal/ubuntu noble/main arm64 liblerc4 arm64 4.0.0+ds-4ubuntu1 [153 kB] 282s Get:31 http://ftpmaster.internal/ubuntu noble/main arm64 libthai-data all 0.1.29-2 [158 kB] 282s Get:32 http://ftpmaster.internal/ubuntu noble/main arm64 libthai0 arm64 0.1.29-2 [18.1 kB] 282s Get:33 http://ftpmaster.internal/ubuntu noble/main arm64 libpango-1.0-0 arm64 1.51.0+ds-4 [226 kB] 282s Get:34 http://ftpmaster.internal/ubuntu noble/main arm64 libpangoft2-1.0-0 arm64 1.51.0+ds-4 [41.2 kB] 282s Get:35 http://ftpmaster.internal/ubuntu noble/main arm64 libpangocairo-1.0-0 arm64 1.51.0+ds-4 [27.6 kB] 283s Get:36 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper1 arm64 1.1.29 [13.1 kB] 283s Get:37 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper-utils arm64 1.1.29 [8480 B] 283s Get:38 http://ftpmaster.internal/ubuntu noble/main arm64 libsharpyuv0 arm64 1.3.2-0.4 [14.4 kB] 283s Get:39 http://ftpmaster.internal/ubuntu noble/main arm64 libsm6 arm64 2:1.2.3-1build2 [16.1 kB] 283s Get:40 http://ftpmaster.internal/ubuntu noble/main arm64 libtcl8.6 arm64 8.6.13+dfsg-2 [980 kB] 283s Get:41 http://ftpmaster.internal/ubuntu noble/main arm64 libjbig0 arm64 2.1-6.1ubuntu1 [28.9 kB] 283s Get:42 http://ftpmaster.internal/ubuntu noble/main arm64 libwebp7 arm64 1.3.2-0.4 [191 kB] 283s Get:43 http://ftpmaster.internal/ubuntu noble/main arm64 libtiff6 arm64 4.5.1+git230720-3ubuntu1 [226 kB] 283s Get:44 http://ftpmaster.internal/ubuntu noble/main arm64 libxft2 arm64 2.3.6-1 [43.3 kB] 283s Get:45 http://ftpmaster.internal/ubuntu noble/main arm64 libxss1 arm64 1:1.2.3-1build2 [8252 B] 283s Get:46 http://ftpmaster.internal/ubuntu noble/main arm64 libtk8.6 arm64 8.6.13-2 [760 kB] 283s Get:47 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libxt6t64 arm64 1:1.2.1-1.2 [168 kB] 283s Get:48 http://ftpmaster.internal/ubuntu noble/main arm64 zip arm64 3.0-13 [172 kB] 283s Get:49 http://ftpmaster.internal/ubuntu noble/main arm64 unzip arm64 6.0-28ubuntu3 [171 kB] 283s Get:50 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-utils all 1.1.3-4.1ubuntu3 [62.0 kB] 283s Get:51 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 r-base-core arm64 4.3.3-2build1 [26.8 MB] 284s Get:52 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-gmp arm64 0.7-4-1 [299 kB] 284s Get:53 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-mass arm64 7.3-60.0.1-1 [1119 kB] 284s Get:54 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-polynom all 1.4-1+dfsg-1 [89.7 kB] 284s Get:55 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-rmpfr arm64 0.9-5-1 [1219 kB] 284s Get:56 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-sfsmisc all 1.1-16-1 [651 kB] 285s Preconfiguring packages ... 286s Fetched 41.0 MB in 3s (13.8 MB/s) 286s dpkg: libpsl5:arm64: dependency problems, but removing anyway as you requested: 286s wget depends on libpsl5 (>= 0.16.0). 286s libcurl4:arm64 depends on libpsl5 (>= 0.16.0). 286s libcurl3-gnutls:arm64 depends on libpsl5 (>= 0.16.0). 286s 286s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75866 files and directories currently installed.) 286s Removing libpsl5:arm64 (0.21.2-1build1) ... 286s Selecting previously unselected package libpsl5t64:arm64. 286s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75861 files and directories currently installed.) 286s Preparing to unpack .../libpsl5t64_0.21.2-1.1_arm64.deb ... 286s Unpacking libpsl5t64:arm64 (0.21.2-1.1) ... 286s Preparing to unpack .../curl_8.5.0-2ubuntu7_arm64.deb ... 286s Unpacking curl (8.5.0-2ubuntu7) over (8.5.0-2ubuntu2) ... 287s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75867 files and directories currently installed.) 287s Removing libcurl4:arm64 (8.5.0-2ubuntu2) ... 287s Selecting previously unselected package libcurl4t64:arm64. 287s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75862 files and directories currently installed.) 287s Preparing to unpack .../libcurl4t64_8.5.0-2ubuntu7_arm64.deb ... 287s Unpacking libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 287s dpkg: libpng16-16:arm64: dependency problems, but removing anyway as you requested: 287s libplymouth5:arm64 depends on libpng16-16 (>= 1.6.2). 287s libfreetype6:arm64 depends on libpng16-16 (>= 1.6.2-1). 287s 287s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75868 files and directories currently installed.) 287s Removing libpng16-16:arm64 (1.6.43-1) ... 287s Selecting previously unselected package libpng16-16t64:arm64. 287s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75858 files and directories currently installed.) 287s Preparing to unpack .../libpng16-16t64_1.6.43-3_arm64.deb ... 287s Unpacking libpng16-16t64:arm64 (1.6.43-3) ... 287s dpkg: libreadline8:arm64: dependency problems, but removing anyway as you requested: 287s parted depends on libreadline8 (>= 6.0). 287s libpython3.12-stdlib:arm64 depends on libreadline8 (>= 7.0~beta). 287s libpython3.11-stdlib:arm64 depends on libreadline8 (>= 7.0~beta). 287s gpgsm depends on libreadline8 (>= 6.0). 287s gpgconf depends on libreadline8 (>= 6.0). 287s gpg depends on libreadline8 (>= 6.0). 287s gawk depends on libreadline8 (>= 6.0). 287s fdisk depends on libreadline8 (>= 6.0). 287s 288s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75869 files and directories currently installed.) 288s Removing libreadline8:arm64 (8.2-3) ... 288s Selecting previously unselected package libreadline8t64:arm64. 288s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75857 files and directories currently installed.) 288s Preparing to unpack .../libreadline8t64_8.2-3.1_arm64.deb ... 288s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' 288s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' 288s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' 288s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' 288s Unpacking libreadline8t64:arm64 (8.2-3.1) ... 288s dpkg: libtirpc3:arm64: dependency problems, but removing anyway as you requested: 288s lsof depends on libtirpc3 (>= 1.0.2). 288s libpython3.12-stdlib:arm64 depends on libtirpc3 (>= 1.0.2). 288s libpython3.11-stdlib:arm64 depends on libtirpc3 (>= 1.0.2). 288s libnsl2:arm64 depends on libtirpc3 (>= 1.0.2). 288s iproute2 depends on libtirpc3 (>= 1.0.2). 288s 288s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75877 files and directories currently installed.) 288s Removing libtirpc3:arm64 (1.3.4+ds-1build1) ... 288s Selecting previously unselected package libtirpc3t64:arm64. 289s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75871 files and directories currently installed.) 289s Preparing to unpack .../00-libtirpc3t64_1.3.4+ds-1.1_arm64.deb ... 289s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' 289s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' 289s Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 289s Selecting previously unselected package fonts-dejavu-mono. 289s Preparing to unpack .../01-fonts-dejavu-mono_2.37-8_all.deb ... 289s Unpacking fonts-dejavu-mono (2.37-8) ... 289s Selecting previously unselected package fonts-dejavu-core. 289s Preparing to unpack .../02-fonts-dejavu-core_2.37-8_all.deb ... 289s Unpacking fonts-dejavu-core (2.37-8) ... 289s Selecting previously unselected package fontconfig-config. 289s Preparing to unpack .../03-fontconfig-config_2.15.0-1ubuntu1_arm64.deb ... 290s Unpacking fontconfig-config (2.15.0-1ubuntu1) ... 290s Selecting previously unselected package libfontconfig1:arm64. 290s Preparing to unpack .../04-libfontconfig1_2.15.0-1ubuntu1_arm64.deb ... 290s Unpacking libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 290s Selecting previously unselected package fontconfig. 290s Preparing to unpack .../05-fontconfig_2.15.0-1ubuntu1_arm64.deb ... 290s Unpacking fontconfig (2.15.0-1ubuntu1) ... 290s Selecting previously unselected package libblas3:arm64. 290s Preparing to unpack .../06-libblas3_3.12.0-3_arm64.deb ... 290s Unpacking libblas3:arm64 (3.12.0-3) ... 290s Selecting previously unselected package libpixman-1-0:arm64. 290s Preparing to unpack .../07-libpixman-1-0_0.42.2-1_arm64.deb ... 290s Unpacking libpixman-1-0:arm64 (0.42.2-1) ... 290s Selecting previously unselected package libxcb-render0:arm64. 290s Preparing to unpack .../08-libxcb-render0_1.15-1_arm64.deb ... 290s Unpacking libxcb-render0:arm64 (1.15-1) ... 290s Selecting previously unselected package libxcb-shm0:arm64. 290s Preparing to unpack .../09-libxcb-shm0_1.15-1_arm64.deb ... 290s Unpacking libxcb-shm0:arm64 (1.15-1) ... 290s Selecting previously unselected package libxrender1:arm64. 290s Preparing to unpack .../10-libxrender1_1%3a0.9.10-1.1_arm64.deb ... 290s Unpacking libxrender1:arm64 (1:0.9.10-1.1) ... 291s Selecting previously unselected package libcairo2:arm64. 291s Preparing to unpack .../11-libcairo2_1.18.0-1_arm64.deb ... 291s Unpacking libcairo2:arm64 (1.18.0-1) ... 291s Selecting previously unselected package libdatrie1:arm64. 291s Preparing to unpack .../12-libdatrie1_0.2.13-3_arm64.deb ... 291s Unpacking libdatrie1:arm64 (0.2.13-3) ... 291s Selecting previously unselected package libdeflate0:arm64. 291s Preparing to unpack .../13-libdeflate0_1.19-1_arm64.deb ... 291s Unpacking libdeflate0:arm64 (1.19-1) ... 291s Selecting previously unselected package libgfortran5:arm64. 291s Preparing to unpack .../14-libgfortran5_14-20240303-1ubuntu1_arm64.deb ... 291s Unpacking libgfortran5:arm64 (14-20240303-1ubuntu1) ... 291s Selecting previously unselected package libgomp1:arm64. 291s Preparing to unpack .../15-libgomp1_14-20240303-1ubuntu1_arm64.deb ... 291s Unpacking libgomp1:arm64 (14-20240303-1ubuntu1) ... 291s Selecting previously unselected package libgraphite2-3:arm64. 291s Preparing to unpack .../16-libgraphite2-3_1.3.14-2_arm64.deb ... 291s Unpacking libgraphite2-3:arm64 (1.3.14-2) ... 291s Selecting previously unselected package libharfbuzz0b:arm64. 291s Preparing to unpack .../17-libharfbuzz0b_8.3.0-2_arm64.deb ... 291s Unpacking libharfbuzz0b:arm64 (8.3.0-2) ... 291s Selecting previously unselected package x11-common. 291s Preparing to unpack .../18-x11-common_1%3a7.7+23ubuntu2_all.deb ... 291s Unpacking x11-common (1:7.7+23ubuntu2) ... 291s Selecting previously unselected package libice6:arm64. 292s Preparing to unpack .../19-libice6_2%3a1.0.10-1build2_arm64.deb ... 292s Unpacking libice6:arm64 (2:1.0.10-1build2) ... 292s Selecting previously unselected package libjpeg-turbo8:arm64. 292s Preparing to unpack .../20-libjpeg-turbo8_2.1.5-2ubuntu1_arm64.deb ... 292s Unpacking libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 292s Selecting previously unselected package libjpeg8:arm64. 292s Preparing to unpack .../21-libjpeg8_8c-2ubuntu11_arm64.deb ... 292s Unpacking libjpeg8:arm64 (8c-2ubuntu11) ... 292s Selecting previously unselected package liblapack3:arm64. 292s Preparing to unpack .../22-liblapack3_3.12.0-3_arm64.deb ... 292s Unpacking liblapack3:arm64 (3.12.0-3) ... 292s Selecting previously unselected package liblerc4:arm64. 292s Preparing to unpack .../23-liblerc4_4.0.0+ds-4ubuntu1_arm64.deb ... 292s Unpacking liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 292s Selecting previously unselected package libthai-data. 292s Preparing to unpack .../24-libthai-data_0.1.29-2_all.deb ... 292s Unpacking libthai-data (0.1.29-2) ... 292s Selecting previously unselected package libthai0:arm64. 292s Preparing to unpack .../25-libthai0_0.1.29-2_arm64.deb ... 292s Unpacking libthai0:arm64 (0.1.29-2) ... 292s Selecting previously unselected package libpango-1.0-0:arm64. 292s Preparing to unpack .../26-libpango-1.0-0_1.51.0+ds-4_arm64.deb ... 292s Unpacking libpango-1.0-0:arm64 (1.51.0+ds-4) ... 292s Selecting previously unselected package libpangoft2-1.0-0:arm64. 293s Preparing to unpack .../27-libpangoft2-1.0-0_1.51.0+ds-4_arm64.deb ... 293s Unpacking libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 293s Selecting previously unselected package libpangocairo-1.0-0:arm64. 293s Preparing to unpack .../28-libpangocairo-1.0-0_1.51.0+ds-4_arm64.deb ... 293s Unpacking libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 293s Selecting previously unselected package libpaper1:arm64. 293s Preparing to unpack .../29-libpaper1_1.1.29_arm64.deb ... 293s Unpacking libpaper1:arm64 (1.1.29) ... 293s Selecting previously unselected package libpaper-utils. 293s Preparing to unpack .../30-libpaper-utils_1.1.29_arm64.deb ... 293s Unpacking libpaper-utils (1.1.29) ... 293s Selecting previously unselected package libsharpyuv0:arm64. 293s Preparing to unpack .../31-libsharpyuv0_1.3.2-0.4_arm64.deb ... 293s Unpacking libsharpyuv0:arm64 (1.3.2-0.4) ... 293s Selecting previously unselected package libsm6:arm64. 293s Preparing to unpack .../32-libsm6_2%3a1.2.3-1build2_arm64.deb ... 293s Unpacking libsm6:arm64 (2:1.2.3-1build2) ... 293s Selecting previously unselected package libtcl8.6:arm64. 293s Preparing to unpack .../33-libtcl8.6_8.6.13+dfsg-2_arm64.deb ... 293s Unpacking libtcl8.6:arm64 (8.6.13+dfsg-2) ... 293s Selecting previously unselected package libjbig0:arm64. 293s Preparing to unpack .../34-libjbig0_2.1-6.1ubuntu1_arm64.deb ... 293s Unpacking libjbig0:arm64 (2.1-6.1ubuntu1) ... 293s Selecting previously unselected package libwebp7:arm64. 293s Preparing to unpack .../35-libwebp7_1.3.2-0.4_arm64.deb ... 293s Unpacking libwebp7:arm64 (1.3.2-0.4) ... 294s Selecting previously unselected package libtiff6:arm64. 294s Preparing to unpack .../36-libtiff6_4.5.1+git230720-3ubuntu1_arm64.deb ... 294s Unpacking libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 294s Selecting previously unselected package libxft2:arm64. 294s Preparing to unpack .../37-libxft2_2.3.6-1_arm64.deb ... 294s Unpacking libxft2:arm64 (2.3.6-1) ... 294s Selecting previously unselected package libxss1:arm64. 294s Preparing to unpack .../38-libxss1_1%3a1.2.3-1build2_arm64.deb ... 294s Unpacking libxss1:arm64 (1:1.2.3-1build2) ... 294s Selecting previously unselected package libtk8.6:arm64. 294s Preparing to unpack .../39-libtk8.6_8.6.13-2_arm64.deb ... 294s Unpacking libtk8.6:arm64 (8.6.13-2) ... 294s Selecting previously unselected package libxt6t64:arm64. 294s Preparing to unpack .../40-libxt6t64_1%3a1.2.1-1.2_arm64.deb ... 294s Unpacking libxt6t64:arm64 (1:1.2.1-1.2) ... 294s Selecting previously unselected package zip. 294s Preparing to unpack .../41-zip_3.0-13_arm64.deb ... 294s Unpacking zip (3.0-13) ... 294s Selecting previously unselected package unzip. 294s Preparing to unpack .../42-unzip_6.0-28ubuntu3_arm64.deb ... 294s Unpacking unzip (6.0-28ubuntu3) ... 294s Selecting previously unselected package xdg-utils. 294s Preparing to unpack .../43-xdg-utils_1.1.3-4.1ubuntu3_all.deb ... 294s Unpacking xdg-utils (1.1.3-4.1ubuntu3) ... 295s Selecting previously unselected package r-base-core. 295s Preparing to unpack .../44-r-base-core_4.3.3-2build1_arm64.deb ... 295s Unpacking r-base-core (4.3.3-2build1) ... 296s Selecting previously unselected package r-cran-gmp. 296s Preparing to unpack .../45-r-cran-gmp_0.7-4-1_arm64.deb ... 296s Unpacking r-cran-gmp (0.7-4-1) ... 296s Selecting previously unselected package r-cran-mass. 296s Preparing to unpack .../46-r-cran-mass_7.3-60.0.1-1_arm64.deb ... 296s Unpacking r-cran-mass (7.3-60.0.1-1) ... 297s Selecting previously unselected package r-cran-polynom. 297s Preparing to unpack .../47-r-cran-polynom_1.4-1+dfsg-1_all.deb ... 297s Unpacking r-cran-polynom (1.4-1+dfsg-1) ... 297s Selecting previously unselected package r-cran-rmpfr. 297s Preparing to unpack .../48-r-cran-rmpfr_0.9-5-1_arm64.deb ... 297s Unpacking r-cran-rmpfr (0.9-5-1) ... 297s Selecting previously unselected package r-cran-sfsmisc. 297s Preparing to unpack .../49-r-cran-sfsmisc_1.1-16-1_all.deb ... 297s Unpacking r-cran-sfsmisc (1.1-16-1) ... 297s Selecting previously unselected package autopkgtest-satdep. 297s Preparing to unpack .../50-1-autopkgtest-satdep.deb ... 297s Unpacking autopkgtest-satdep (0) ... 297s Setting up libgraphite2-3:arm64 (1.3.14-2) ... 297s Setting up libpixman-1-0:arm64 (0.42.2-1) ... 297s Setting up libsharpyuv0:arm64 (1.3.2-0.4) ... 297s Setting up libpaper1:arm64 (1.1.29) ... 298s 298s Creating config file /etc/papersize with new version 298s Setting up liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 298s Setting up libxrender1:arm64 (1:0.9.10-1.1) ... 298s Setting up libdatrie1:arm64 (0.2.13-3) ... 298s Setting up libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 298s Setting up libxcb-render0:arm64 (1.15-1) ... 298s Setting up unzip (6.0-28ubuntu3) ... 298s Setting up x11-common (1:7.7+23ubuntu2) ... 300s Setting up libpsl5t64:arm64 (0.21.2-1.1) ... 300s Setting up libdeflate0:arm64 (1.19-1) ... 300s Setting up libxcb-shm0:arm64 (1.15-1) ... 300s Setting up libpaper-utils (1.1.29) ... 300s Setting up libgomp1:arm64 (14-20240303-1ubuntu1) ... 300s Setting up libjbig0:arm64 (2.1-6.1ubuntu1) ... 300s Setting up zip (3.0-13) ... 300s Setting up libblas3:arm64 (3.12.0-3) ... 300s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 300s Setting up fonts-dejavu-mono (2.37-8) ... 300s Setting up libpng16-16t64:arm64 (1.6.43-3) ... 300s Setting up libtcl8.6:arm64 (8.6.13+dfsg-2) ... 300s Setting up fonts-dejavu-core (2.37-8) ... 300s Setting up libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 300s Setting up libgfortran5:arm64 (14-20240303-1ubuntu1) ... 300s Setting up libwebp7:arm64 (1.3.2-0.4) ... 300s Setting up libreadline8t64:arm64 (8.2-3.1) ... 300s Setting up libharfbuzz0b:arm64 (8.3.0-2) ... 300s Setting up libthai-data (0.1.29-2) ... 300s Setting up libxss1:arm64 (1:1.2.3-1build2) ... 300s Setting up xdg-utils (1.1.3-4.1ubuntu3) ... 300s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 300s Setting up libjpeg8:arm64 (8c-2ubuntu11) ... 300s Setting up libice6:arm64 (2:1.0.10-1build2) ... 300s Setting up liblapack3:arm64 (3.12.0-3) ... 300s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 300s Setting up libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 300s Setting up fontconfig-config (2.15.0-1ubuntu1) ... 301s Setting up libthai0:arm64 (0.1.29-2) ... 301s Setting up libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 301s Setting up curl (8.5.0-2ubuntu7) ... 301s Setting up libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 301s Setting up libsm6:arm64 (2:1.2.3-1build2) ... 301s Setting up fontconfig (2.15.0-1ubuntu1) ... 303s Regenerating fonts cache... done. 303s Setting up libxft2:arm64 (2.3.6-1) ... 303s Setting up libtk8.6:arm64 (8.6.13-2) ... 303s Setting up libpango-1.0-0:arm64 (1.51.0+ds-4) ... 303s Setting up libcairo2:arm64 (1.18.0-1) ... 303s Setting up libxt6t64:arm64 (1:1.2.1-1.2) ... 303s Setting up libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 303s Setting up libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 303s Setting up r-base-core (4.3.3-2build1) ... 303s 303s Creating config file /etc/R/Renviron with new version 304s Setting up r-cran-polynom (1.4-1+dfsg-1) ... 304s Setting up r-cran-gmp (0.7-4-1) ... 304s Setting up r-cran-sfsmisc (1.1-16-1) ... 304s Setting up r-cran-mass (7.3-60.0.1-1) ... 304s Setting up r-cran-rmpfr (0.9-5-1) ... 304s Setting up autopkgtest-satdep (0) ... 304s Processing triggers for man-db (2.12.0-3) ... 305s Processing triggers for install-info (7.1-3) ... 305s Processing triggers for libc-bin (2.39-0ubuntu2) ... 318s (Reading database ... 78117 files and directories currently installed.) 318s Removing autopkgtest-satdep (0) ... 319s autopkgtest [19:57:22]: test run-unit-test: [----------------------- 319s BEGIN TEST arith-ex.R 319s 319s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 319s Copyright (C) 2024 The R Foundation for Statistical Computing 319s Platform: aarch64-unknown-linux-gnu (64-bit) 319s 319s R is free software and comes with ABSOLUTELY NO WARRANTY. 319s You are welcome to redistribute it under certain conditions. 319s Type 'license()' or 'licence()' for distribution details. 319s 319s R is a collaborative project with many contributors. 319s Type 'contributors()' for more information and 319s 'citation()' on how to cite R or R packages in publications. 319s 319s Type 'demo()' for some demos, 'help()' for on-line help, or 319s 'help.start()' for an HTML browser interface to help. 319s Type 'q()' to quit R. 319s 320s > require("Rmpfr") 320s Loading required package: Rmpfr 320s Loading required package: gmp 320s 320s Attaching package: ‘gmp’ 320s 320s The following objects are masked from ‘package:base’: 320s 320s %*%, apply, crossprod, matrix, tcrossprod 320s 321s C code of R package 'Rmpfr': GMP using 64 bits per limb 321s 321s 321s Attaching package: ‘Rmpfr’ 321s 321s > ## includes ("gmp")# want to check "mixed arithmetic" too __ TODO __ 321s The following object is masked from ‘package:gmp’: 321s 321s outer 321s 321s The following objects are masked from ‘package:stats’: 321s 321s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 321s 321s The following objects are masked from ‘package:base’: 321s 321s cbind, pmax, pmin, rbind 321s 321s > 321s > `%=N=%` <- function(x,y) (x == y) | (is.na(x) & is.na(y)) 321s > all.EQ <- function(x,y, tolerance = 2^-98, ...) # very small tol. for MPFR 321s + all.equal(x, y, tolerance=tolerance, ...) 321s > warningI <- function(...) warning(..., immediate. = TRUE) 321s > 321s > unlist(.Platform) 321s OS.type file.sep dynlib.ext GUI endian pkgType path.sep 321s "unix" "/" ".so" "X11" "little" "source" ":" 321s r_arch 321s "" 321s > 321s > ## Check that we got the "which.*" methods also from "bigq": 321s > bcl <- c("ANY", "bigq", "bigz", "mpfr") 321s > ##if(packageVersion("gmp") >= "0.5-8") { 321s > stopifnot(identical(bcl, 321s + sort(unlist(findMethods("which.max")@signatures))), 321s + identical(bcl, 321s + sort(unlist(findMethods("which.min")@signatures)))) 321s > ##} 321s > 321s > options(warn = 1)# warnings *immediately* 321s > (doExtras <- Rmpfr:::doExtras()) 321s [1] FALSE 321s > eps2 <- 2 * .Machine$double.eps 321s > eps8 <- 8 * .Machine$double.eps 321s > eps32 <- 32 * .Machine$double.eps 321s > 321s > ## must take the *larger* of the two precisions: 321s > stopifnot(substr(format(mpfr(1, 60)/mpfr(7, 160)), 1,51) == # format() may show more digits 321s + "0.1428571428571428571428571428571428571428571428571")# again has extra "2" at end 321s > 321s > (x <- mpfr(0:7, 100) / 7) 321s 8 'mpfr' numbers of precision 100 bits 322s [1] 0 0.14285714285714285714285714285711 322s [3] 0.28571428571428571428571428571423 0.42857142857142857142857142857154 322s [5] 0.57142857142857142857142857142846 0.71428571428571428571428571428538 322s [7] 0.85714285714285714285714285714308 1 322s > ix <- x^-1000 322s > iX <- asNumeric(ix) 322s > 322s > stopifnot( mpfrIs0(x - x), # badly failed on 64-bit 322s + identical(-x, 0-x),# testing "- x" 322s + all.equal(ix, (1/x)^1000, tol= 1e-25), 322s + is.numeric(iX), iX[1:4] == Inf, # failed previously as we used RNDD (downward rounding) 322s + all.equal(log(iX[5:8]), c(559.6157879, 336.4722366, 154.1506798, 0), 322s + tol = 1e-9)) 322s > 322s > ## checking hexadecimal input : 322s > stopifnot(mpfr("0xFFFFFFFFFFFFFFFFFFFF", base=16) + 1 == 2^80, 322s + ## sign(0) == 0: 322s + identical(sign(as(-1:1, "mpfr")), -1:1 + 0)) 322s > 322s > stopifnot(all.equal(as.numeric(x+ 1L), 322s + as.numeric(x)+1L, tol = eps2), 322s + as.integer( x [x < 1]) == 0,# was *wrong* {we round()ed; previously "down"!} 322s + as.integer((-x)[x < 1]) == 0,# (ditto) 322s + (3 * x)/3 <= x, 322s + all.equal(as.numeric(x * 2L), 322s + as.numeric(x + x), tol = 0)) 322s > 322s > u <- mpfr(0:17, 128)/17 322s > two <- mpfr(2,100) 322s > stopifnot(all.EQ(u ^ two, u ^ 2), 322s + identical(u ^ 2, u ^ 2L), 322s + all.EQ(two ^ u, 2 ^ u), 322s + identical(2 ^ u, 2L ^ u), 322s + floor (3*u) == floor (3/17*(0:17)), 322s + ceiling(u*5) == ceiling(5/17*(0:17)) 322s + ) 322s > 322s > i7 <- mpfr(0:7, 200)/ 7 322s > i17 <- mpfr(0:17, 300)/17 322s > stopifnot(all.equal(as.numeric(x+1), 322s + as.numeric(x)+1), 322s + all.equal(round(x,2), round(asNumeric(x), 2), tol=1e-15), 322s + all.equal(round(mpfr(1.152, 80), 2), 1.15), # was wrong {as.integer() bug} 322s + all.equal(0:7, 7 * round ( i7, 25), tol = 2e-25), 322s + all.equal(0:7, 7 * round ( i7, 50), tol = 2e-50), 322s + all.equal(0:17, 17 * signif(i17,100), tol = 2e-100), 322s + all.equal(0:17, 17 * signif(i17, 20), tol = 2e-20) 322s + ) 322s > 322s > ## When we compute with 100 bits, 322s > ## we should compare relative errors with 2^-100 : 322s > del <- abs((x+pi)-pi - x) / 2^-100 322s > stopifnot(del <= 4) ## <= 2 already 322s > (fd <- format(del, drop0 = TRUE)) 322s [1] "0" "1.75" "0.5" "1" "1" "1" "2" "0" 322s > stopifnot(all.equal(as.numeric(del), 322s + as.numeric(fd), tol = 1e-15)) 322s > if(print(Sys.info()[["machine"]]) == "x86_64") 322s + stopifnot(fd %in% as.character(c(0:2, c(2,7)/4))) 322s [1] "aarch64" 322s > 322s > 322s > checkPmin <- function(x, nx = as(x, "numeric")) { 322s + rx <- if(is(x,"mpfr")) round(x, 25) else x 322s + isZ <- is(x, "bigz") || is(nx, "bigz") 322s + M.X <- max(x, na.rm=TRUE) 322s + m.x <- min(x, na.rm=TRUE) 322s + stopifnot(all.equal(x, nx), 322s + pmin(x, x, M.X) %=N=% x, x %=N=% pmax(x, m.x, x), 322s + all.equal(x, pmin(x, nx, x, M.X)), 322s + all.equal(x, pmax(m.x, nx, x, rx, m.x)), 322s + if(isZ)TRUE else all.equal(pmin(x, 0.75), pmin(nx, 0.75)), 322s + if(isZ)TRUE else all.equal(pmax(x, 0.25), pmax(nx, 0.25))) 322s + } 322s > 322s > x <- mpfr(0:7, 100) / 7 322s > checkPmin(x) 323s > 323s > nx <- (0:7)/7 323s > (qx <- as.bigq(0:7, 7)) 323s Big Rational ('bigq') object of length 8: 323s [1] 0 1/7 2/7 3/7 4/7 5/7 6/7 1 323s > x[c(2,5)] <- NA 323s > nx[c(2,5)] <- NA 323s > qx[c(2,5)] <- NA 323s > 323s > Z <- as.bigz(1:7) 323s > mZ <- mpfr(Z, 64) 323s > stopifnot(Z == mZ, mZ == Z) 323s > 323s > checkPmin(x, nx) 323s > cat("checking pmin(. bigq ): ") 323s checking pmin(. bigq ): > ## FIXME checkPmin(x, qx); cat("[Ok]\n") 323s > ## 323s > print( base::pmin(Z, Z, max(Z)) )# via gmp:: rep.bigz(x, length.out = *) 323s Big Integer ('bigz') object of length 7: 323s [1] 1 2 3 4 5 6 7 323s > cat("checking pmin(. bigz ) 323s + [currently with lots of pmin() and pmax(...) warnings 'incompatible methods]:\n ") 323s checking pmin(. bigz ) 323s [currently with lots of pmin() and pmax(...) warnings 'incompatible methods]: 323s > checkPmin(Z); cat("[Ok]\n") # via gmp:: all.equal.bigz() 323s [Ok] 323s > 323s > stopifnot(all.equal( round(x, 10), round(nx, 10)), 323s + all.equal(signif(x, 10), signif(nx, 10))) 323s > 323s > ## L & x , x & L failed in Rmpfr 0.2* and 0.4-2 323s > stopifnot(identical(L <- x > 0.5, L & x), 323s + identical(L, x & L), 323s + identical(x > 0, x | L)) 323s > 323s > ## Summary() methods {including NA 323s > stopifnot(exprs = { 323s + is.na(min(x)) 323s + is.na(max(x)) 323s + is.na(range(x)) 323s + is.na(sum(x)) 323s + is.na(prod(x)) 323s + min(x, na.rm=TRUE) == 0 323s + max(x, na.rm=TRUE) == 1 323s + range(x, na.rm=TRUE) == 0:1 323s + all.equal(sum (x, na.rm=TRUE)*7, 2+3+5+6+7, tolerance = 1e-28) # 1.0975e-30 323s + prod(x, na.rm=TRUE) == 0 323s + all.equal(180, prod(x[-1], na.rm=TRUE)*7^4, tol = 1e-15) # 1.579e-16 323s + ## 323s + ## all(), any() had memory bug [PROTECT missing, but more, somehow] 323s + !all(x) 323s + is.na( all(x[-1]) ) 323s + any(x) 323s + is.na(any(x[c(2,5)])) 323s + ## do these *twice* {that triggered R-forge bug #6764 } 323s + ! all(x, na.rm=TRUE) 323s + any(x, na.rm=TRUE) 323s + ## 323s + ! all(x, na.rm=TRUE) 323s + any(x, na.rm=TRUE) 323s + }) 323s > 323s > ##-------------- Modulo and "integer division" ------------- 323s > 323s > ## R's ?Arithmetic : 323s > ## 323s > ## ‘%%’ indicates ‘x mod y’ and ‘%/%’ indicates integer division. It 323s > ## is guaranteed that ‘x == (x %% y) + y * ( x %/% y )’ (up to 323s > ## rounding error) unless ‘y == 0’ where the result of ‘%%’ is 323s > ## ‘NA_integer_’ or ‘NaN’ (depending on the ‘typeof’ of the 323s > ## arguments). 323s > ## 323s > ## and has 'details' about how non-integer 'y' works 323s > ## 323s > (N <- if(doExtras) 1000 else 200) 323s [1] 200 323s > (todays.seed <- eval(parse(text=Sys.Date())))# so this is reproducible 323s [1] 19798 323s > # (and constant within one day) 323s > set.seed(todays.seed) 323s > mm <- c(-4:4, sample(50, N-9, replace=TRUE)) 323s > for(n in seq_len(N)) { 323s + cat("."); if(n %% 50 == 0) cat(n,"\n") 323s + m <- mm[n] 323s + prec <- sample(52:200, 1)# "high precision" ==> can use small tol 323s + x <- sample(100, 50) - 20 323s + for(kind in c('int','real')) { 323s + if(kind == "real") { 323s + m <- jitter(m) 323s + x <- jitter(x) 323s + tol.1 <- eps32 * pmax(1, 1/abs(m)) 323s + EQ <- function(x,y, tol = tol.1) 323s + isTRUE(all.equal(x, as.numeric(y), tol=tol)) 323s + EQ2 <- function(x,y, tol = tol.1) { 323s + ## for the DIV - MOD identity, a small x leads to cancellation 323s + all((x %=N=% y) | abs(x - y) < tol*pmax(abs(x), 1)) || 323s + isTRUE(all.equal(x, as.numeric(y), tol=tol)) 323s + } 323s + } else { ## "integer" 323s + EQ2 <- EQ <- function(x,y, tol) all(x %=N=% y) 323s + } 323s + i.m <- mpfr(x, prec) %% mpfr(m, prec) 323s + if(!EQ2(x %% m, i.m)) { 323s + cat("\n -- m = ",m," (prec = ",prec,")\n") 323s + rE <- range(rel.E <- as.numeric(1 - (x %% m)/i.m)) 323s + print(cbind(x, 'R.%%' = x %% m, rel.E)) 323s + MSG <- if(max(abs(rE)) < 1e-10) warningI else stop 323s + MSG(sprintf("not all equal: range(rel.Err.) = [%g, %g]", rE[1],rE[2])) 323s + } 323s + ## 323s + if(m != 0) { 323s + ##---Check the x == (x %% m) + m * ( x %/% m ) assertion ------ 323s + ## 323s + if(EQ2(x, (x %% m) + m*( x %/% m ), tol = 1e-12)) { ## ok for R 323s + ## --> also ok for mpfr ? 323s + iDm <- mpfr(x, prec) %/% mpfr(m, prec) 323s + rhs <- i.m + m*iDm 323s + if(!EQ2(x, i.m + m*iDm)) { 323s + cat("\n -- m = ",m," (prec = ",prec,")\n") 323s + print(cbind(x,' MPFR[ x%%m + m(x %/% m) ]' = as.numeric(rhs), rel.E)) 323s + MSG <- if(max(abs(rE)) < 1e-10) warningI else stop 323s + MSG(sprintf("Identity(MOD - DIV) not all eq.: range(rel.Err.) = [%g, %g]", 323s + rE[1],rE[2])) 323s + } 323s + } else { 323s + cat("\n hmm.. the basic %% <-> %/% assertion 'fails' in *R* :\n") 323s + rhs <- (x %% m) + m * ( x %/% m ) 323s + rel.E <- (1 - rhs/x) 323s + print(cbind(x, 'x%%m + m(x %/% m)' = rhs, rel.E)) 323s + } 323s + } 323s + } 323s + } 326s ..................................................50 329s ..................................................100 332s ..................................................150 335s ..................................................200 335s > 335s > ## mpfr o now implemented, for '%%', too : 335s > r <- as.double(i <- -10:20) 335s > 335s > stopifnot( 335s + ## %% ------------------------------------- 335s + mpfr(i, prec=99) %% 7 == i %% 7 335s + , ## 335s + mpfr(i, prec=99) %% 7 == 335s + mpfr(i, prec=99) %% 7L 335s + , ## 335s + i %% mpfr(27, prec=99) == i %% 27 335s + , ## 335s + r %% mpfr(27, prec=99) == r %% 27 335s + , ## %/% ------------------------------------- 335s + mpfr(i, prec=99) %/% 7 == i %/% 7 335s + , ## 335s + mpfr(i, prec=99) %/% 7 == 335s + mpfr(i, prec=99) %/% 7L 335s + , ## 335s + mpfr(i, prec=99) %/% mpfr(27, prec=99) == i %/% 27 335s + , ## 335s + i %/% mpfr(27, prec=99) == i %/% 27 335s + , ## 335s + i %/% mpfr(27, prec=99) == 335s + r %/% mpfr(27, prec=99) 335s + , TRUE ## 335s + ) 335s > 335s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 335s Time elapsed: 14.944 0.29 15.385 0.002 0.012 335s > 335s > ## Was reproducible BUG in Rmpfr-addition (on Linux, MPFR 4.x.y) -- ## but the bug was Rmpfr, 335s > ## in ../src/Ops.c, detecting if *integer*, i.e., long can be used 335s > dn <- 1e20 335s > dOO <- 9223372036854775808; formatC(dOO) # "9.2...e18" 335s [1] "9.223e+18" 335s > (r <- dn / (dn + dOO)) # 0.915555 (double prec arithmetic) 335s [1] 0.915555 335s > ## but *so* strange when switching to Rmpfr : addition accidentally *subtract*!! 335s > n <- mpfr(dn, precBits = 99) 335s > (rM <- n / (n + dOO)) # wrongly gave " 1 'mpfr' .... 99 bits; 1.101605140483951..... 335s 1 'mpfr' number of precision 99 bits 335s [1] 0.9155549598510603318013907353116 335s > stopifnot(exprs = { 335s + all.equal(n + dOO, dn + dOO) 335s + all.equal(n / (n + dOO), r) 335s + }) 335s > 335s > ## log(., base) : 335s > (ten40 <- as.bigz(10)^40) 335s Big Integer ('bigz') : 335s [1] 10000000000000000000000000000000000000000 335s > ten40m <- mpfr(ten40) 335s > (lt40 <- log(ten40m, 10)) # gave Error in ... : base != exp(1) is not yet implemented 335s 1 'mpfr' number of precision 133 bits 335s [1] 40 335s > ## 'mpfr' .. 133 bits \\ [1] 40 335s > stopifnot(exprs = { 335s + grepl("^40[.]000+$", print(format(lt40, digits = 60))) 335s + identical(lt40, log10(ten40m)) 335s + identical(log(ten40m, 2), log2(ten40m)) 335s + inherits(Pi <- Const("pi", 140), "mpfr") 335s + all.equal(show(log(ten40m, Pi)), 335s + log(ten40m)/log(Pi), tol = 1e-40) 335s + }) 335s [1] "40.0000000000000000000000000000000000000000000000000000000000" 335s 1 'mpfr' number of precision 133 bits 335s [1] 80.45863470352243755058888189154834786778 335s > 335s > 335s > 335s > ###------Standard Statistics Functions -------------------------------------------------------- 335s > 335s > x <- c(del, 1000) 335s > stopifnot(identical(mean(x), mean(x, trim=0))) 335s > for(tr in (0:8)/16) 335s + stopifnot(all.equal(mean( x, trim = tr), 335s + mean(asNumeric(x), trim = tr), tol=1e-15)) 335s > 335s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 335s Time elapsed: 15.285 0.298 15.746 0.002 0.012 335s > 335s BEGIN TEST binomial-etc.R 335s 335s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 335s Copyright (C) 2024 The R Foundation for Statistical Computing 335s Platform: aarch64-unknown-linux-gnu (64-bit) 335s 335s R is free software and comes with ABSOLUTELY NO WARRANTY. 335s You are welcome to redistribute it under certain conditions. 335s Type 'license()' or 'licence()' for distribution details. 335s 335s R is a collaborative project with many contributors. 335s Type 'contributors()' for more information and 335s 'citation()' on how to cite R or R packages in publications. 335s 335s Type 'demo()' for some demos, 'help()' for on-line help, or 335s 'help.start()' for an HTML browser interface to help. 335s Type 'q()' to quit R. 335s 336s > stopifnot(require("Rmpfr")) 336s Loading required package: Rmpfr 336s Loading required package: gmp 336s 336s Attaching package: ‘gmp’ 336s 336s The following objects are masked from ‘package:base’: 336s 336s %*%, apply, crossprod, matrix, tcrossprod 336s 337s C code of R package 'Rmpfr': GMP using 64 bits per limb 337s 337s 337s Attaching package: ‘Rmpfr’ 337s 337s The following object is masked from ‘package:gmp’: 337s 337s outer 337s 337s The following objects are masked from ‘package:stats’: 337s 337s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 337s 337s The following objects are masked from ‘package:base’: 337s 337s cbind, pmax, pmin, rbind 337s 337s > 337s > n <- 10000 + 0:10 337s > stopifnot(exprs = { 337s + chooseMpfr(1:10, 0) == 1 # failed earlier 337s + chooseMpfr(20, 0:20) == choose(20, 0:20) 337s + chooseMpfr(19, 0:20) == choose(19, 0:20) 337s + chooseMpfr (30, 4:30) * (-1)^(4:30) == 337s + chooseMpfr.all(30, k0=4, alternating=TRUE) 337s + chooseMpfr(mpfr(1111, 2^8), 1111) == 1 337s + chooseMpfr(mpfr(n,256), n ) == 1 # was wrong in <= 2023 337s + chooseMpfr(mpfr(n,256), n-1) == n # " " 337s + }) 337s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 337s Time elapsed: 1.808 0.178 1.985 0.009 0.004 337s > 337s > ## sumBinomMpfr() ... had embarrasing bug for a while 337s > sBn <- Rmpfr:::sumBinomMpfr.v1 337s > stopifnot( 337s + all.equal( sBn(10, sqrt), 337s + sumBinomMpfr(10, sqrt), tol=1e-77) , 337s + all.equal( sBn(10, log, n0=1, alternating=FALSE), 337s + sumBinomMpfr(10, log, n0=1, alternating=FALSE), tol=1e-77) 337s + ) 337s > 337s > fBin <- function(k) x^k * (1-x)^(n-k) 337s > ## \sum_{k=0}^n (n \\ k) x^k (1-x)^{n-k} == sum(dbinom(0:n, n, prob=x)) == 1 : 337s > for(x in runif(50)) { 337s + n <- 1 + rpois(1, lambda=10) 337s + cat(".") 337s + stopifnot(all.equal(1, sumBinomMpfr(n, fBin, alternating=FALSE), 337s + tol = 1e-15)) 337s + };cat("\n") 339s .................................................. 339s > 339s > 339s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 339s Time elapsed: 3.409 0.255 3.687 0.009 0.004 339s > 339s > if(!interactive()) warnings() 339s > 339s BEGIN TEST bit-repr.R 339s 339s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 339s Copyright (C) 2024 The R Foundation for Statistical Computing 339s Platform: aarch64-unknown-linux-gnu (64-bit) 339s 339s R is free software and comes with ABSOLUTELY NO WARRANTY. 339s You are welcome to redistribute it under certain conditions. 339s Type 'license()' or 'licence()' for distribution details. 339s 339s R is a collaborative project with many contributors. 339s Type 'contributors()' for more information and 339s 'citation()' on how to cite R or R packages in publications. 339s 339s Type 'demo()' for some demos, 'help()' for on-line help, or 339s 'help.start()' for an HTML browser interface to help. 339s Type 'q()' to quit R. 339s 339s > stopifnot(suppressPackageStartupMessages(require("Rmpfr"))) 341s > ## (checking that the 32 / 64 bit GMP message does *not* show here) 341s > 341s > ### Try to look at the internal bit-representation of the limbs 341s > 341s > .limbs <- function(x) { 341s + stopifnot(is(x, "mpfr")) 341s + lapply(x@.Data, slot, "d") # not sapply() each can have different prec. & #{limbs} 341s + } 341s > .expo <- function(x) { 341s + stopifnot(is(x, "mpfr")) 341s + sapply(x@.Data, slot, "exp") 341s + } 341s > 341s > Bits <- function(x) { 341s + L <- .limbs(x)# list(length n) each of "k(prec)" 32-bit ints 341s + ## NB: mpfr(2, .) and all mpfr(2^k, .) also have a 'd' ending in NA integer! 341s + ## [reason: after all, R's NA_integer_ is INT_MAX+1 = 2^31 ] 341s + ## and the mpfr(c(NA,NaN, Inf, -Inf), .) have *no* NA in 'd' (but all in 'exp'! 341s + ## see .mpfr2list() example below 341s + 341s + hasNA <- any(iNA <- sapply(lapply(L, is.na), any)) # iNA: TRUE if there's an NA 341s + ## need to catch them later 341s + CC <- function(ch) paste(ch, collapse="") 341s + hex <- sapply(L, function(.) CC(sprintf("%x", rev(.)))) 341s + if(hasNA) hex[iNA] <- NA_character_ 341s + hex <- strsplit(hex, NULL) 341s + 341s + db <- t(expand.grid(0:1,0:1,0:1,0:1, KEEP.OUT.ATTRS=FALSE)[,4:1]) 341s + storage.mode(db) <- "character" # "0" or "1" 341s + dimnames(db) <- list(NULL, c(paste(0:9), letters[1:6])) 341s + ## db is 4 x 16 matrix with col.names "0" "1" .. "9" "a" "b" ... "f" 341s + 341s + ex <- .expo(x) 341s + if(is.matrix(ex)) { 341s + ## 64-bit case: exponent is long == two ints 341s + ## ----------- the 2nd int is in {0, -1, NA} (NA : for 0) 341s + ex2 <- ex[2,] 341s + ex <- ex[1,] 341s + } 341s + pat <- paste("(", sapply(pmax(0, ex), 341s + function(n) CC(rep.int(".", n))), 341s + ")0+$", sep="") 341s + ## pat <- ifelse(iNA, NA_character_, pat) 341s + 341s + getbits <- function(ch) CC(as.vector(db[,ch])) 341s + 341s + ## drop trailing zeros (from r[[i]], via pat[i]), keeping correct number: 341s + drop0.r <- function(i) sub(pat[i], "\\1", r[[i]]) 341s + 341s + if(hasNA) { 341s + r <- as.list(iNA) 341s + r[!iNA] <- lapply(hex[!iNA], getbits) 341s + r[!iNA] <- lapply(which(!iNA), drop0.r) 341s + ## FIXME this is wrong -- really have powers of 2, and want their (easy) bits : 341s + r[iNA ] <- NA_character_ 341s + unlist(r) 341s + } 341s + else { 341s + r <- lapply(hex, getbits) 341s + sapply(seq_along(r), drop0.r) 341s + } 341s + 341s + } 341s > 341s > x <- mpfr(r <- c(NA,NaN, Inf, -Inf), 64) 341s > stopifnot(identical(asNumeric(x), # mpfr has no NA, just NaN's: 341s + c(NaN,NaN, Inf, -Inf)), 341s + identical(as.character(fDec <- formatDec(x)), 341s + as.character(asNumeric(x))) # of different nchar() for now 341s + ) 341s > formatDec(x) # should print fine (no quotes) 341s [1] NaN NaN Inf -Inf 341s > 341s > 341s > if(FALSE) # platform dependent: 341s + ## The "non-finite" mpfr value internals (in 64-bit: 'exp' has NA): 341s + str(.mpfr2list(x)) 341s > 341s > 341s > ## bug in Bits(): all (exact) powers of 2 will show as NA: 341s > 341s > x <- mpfr(c(3:5,11:16, 59, 125:128, 1024:1025), 64) 341s > x 341s 16 'mpfr' numbers of precision 64 bits 342s [1] 3 4 5 11 12 13 14 15 16 59 125 126 127 128 1024 342s [16] 1025 342s > data.frame(x= as.numeric(x), I(Bits(x))) 342s x Bits.x. 342s 1 3 11 342s 2 4 342s 3 5 101 342s 4 11 1011 342s 5 12 1100 342s 6 13 1101 342s 7 14 1110 342s 8 15 1111 342s 9 16 342s 10 59 111011 342s 11 125 1111101 342s 12 126 1111110 342s 13 127 1111111 342s 14 128 342s 15 1024 342s 16 1025 10000000001 342s > 342s > x <- mpfr(c(-20:-1, 1:30),64)# w/o 0 - as its mantissa is "random" (in 64-bit) 342s > data.frame(x= as.numeric(x), I(Bits(x))) 342s x Bits.x. 342s 1 -20 10100 342s 2 -19 10011 342s 3 -18 10010 342s 4 -17 10001 342s 5 -16 342s 6 -15 1111 342s 7 -14 1110 342s 8 -13 1101 342s 9 -12 1100 342s 10 -11 1011 342s 11 -10 1010 342s 12 -9 1001 342s 13 -8 342s 14 -7 111 342s 15 -6 110 342s 16 -5 101 342s 17 -4 342s 18 -3 11 342s 19 -2 342s 20 -1 342s 21 1 342s 22 2 342s 23 3 11 342s 24 4 342s 25 5 101 342s 26 6 110 342s 27 7 111 342s 28 8 342s 29 9 1001 342s 30 10 1010 342s 31 11 1011 342s 32 12 1100 342s 33 13 1101 342s 34 14 1110 342s 35 15 1111 342s 36 16 342s 37 17 10001 342s 38 18 10010 342s 39 19 10011 342s 40 20 10100 342s 41 21 10101 342s 42 22 10110 342s 43 23 10111 342s 44 24 11000 342s 45 25 11001 342s 46 26 11010 342s 47 27 11011 342s 48 28 11100 342s 49 29 11101 342s 50 30 11110 342s > b0 <- Bits(mpfr(0, 64)) # not printing it here -- they are "random" for this special case! 342s > 342s > (half <- mpfr(0.5, 64)*(1 + mpfr(2, 64)^-16 * (-3:3))) 342s 7 'mpfr' numbers of precision 64 bits 342s [1] 0.49997711181640625 0.4999847412109375 0.49999237060546875 342s [4] 0.5 0.50000762939453125 0.5000152587890625 342s [7] 0.50002288818359375 342s > Bits(half) 342s [1] "1111111111111101" "111111111111111" "1111111111111111" 342s [4] NA "10000000000000001" "1000000000000001" 342s [7] "10000000000000011" 342s > 342s > ## pi, in varying number of bits : 342s > p. <- round(pi* 2^c(10,16,5*(4:8))) 342s > dput(p.)#-> the definition of p : 342s c(3217, 205887, 3294199, 105414357, 3373259426, 107944301636, 342s 3454217652358) 342s > p <- mpfr(c(3217, 205887, 3294199, 105414357, 342s + 3373259426, 107944301636, 3454217652358), 64) 342s > stopifnot(all.equal(p., p, tolerance = 1e-15)) 342s > ## all the mantissas are those of pi, rounded differently: 342s > Bits(c(p, Const("pi", 64))) 342s [1] "110010010001" 342s [2] "110010010000111111" 342s [3] "1100100100001111110111" 342s [4] "110010010000111111011010101" 342s [5] "11001001000011111101101010100010" 342s [6] "1100100100001111110110101010001000100" 342s [7] "110010010000111111011010101000100010000110" 342s [8] "1100100100001111110110101010001000100001011010001100001000110101" 342s > 342s > ###--- and possibly the _internal_ sprintfMpfr() --- see also ./tstHexBin.R 342s > ## TODO: use examples above for checking formatBin() <---> ============ 342s > spr <- Rmpfr:::sprintfMpfr 342s > ##= ~~~~~~~~~~~ 342s > (fB.04 <- formatBin(i16.04 <- mpfr(0:16, 4))) 342s [1] +0b0.000p+0 +0b1.000p+0 +0b1.000p+1 +0b1.100p+1 +0b1.000p+2 +0b1.010p+2 342s [7] +0b1.100p+2 +0b1.110p+2 +0b1.000p+3 +0b1.001p+3 +0b1.010p+3 +0b1.011p+3 342s [13] +0b1.100p+3 +0b1.101p+3 +0b1.110p+3 +0b1.111p+3 +0b1.000p+4 342s > (fB.60 <- formatBin(i16.60 <- mpfr(0:16, 60))) 342s [1] +0b0.00000000000000000000000000000000000000000000000000000000000p+0 342s [2] +0b1.00000000000000000000000000000000000000000000000000000000000p+0 342s [3] +0b1.00000000000000000000000000000000000000000000000000000000000p+1 342s [4] +0b1.10000000000000000000000000000000000000000000000000000000000p+1 342s [5] +0b1.00000000000000000000000000000000000000000000000000000000000p+2 342s [6] +0b1.01000000000000000000000000000000000000000000000000000000000p+2 342s [7] +0b1.10000000000000000000000000000000000000000000000000000000000p+2 342s [8] +0b1.11000000000000000000000000000000000000000000000000000000000p+2 342s [9] +0b1.00000000000000000000000000000000000000000000000000000000000p+3 342s [10] +0b1.00100000000000000000000000000000000000000000000000000000000p+3 342s [11] +0b1.01000000000000000000000000000000000000000000000000000000000p+3 342s [12] +0b1.01100000000000000000000000000000000000000000000000000000000p+3 342s [13] +0b1.10000000000000000000000000000000000000000000000000000000000p+3 342s [14] +0b1.10100000000000000000000000000000000000000000000000000000000p+3 342s [15] +0b1.11000000000000000000000000000000000000000000000000000000000p+3 342s [16] +0b1.11100000000000000000000000000000000000000000000000000000000p+3 342s [17] +0b1.00000000000000000000000000000000000000000000000000000000000p+4 342s > stopifnot( 342s + identical(sub("00p","p", spr(i16.60, bits = 10)), 342s + spr(i16.60, bits = 4)), 342s + identical(spr(i16.60, bits = 4), 342s + spr(i16.04, bits = 4)) 342s + , 342s + all.equal(i16.04, mpfr(fB.04), tolerance = 0) 342s + , 342s + all.equal(i16.60, mpfr(fB.60), tolerance = 0) 342s + ) 342s > 342s > ## not even this one 342s > two <- mpfr(2, precBits = 60) 342s > stopifnot(identical(two, mpfr(formatBin(two)))) 342s > 342s > 342s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 342s Time elapsed: 2.77 0.171 2.96 0.005 0.009 342s > 342s > if(!interactive()) warnings() 342s > 342s BEGIN TEST create.R 342s 342s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 342s Copyright (C) 2024 The R Foundation for Statistical Computing 342s Platform: aarch64-unknown-linux-gnu (64-bit) 342s 342s R is free software and comes with ABSOLUTELY NO WARRANTY. 342s You are welcome to redistribute it under certain conditions. 342s Type 'license()' or 'licence()' for distribution details. 342s 342s R is a collaborative project with many contributors. 342s Type 'contributors()' for more information and 342s 'citation()' on how to cite R or R packages in publications. 342s 342s Type 'demo()' for some demos, 'help()' for on-line help, or 342s 'help.start()' for an HTML browser interface to help. 342s Type 'q()' to quit R. 342s 342s > require("Rmpfr") 342s Loading required package: Rmpfr 342s Loading required package: gmp 343s 343s Attaching package: ‘gmp’ 343s 343s The following objects are masked from ‘package:base’: 343s 343s %*%, apply, crossprod, matrix, tcrossprod 343s 344s C code of R package 'Rmpfr': GMP using 64 bits per limb 344s 344s 344s Attaching package: ‘Rmpfr’ 344s 344s The following object is masked from ‘package:gmp’: 344s 344s outer 344s 344s > The following objects are masked from ‘package:stats’: 344s 344s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 344s 344s The following objects are masked from ‘package:base’: 344s 344s cbind, pmax, pmin, rbind 344s 344s 344s > ### Simple basic examples of creation of "mpfr" objects 344s > 344s > pi. <- Const("pi", prec = 260) 344s > pi. # nicely prints 80 digits [260 * log10(2) ~= 78.3 ~ 80] 344s 1 'mpfr' number of precision 260 bits 344s [1] 3.1415926535897932384626433832795028841971693993751058209749445923078164062862088 344s > 344s > ## These both failed (in mpfr2str(.)) with a seg.fault: 344s > c(mpfr(1, prec=3), pi.) 344s 2 'mpfr' numbers of precision 3 .. 260 bits 344s [1] 1 344s [2] 3.1415926535897932384626433832795028841971693993751058209749445923078164062862088 344s > m0 <- mpfr(numeric(), prec=64) 344s > ## print()ing / str() of 0-length mpfr 344s > stopifnot( 344s + grepl("0 'mpfr' numbers", capture.output( m0)), 344s + grepl("0 'mpfr' numbers", capture.output(str(m0)))) 345s > 345s > c(m0,m0) # failed in Rmpfr <= 0.6-0 345s 0 'mpfr' numbers 345s > stopifnot(identical(c(m0,m0), m0), 345s + identical(c(m0,pi.), pi.), 345s + identical(c(pi.,m0), pi.)) 345s > 345s > ## This is TRUE for 0 and -0 : 345s > Zero <- mpfr(c(0,1/-Inf), 20) 345s > stopifnot(mpfrIs0(Zero), is.whole(Zero)) 345s > stopifnot(mpfr.is.0(Zero))# deprecated but must work 345s > stopifnot(mpfr.is.integer(Zero))# deprecated but must work 345s > Zero # the "-0" should print correctly 345s 2 'mpfr' numbers of precision 20 bits 345s [1] 0 -0 345s > stopifnot(.getSign(Zero) == c(1,-1), 345s + sign(Zero) == 0, 345s + identical(format(Zero, digits=1), c("0.", "-0."))) 345s > 345s > ## testing 'recycling' 345s > b <- c(20,120,80, 60) 345s > (x <- mpfr(2^-(5:7), precBits = b)) 345s 4 'mpfr' numbers of precision 20 .. 120 bits 345s [1] 0.03125 0.015625 0.0078125 0.03125 345s > 345s > d.spec <- c(0,NA,NaN,Inf,-Inf) 345s > (spec <- mpfr(d.spec, 3)) 345s 5 'mpfr' numbers of precision 3 bits 345s [1] 0 NaN NaN Inf -Inf 345s > stopifnot(length(x) == 4, x[1] == x[4], getPrec(x) == b, 345s + identical(is.na(spec), is.na(d.spec)), 345s + identical(is.finite(spec), is.finite(d.spec)), 345s + identical(is.infinite(spec), is.infinite(d.spec)), 345s + ## mpfr(, .) : 345s + identical(x, mpfr(x, getPrec(x))), 345s + identical(spec, mpfr(spec, getPrec(spec))), 345s + asNumeric(1/mpfr(x, 16)) == 2^c(5:7,5), 345s + identical(format(spec), c("0.", "NaN", "NaN", "Inf", "-Inf")), 345s + mpfr(0.2, prec = 5:15, rnd.mode = "D") < 0.2) 345s Warning message: 345s 'mpfr.is.0' is deprecated. 345s Use 'mpfrIs0' instead. 345s See help("Deprecated") 345s Warning message: 345s 'mpfr.is.integer' is deprecated. 345s Use '.mpfr.is.whole' instead. 345s See help("Deprecated") 345s > 345s > B.set <- setNames(2:62, paste0("B=",2:62)) 345s > str(lapply(B.set, function(B) format(spec, base= B)))# "0.0" and "0.00" -- FIXME 345s List of 61 345s $ B=2 : chr [1:5] "0.0" "NaN" "NaN" "Inf" ... 345s $ B=3 : chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=4 : chr [1:5] "0.0" "NaN" "NaN" "Inf" ... 345s $ B=5 : chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=6 : chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=7 : chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=8 : chr [1:5] "0.0" "NaN" "NaN" "Inf" ... 345s $ B=9 : chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=10: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=11: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=12: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=13: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=14: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=15: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=16: chr [1:5] "0.0" "NaN" "NaN" "Inf" ... 345s $ B=17: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=18: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=19: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=20: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=21: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=22: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=23: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=24: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=25: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=26: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=27: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=28: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=29: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=30: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=31: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=32: chr [1:5] "0.0" "NaN" "NaN" "Inf" ... 345s $ B=33: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=34: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=35: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=36: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=37: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=38: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=39: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=40: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=41: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=42: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=43: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=44: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=45: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=46: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=47: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=48: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=49: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=50: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=51: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=52: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=53: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=54: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=55: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=56: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=57: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=58: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=59: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=60: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=61: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s $ B=62: chr [1:5] "0." "NaN" "NaN" "Inf" ... 345s > 345s > t2 <- mpfr(2^10,3) 345s > ## digits = 1 used to crash: MPFR assertion failed: m >= 2 || ((((b) & ((b) - 1)) == 0) == 0 && m >= 1) 345s > ## ---------- (+ seg.fault) for 'base = 2' (and others, not for default base = 10), 345s > ## digits = NULL should choose "enough" ... but does not 345s > str(r <- lapply(B.set, function(B) .mpfr2str(t2, digits=1, base = B))) 345s base = 2, digits = 1 is increased to digits = 2 345s base = 4, digits = 1 is increased to digits = 2 345s base = 8, digits = 1 is increased to digits = 2 345s base = 16, digits = 1 is increased to digits = 2 345s base = 32, digits = 1 is increased to digits = 2 345s List of 61 345s $ B=2 :List of 4 345s ..$ str : chr "10" 345s ..$ exp : int 11 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=3 :List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 7 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=4 :List of 4 345s ..$ str : chr "10" 345s ..$ exp : int 6 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=5 :List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 5 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=6 :List of 4 345s ..$ str : chr "5" 345s ..$ exp : int 4 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=7 :List of 4 345s ..$ str : chr "3" 345s ..$ exp : int 4 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=8 :List of 4 345s ..$ str : chr "20" 345s ..$ exp : int 4 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=9 :List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 4 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=10:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 4 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=11:List of 4 345s ..$ str : chr "8" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=12:List of 4 345s ..$ str : chr "7" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=13:List of 4 345s ..$ str : chr "6" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=14:List of 4 345s ..$ str : chr "5" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=15:List of 4 345s ..$ str : chr "5" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=16:List of 4 345s ..$ str : chr "40" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=17:List of 4 345s ..$ str : chr "4" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=18:List of 4 345s ..$ str : chr "3" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=19:List of 4 345s ..$ str : chr "3" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=20:List of 4 345s ..$ str : chr "3" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=21:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=22:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=23:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=24:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=25:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=26:List of 4 345s ..$ str : chr "2" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=27:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=28:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=29:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=30:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=31:List of 4 345s ..$ str : chr "1" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=32:List of 4 345s ..$ str : chr "10" 345s ..$ exp : int 3 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=33:List of 4 345s ..$ str : chr "v" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=34:List of 4 345s ..$ str : chr "u" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=35:List of 4 345s ..$ str : chr "t" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=36:List of 4 345s ..$ str : chr "s" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=37:List of 4 345s ..$ str : chr "S" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=38:List of 4 345s ..$ str : chr "R" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=39:List of 4 345s ..$ str : chr "Q" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=40:List of 4 345s ..$ str : chr "Q" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=41:List of 4 345s ..$ str : chr "P" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 345s $ B=42:List of 4 345s ..$ str : chr "O" 345s ..$ exp : int 2 345s ..$ finite: logi TRUE 345s ..$ is.0 : logi FALSE 346s $ B=43:List of 4 346s ..$ str : chr "O" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=44:List of 4 346s ..$ str : chr "N" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=45:List of 4 346s ..$ str : chr "N" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=46:List of 4 346s ..$ str : chr "M" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=47:List of 4 346s ..$ str : chr "M" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=48:List of 4 346s ..$ str : chr "L" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=49:List of 4 346s ..$ str : chr "L" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=50:List of 4 346s ..$ str : chr "K" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=51:List of 4 346s ..$ str : chr "K" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=52:List of 4 346s ..$ str : chr "K" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=53:List of 4 346s ..$ str : chr "J" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=54:List of 4 346s ..$ str : chr "J" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=55:List of 4 346s ..$ str : chr "J" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=56:List of 4 346s ..$ str : chr "I" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=57:List of 4 346s ..$ str : chr "I" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=58:List of 4 346s ..$ str : chr "I" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=59:List of 4 346s ..$ str : chr "H" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=60:List of 4 346s ..$ str : chr "H" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=61:List of 4 346s ..$ str : chr "H" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=62:List of 4 346s ..$ str : chr "H" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s > str(r. <- lapply(B.set, function(B) .mpfr2str(t2, base = B))) 346s List of 61 346s $ B=2 :List of 4 346s ..$ str : chr "100" 346s ..$ exp : int 11 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=3 :List of 4 346s ..$ str : chr "111" 346s ..$ exp : int 7 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=4 :List of 4 346s ..$ str : chr "10" 346s ..$ exp : int 6 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=5 :List of 4 346s ..$ str : chr "131" 346s ..$ exp : int 5 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=6 :List of 4 346s ..$ str : chr "443" 346s ..$ exp : int 4 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=7 :List of 4 346s ..$ str : chr "266" 346s ..$ exp : int 4 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=8 :List of 4 346s ..$ str : chr "20" 346s ..$ exp : int 4 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=9 :List of 4 346s ..$ str : chr "14" 346s ..$ exp : int 4 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=10:List of 4 346s ..$ str : chr "10" 346s ..$ exp : int 4 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=11:List of 4 346s ..$ str : chr "85" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=12:List of 4 346s ..$ str : chr "71" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=13:List of 4 346s ..$ str : chr "61" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=14:List of 4 346s ..$ str : chr "53" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=15:List of 4 346s ..$ str : chr "48" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=16:List of 4 346s ..$ str : chr "40" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=17:List of 4 346s ..$ str : chr "39" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=18:List of 4 346s ..$ str : chr "33" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=19:List of 4 346s ..$ str : chr "2g" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=20:List of 4 346s ..$ str : chr "2b" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=21:List of 4 346s ..$ str : chr "27" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=22:List of 4 346s ..$ str : chr "23" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=23:List of 4 346s ..$ str : chr "1m" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=24:List of 4 346s ..$ str : chr "1j" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=25:List of 4 346s ..$ str : chr "1g" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=26:List of 4 346s ..$ str : chr "1d" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=27:List of 4 346s ..$ str : chr "1b" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=28:List of 4 346s ..$ str : chr "19" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=29:List of 4 346s ..$ str : chr "16" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=30:List of 4 346s ..$ str : chr "14" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=31:List of 4 346s ..$ str : chr "12" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=32:List of 4 346s ..$ str : chr "10" 346s ..$ exp : int 3 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=33:List of 4 346s ..$ str : chr "v1" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=34:List of 4 346s ..$ str : chr "u4" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=35:List of 4 346s ..$ str : chr "t9" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=36:List of 4 346s ..$ str : chr "sg" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=37:List of 4 346s ..$ str : chr "RP" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=38:List of 4 346s ..$ str : chr "Qa" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=39:List of 4 346s ..$ str : chr "QA" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=40:List of 4 346s ..$ str : chr "PO" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=41:List of 4 346s ..$ str : chr "Oe" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=42:List of 4 346s ..$ str : chr "OG" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 346s $ B=43:List of 4 346s ..$ str : chr "NZ" 346s ..$ exp : int 2 346s ..$ finite: logi TRUE 346s ..$ is.0 : logi FALSE 347s $ B=44:List of 4 347s ..$ str : chr "NC" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=45:List of 4 347s ..$ str : chr "MY" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=46:List of 4 347s ..$ str : chr "MC" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=47:List of 4 347s ..$ str : chr "Lb" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=48:List of 4 347s ..$ str : chr "LG" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=49:List of 4 347s ..$ str : chr "Ki" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=50:List of 4 347s ..$ str : chr "KO" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=51:List of 4 347s ..$ str : chr "K4" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=52:List of 4 347s ..$ str : chr "Ja" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=53:List of 4 347s ..$ str : chr "JH" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=54:List of 4 347s ..$ str : chr "Iq" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=55:List of 4 347s ..$ str : chr "IY" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=56:List of 4 347s ..$ str : chr "IG" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=57:List of 4 347s ..$ str : chr "Ht" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=58:List of 4 347s ..$ str : chr "Hc" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=59:List of 4 347s ..$ str : chr "HL" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=60:List of 4 347s ..$ str : chr "H4" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=61:List of 4 347s ..$ str : chr "Gm" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s $ B=62:List of 4 347s ..$ str : chr "GW" 347s ..$ exp : int 2 347s ..$ finite: logi TRUE 347s ..$ is.0 : logi FALSE 347s > ## FIXME: still too short 347s > 347s > x <- c(-12, 1:3 * pi) 347s > sss <- mpfr(x, 100) 347s > validObject(sss) 347s [1] TRUE 347s > sss 347s 4 'mpfr' numbers of precision 100 bits 347s [1] -12 3.1415926535897931159979634685442 347s [3] 6.2831853071795862319959269370884 9.4247779607693793479938904056326 347s > sss2 <- sss * sss 347s > stopifnot(identical(sss2, sss * x), 347s + identical(sss2, x * sss), 347s + sss ^ 2 == sss2) 347s > ## and go back {not sure if identical() is guaranteed here, but it seems...}: 347s > stopifnot(identical(x, as(sss, "numeric"))) 347s > 347s > (cs <- as(sss, "character")) 347s [1] "-12" "3.1415926535897931159979634685442" 347s [3] "6.2831853071795862319959269370884" "9.4247779607693793479938904056326" 347s > 347s > y <- c(0, 100,-10, 1.25, -2.5, 347s + x * c(1,100,1e5,1e20), 347s + x / 100^(1:4)) 347s > (Y <- mpfr(y, 100)) 347s 13 'mpfr' numbers of precision 100 bits 347s [1] 0 100 347s [3] -10 1.25 347s [5] -2.5 -12 347s [7] 314.15926535897932581065106205642 628318.53071795857977122068405151 347s [9] 942477796076937936896 -0.11999999999999999555910790149937 347s [11] 0.00031415926535897930899771113288921 6.2831853071795866542926731201923e-6 347s [13] 9.4247779607693799284994504768947e-8 347s > cbind(y, as.data.frame(.mpfr2str(Y, 20))[,c("exp","str")]) 347s y exp str 347s 1 0.000000e+00 0 00000000000000000000 347s 2 1.000000e+02 3 10000000000000000000 347s 3 -1.000000e+01 2 -10000000000000000000 347s 4 1.250000e+00 1 12500000000000000000 347s 5 -2.500000e+00 1 -25000000000000000000 347s 6 -1.200000e+01 2 -12000000000000000000 347s 7 3.141593e+02 3 31415926535897932581 347s 8 6.283185e+05 6 62831853071795857977 347s 9 9.424778e+20 21 94247779607693793690 347s 10 -1.200000e-01 0 -11999999999999999556 347s 11 3.141593e-04 -3 31415926535897930900 347s 12 6.283185e-06 -5 62831853071795866543 347s 13 9.424778e-08 -7 94247779607693799285 347s > 347s > s <- mpfr(43208, 14)# low precision 347s > eps8 <- 8 * .Machine$double.eps 347s > ## checking mpfr -> character -> mpfr: 347s > i1..5f <- c("4.e+4", "4.3e+4", "4.32e+4", "43210.", "43208.") 347s > stopifnot(exprs = { 347s + all.equal(y, as.numeric(format(Y, digits=20)), tol= eps8) 347s + all.equal(Y, as(format(Y), "mpfr"), tol= eps8) 347s + identical(sapply(1:5, formatMpfr, x=s), i1..5f) 347s + identical(sapply(1:5, formatMpfr, x=s, exponent.plus=FALSE), 347s + sub("e[+]", "e", i1..5f)) 347s + }) 347s > 347s > 347s > ## More character -> mpfr checking : 347s > ## from echo 'scale=200; 4*a(1)' | bc -l : 347s > cpi <- "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196" 347s > pi. <- Const("pi", prec=667) 347s > stopifnot(cpi == format(mpfr(cpi, prec=667), digits=201), 347s + all.equal(pi., as(cpi, "mpfr")), 347s + all.equal(pi., as(cpi, "mpfr"), tol = 1e-200)) 347s > 347s > set.seed(17) 347s > ## Check double -> mpfr -> character -> double : 347s > ## Unfortunately, format(, .) -> .mpfr2str() triggers a memory bug 347s > ## that I think is an MPFR library "mis-feature" 347s > ## 2011-02-09 -- bug *no longer* triggered ! 347s > rSign <- function(n) sample(c(-1,1), size = n, replace=TRUE) 347s > N <- function(x) as.numeric(x) 347s > ntry <- if(Sys.getenv("USER") == "maechler") 150 else 5 347s > for(n in 1:ntry) { 347s + cat(if(n %% 10)"." else n) 347s + x. <- rSign(100) * rlnorm(100) 347s + prec <- rpois(1, 110); digs <- floor(0.95*(prec / log2(10))) 347s + X. <- mpfr(x., precBits = prec) 347s + stopifnot(all.equal(x., N(format(X., digits=digs)), tol = eps8) 347s + , all.equal(x., N(log(exp(X.))), tol = 32*eps8) 347s + ) 347s + }; cat("\n") 347s ..... 347s > 347s > stopifnot(identical(mpfr.is.0(X.),# deprecated but must work 347s + mpfrIs0 (X.))) 347s Warning message: 347s 'mpfr.is.0' is deprecated. 347s Use 'mpfrIs0' instead. 347s See help("Deprecated") 347s > X. <- X.[!mpfrIs0(X.)] 347s > stopifnot(all( X./X. == 1)) # TRUE 347s > 347s > u <- mpfr(as.raw(0:100)) 347s > z <- mpfr(1:12, 200) 347s > z[z > 100] <- 100 # nothing done (but used to fail) 347s > z[] <- 0 347s > stopifnot(0:100 == u, is(z,"mpfr"), mpfrIs0(z), 347s + all.equal(u, mpfr(0:100, prec = 8), tol = 0), 347s + 0:1 == mpfr(1:2 %% 2 == 0)) 347s > z[3] <- Const("pi",200) 347s > ## z has length 12 -- now extend it: 347s > z[15:17] <- 1/mpfr(10:12, 100) 347s > stopifnot(all.equal(z[1:4], c(0,0,pi,0), tol = 1e-15), validObject(z), 347s + all.equal(z[13:17], c(NaN,NaN, 1/(10:12)), tol = 1e-15)) 347s > 347s > ## These seg.faulted (each via different R -> C interface) in the past: 347s > assertError <- tools::assertError 347s > assertError( pp <- Const("pi", prec = 1e11) ) 347s > assertError( mpfr("123.456", precBits= 1e11) ) 347s > assertError( mpfr(as.bigz(3), precBits= 1e11) ) 347s > 347s > stopifnot(identical(mpfr(NULL), mpfr(logical()))) 347s > 347s > ## mpfr --> bigInteger "bigz" 347s > Pi <- Const("pi", prec = 300) 347s > twoP <- mpfr(2, 100)^(-2:80) 347s > m <- Pi * twoP 347s > L <- mpfr(2, 256)^1000 347s > stopifnot(exprs = { 347s + .mpfr2bigz(Pi) == 3 347s + .mpfr2bigz(twoP) == as.bigz(c(0,0, 2^(0:80))) 347s + .mpfr2bigz(m) == floor(m) 347s + .mpfr2bigz(m / L) == 0 347s + .mpfr2bigz(m * L) == floor(m * L) ## used to fail 347s + .mpfr2bigz(m * L^8) == floor(m * L^8) ## (ditto) 347s + }) 347s > 347s BEGIN TEST functionals.R 348s 348s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 348s Copyright (C) 2024 The R Foundation for Statistical Computing 348s Platform: aarch64-unknown-linux-gnu (64-bit) 348s 348s R is free software and comes with ABSOLUTELY NO WARRANTY. 348s You are welcome to redistribute it under certain conditions. 348s Type 'license()' or 'licence()' for distribution details. 348s 348s R is a collaborative project with many contributors. 348s Type 'contributors()' for more information and 348s 'citation()' on how to cite R or R packages in publications. 348s 348s Type 'demo()' for some demos, 'help()' for on-line help, or 348s 'help.start()' for an HTML browser interface to help. 348s Type 'q()' to quit R. 348s 348s > #### Tests for "Functionals": Root finding, Optimization, Integration, etc 348s > 348s > stopifnot(require("Rmpfr")) 348s Loading required package: Rmpfr 348s Loading required package: gmp 348s 348s Attaching package: ‘gmp’ 348s 348s The following objects are masked from ‘package:base’: 348s 348s %*%, apply, crossprod, matrix, tcrossprod 348s 350s C code of R package 'Rmpfr': GMP using 64 bits per limb 350s 350s > 350s > (f.chk <- system.file("check-tools.R", package="Rmpfr", mustWork=TRUE)) 350s [1] "/usr/lib/R/site-library/Rmpfr/check-tools.R" 350s > source(f.chk, keep.source=FALSE) 350s > ## -> assert.EQ.() showSys.time() 350s > 350s > options(warn = 1)# warnings *immediately* 350s > (doExtras <- Rmpfr:::doExtras()) 350s [1] FALSE 350s > 350s > ### 1. Integration ----------------------------------------------- 350s > 350s > ## Example from Lauren K, June 2014 (~/R/MM/Pkg-ex/Rmpfr/integrateR-LaurenK.R): 350s > beta0 <- 0.05 350s > beta1 <- 0.05 350s > (tau <- sqrt(0.01*0.05*0.95/0.99))# = 0.0219.. 350s [1] 0.02190429 350s > ## 350s > Z00 <- 9 350s > Z01 <- 1 350s > Z10 <- 18 350s > Z11 <- 2 350s > N <- Z00+Z01+Z10+Z11 350s > 350s > integrand <- function(u) { 350s + ee.u <- exp(-u^2/2)/(sqrt(2*pi)*tau) 350s + b0u <- beta0 + tau*u 350s + b1u <- beta1 + b0u # == beta0+beta1+ tau*u 350s + 350s + ee.u ^ (Z00+Z01 + Z10+Z11) * 350s + (1-b0u)^Z00 * b0u ^ Z01 * 350s + (1-b1u)^Z10 * b1u ^ Z11 350s + } 350s > 350s > ## MM: note how the integrand() function looks: 350s > op <- par(mfcol=c(3,1), mgp=c(1.5, .6, 0), mar=.1+c(3,3,0,0)) 350s > ax1 <- function(a,b) axis(1, at=c(a,b), col=2, col.axis=2, tcl= +3/4, mgp=c(3,0,0)) 350s > curve(integrand, -5,5, n=1000) 350s 350s Attaching package: ‘Rmpfr’ 350s 350s The following object is masked from ‘package:gmp’: 350s 350s outer 350s 350s The following objects are masked from ‘package:stats’: 350s 350s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 350s 350s The following objects are masked from ‘package:base’: 350s 350s cbind, pmax, pmin, rbind 350s 350s > cc <- adjustcolor(2, 1/4) ## look closer: 350s > ep <- .01; rect(-3, -ep, 0, +ep, col=cc, border=cc); ax1(-3,0) 350s > curve(integrand, -3,0, n=1000, ylim = c(-ep,ep)) 350s > ## but now look really closely : 350s > ep <- .001; rect(-3, -ep, -2, +ep, col=cc); ax1(-3,-2) 350s > curve(integrand, -3,-2, n=1000, ylim = c(-ep, ep)) 350s > par(op) 350s > 350s > (I1 <- integrate(integrand,lower = -100, upper = 100)) 350s 1.396355e+33 with absolute error < 1.6e+29 350s > (I1. <- integrate(integrand,lower = -100, upper = 100, rel.tol = 1e-14)) 350s 1.396355e+33 with absolute error < 1e+19 350s > 350s > showSys.time(I2 <- integrateR(integrand, lower = -100, upper = 100)) 350s Warning in integrateR(integrand, lower = -100, upper = 100) : 350s no convergence up to order 13; last relative change = 1.285403e-05 350s Consider setting 'ord = ' (e.g. = 14). 350s Time user system elapsed 350s Time 0.011 0.000 0.011 350s > I2 ## ... Warning ‘no convergence up to order 13’ 350s Non-convergence message ‘no convergence up to order 13; last relative change = 1.285403e-05 350s Consider setting 'ord = ' (e.g. = 14).’ 350s 1.3964e+33 with absolute error < 1.7949e+28 350s > ## Solaris Sparc (2014-06, CRAN checks); thanks Brian: print(I2[1:2], digits=15) 350s > I2.Solaris <- list(value = 1.3963550396006e+33, abs.error = 1.79487857486724e+28) 350s > I.db <- list(value = 1.39635503960059e+33, abs.error = 1.79487857478077e+28) 350s > stopifnot( 350s + all.equal(I2[1:2], I.db, tol = 1e-10)# Solaris SPARC needs at least 4.8e-11 350s + ) 350s > 350s > ## Now using high accuracy 350s > showSys.time(I3 <- integrateR(integrand, lower = mpfr(-100, precBits=256), upper = 100)) 356s Warning in integrateR(integrand, lower = mpfr(-100, precBits = 256), upper = 100) :Time user system elapsed 356s Time 5.727 0.112 5.847 356s > ## much slower but not better (and not worse) 356s > 356s no convergence up to order 13; last relative change = 1.285403e-5 356s Consider setting 'ord = ' (e.g. = 14). 356s I3 356s Non-convergence message ‘no convergence up to order 13; last relative change = 1.285403e-5 356s Consider setting 'ord = ' (e.g. = 14).’ 356s 1.3964e+33 with absolute error < 1.7949e+28 356s > assert.EQ.(sapply(I3[1:2], asNumeric), unlist(I.db)) 356s Mean relative difference: 3.569039e-15 356s > ## Really get better when decreasing the integration interval 356s > ## from [-100, 100] to [-10, 10] ... which should give "the same" 356s > showSys.time(I4 <- integrateR(integrand, lower = mpfr(-10, precBits=256), upper = 10, 356s + ord = 15, verbose=TRUE)) 356s ord = 15; ==> evaluating integrand at 2^(ord+1)-2 = 65534 locations 357s n= 1, 2^n= 2 | I = 4.085188566e+34, abs.err = 4.085189e+34 357s n= 2, 2^n= 4 | I = 8.170377132e+33, abs.err = 3.268151e+34 357s n= 3, 2^n= 8 | I = 4.712016441e+33, abs.err = 3.458361e+33 357s n= 4, 2^n= 16 | I = 2.335919214e+33, abs.err = 2.376097e+33 357s n= 5, 2^n= 32 | I = 1.181962279e+33, abs.err = 1.153957e+33 357s n= 6, 2^n= 64 | I = 1.220705480e+33, abs.err = 3.874320e+31 357s n= 7, 2^n= 128 | I = 1.410495454e+33, abs.err = 1.897900e+32 357s n= 8, 2^n= 256 | I = 1.396201858e+33, abs.err = 1.429360e+31 358s n= 9, 2^n= 512 | I = 1.396354229e+33, abs.err = 1.523703e+29 358s n=10, 2^n= 1024 | I = 1.396354970e+33, abs.err = 7.409143e+26 358s n=11, 2^n= 2048 | I = 1.396354964e+33, abs.err = 5.998797e+24 360s n=12, 2^n= 4096 | I = 1.396354964e+33, abs.err = 6.619581e+21 362s n=13, 2^n= 8192 | I = 1.396354964e+33, abs.err = 1.662622e+18 367s n=14, 2^n= 16384 | I = 1.396354964e+33, abs.err = 1.021861e+14 377s n=15, 2^n= 32768 | I = 1.396354964e+33, abs.err = 1.561794e+9 377s Time user system elapsed 377s Time 20.530 0.348 20.908 377s > ## ~ 6.6 sec [lynne 2013] 377s > I4 377s 1.3964e+33 with absolute error < 1.5618e+9 377s > 377s > ## on the left side, there is "nothing" (and negative, as we know!): 377s > showSys.time(I0.1 <- integrateR(integrand, lower = mpfr(-1000, precBits=256), 377s + upper = -10, ord= 11, verbose=TRUE)) 378s ord = 11; ==> evaluating integrand at 2^(ord+1)-2 = 4094 locations 378s n= 1, 2^n= 2 | I = -2.859606864e-613, abs.err = 5.719214e-613 378s n= 2, 2^n= 4 | I = -1.334483203e-613, abs.err = 1.525124e-613 378s n= 3, 2^n= 8 | I = -6.566504650e-614, abs.err = 6.778327e-614 378s n= 4, 2^n= 16 | I = -3.270376825e-614, abs.err = 3.296128e-614 378s n= 5, 2^n= 32 | I = -1.633589988e-614, abs.err = 1.636787e-614 378s n= 6, 2^n= 64 | I = -8.165955325e-615, abs.err = 8.169945e-615 378s n= 7, 2^n= 128 | I = -4.082728442e-615, abs.err = 4.083227e-615 379s n= 8, 2^n= 256 | I = -2.041333072e-615, abs.err = 2.041395e-615 379s n= 9, 2^n= 512 | I = -1.020662642e-615, abs.err = 1.020670e-615 379s n=10, 2^n= 1024 | I = -5.103308345e-616, abs.err = 5.103318e-616 380s n=11, 2^n= 2048 | I = -2.551653564e-616, abs.err = 2.551655e-616 380s Time user system elapsed 380s Time 1.897 0.000 1.905 380s > showSys.time(I0.2 <- integrateR(integrand, lower = mpfr(10, precBits=256), 380s + upper = 1000, ord= 11, verbose=TRUE)) 380s ord = 11; ==> evaluating integrand at 2^(ord+1)-2 = 4094 locations 380s n= 1, 2^n= 2 | I = 6.250128073e-618, abs.err = 1.250026e-617 380s n= 2, 2^n= 4 | I = 2.916726434e-618, abs.err = 3.333402e-618 380s n= 3, 2^n= 8 | I = 1.435214595e-618, abs.err = 1.481512e-618 380s n= 4, 2^n= 16 | I = 7.147931510e-619, abs.err = 7.204214e-619 380s n= 5, 2^n= 32 | I = 3.570472142e-619, abs.err = 3.577459e-619 380s n= 6, 2^n= 64 | I = 1.784800116e-619, abs.err = 1.785672e-619 380s n= 7, 2^n= 128 | I = 8.923455870e-620, abs.err = 8.924545e-620 381s n= 8, 2^n= 256 | I = 4.461659853e-620, abs.err = 4.461796e-620 381s n= 9, 2^n= 512 | I = 2.230821417e-620, abs.err = 2.230838e-620 381s n=10, 2^n= 1024 | I = 1.115409645e-620, abs.err = 1.115412e-620 382s n=11, 2^n= 2048 | I = 5.577046893e-621, abs.err = 5.577050e-621 382s Time user system elapsed 382s Time 1.879 0.000 1.886 382s > I0.1 382s -2.5517e-616 with absolute error < 2.5517e-616 382s > I0.2 382s 5.5770e-621 with absolute error < 5.5770e-621 382s > I4 382s 1.3964e+33 with absolute error < 1.5618e+9 382s > 382s > ## Integral [-1000, +1000 ] = Int[-1000, -10] + Int[-10, +10] + Int[+10, +1000]: 382s > 382s > I4 $value + I0.1 $value + I0.2 $value 382s 1 'mpfr' number of precision 256 bits 382s [1] 1396354963674017387015147490193159.224442394550727848837192551722726424516192161 382s > ## but this is really the same as just the middle: 382s > stopifnot(I4 $value + I0.1 $value + I0.2 $value 382s + == I4 $value) 382s > 382s > value <- I4$value; delta <- I4$abs.err 382s > nDig <- -asNumeric(log10(delta/value)) 382s > cat("Correct number of digits: ", round(nDig, 2),"\n", 382s + "Integral I = ", format(I4$value, digits = ceiling(nDig)), 382s + " (last change change= ", format(delta, digits = 7),")\n", 382s + "integrate(.) = ", format(I1 $value, digits = 22),"\n", 382s + "integrate(., rtol=1e-15)= ", format(I1.$value, digits = 22),"\n", sep="") 382s Correct number of digits: 23.95 382s Integral I = 1.39635496367401738701515e+33 (last change change= 1.561794e+9) 382s integrate(.) = 1.396354963673671427757e+33 382s integrate(., rtol=1e-15)= 1.396354963674017015978e+33 382s > 382s > 382s > 382s > 382s > ### 2. Root Finding ---------------------------------------------- 382s > 382s > ### 3. Optimization / Minimization, .. --------------------------- 382s > 382s > 382s > 382s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 382s Time elapsed: 33.522 0.655 34.264 0.009 0.005 382s > 382s BEGIN TEST lowlevel.R 382s 382s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 382s Copyright (C) 2024 The R Foundation for Statistical Computing 382s Platform: aarch64-unknown-linux-gnu (64-bit) 382s 382s R is free software and comes with ABSOLUTELY NO WARRANTY. 382s You are welcome to redistribute it under certain conditions. 382s Type 'license()' or 'licence()' for distribution details. 382s 382s R is a collaborative project with many contributors. 382s Type 'contributors()' for more information and 382s 'citation()' on how to cite R or R packages in publications. 382s 382s Type 'demo()' for some demos, 'help()' for on-line help, or 382s 'help.start()' for an HTML browser interface to help. 382s Type 'q()' to quit R. 382s 382s > #### Low level stuff - debugging etc 382s > #### ========= ========= 382s > 382s > require("Rmpfr") 382s Loading required package: Rmpfr 382s Loading required package: gmp 383s 383s Attaching package: ‘gmp’ 383s 383s The following objects are masked from ‘package:base’: 383s 383s %*%, apply, crossprod, matrix, tcrossprod 383s 384s C code of R package 'Rmpfr': GMP using 64 bits per limb 384s 384s 384s Attaching package: ‘Rmpfr’ 384s 384s > The following object is masked from ‘package:gmp’: 384s 384s outer 384s 384s The following objects are masked from ‘package:stats’: 384s 384s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 384s 384s The following objects are masked from ‘package:base’: 384s 384s cbind, pmax, pmin, rbind 384s 384s options(warn = 2)# warning -> error 384s > 384s > identical3 <- function(x,y,z) identical(x,y) && identical (y,z) 384s > identical4 <- function(a,b,c,d) identical(a,b) && identical3(b,c,d) 384s > 384s > ## sane state [when re-source()ing this file]: 384s > .mpfr_erange_set("Emin", -(2^30-1)) 384s > .mpfr_erange_set("Emax", +(2^30-1)) 384s > 384s > ###----- _1_ mpfr1 , import, xport etc ----------------------------------------- 384s > i8 <- mpfr(-2:5, 32) 384s > x4 <- mpfr(c(NA, NaN, -Inf, Inf), 32); x4 # NA -> NaN as well 384s 4 'mpfr' numbers of precision 32 bits 384s [1] NaN NaN -Inf Inf 384s > stopifnot(identical3(is.na(x4), is.nan(x4), c(T,T,F,F))) 384s > 384s > o1 <- as(x4[1], "mpfr1") 384s > stopifnot(is(o1, "mpfr1")) # failed previously 384s > validObject(o1) # ditto (failed on 64-bit only) 384s [1] TRUE 384s > 384s > stopifnot( 384s + getPrec("0xabc", base=16, doNumeric=FALSE) == 3*4, 384s + getPrec( "abc", base=16, doNumeric=FALSE) == 3*4, 384s + getPrec("0b1001", base=2, doNumeric=FALSE) == 4, 384s + getPrec( "1001", base=2, doNumeric=FALSE) == 4, 384s + identical3(mpfr("0b101", base= 2), 384s + mpfr( "101", base= 2), mpfr(5, precBits = 3)) 384s + , 384s + identical3(mpfr("0xabc", base=16), 384s + mpfr( "abc", base=16), mpfr(2748, base=16, precBits = 12)) 384s + ) 384s > 384s > ## save initial (Emin, Emax) eranges : 384s > erangesOrig <- .mpfr_erange() 384s > 384s > ###----- _2_ Debugging, changing MPFR defaults, .. ----------------------------- 384s > ## NB: Currently mostly *not* documented, not even .mpfr_erange() 384s > 384s > stopifnot(Rmpfr:::.mpfr_debug() == 0 # the default level 384s + ## Activate debugging level 1: 384s + , Rmpfr:::.mpfr_debug(1) == 0 # the previous level 384s + ## and check it : 384s + , Rmpfr:::.mpfr_debug() == 1 # the current level 384s + ) 384s > 384s > r <- mpfr(7, 100)^-1000 384s > r 384s 1 'mpfr' number of precision 100 bits 385s .mpfr_debug[1]: mpfr2str(*, digits=0, maybeF=False, base=10): 385s .mpfr_debug[1]: [i=0]: prec=100, exp2=-2807 -> (nchar_i,dig.n)=(33,33) .. max_nchar=33 385s [1] 7.9792116643192417444751621015671e-846 385s > ## (same as without debugging) 385s R_mpfr_get_erange(1): -1073741823 385s R_mpfr_get_erange(2): 1073741823 385s R_mpfr_get_erange(3): -4611686018427387903 385s R_mpfr_get_erange(4): 4611686018427387903 385s R_mpfr_get_erange(5): -4611686018427387903 385s R_mpfr_get_erange(6): 4611686018427387903 385s R_mpfr_get_erange(1): -1073741823 385s R_mpfr_get_erange(2): 1073741823 385s R_mpfr_get_erange(3): -4611686018427387903 385s R_mpfr_get_erange(4): 4611686018427387903 385s R_mpfr_get_erange(5): -4611686018427387903 385s R_mpfr_get_erange(6): 4611686018427387903 385s R_mpfr_get_erange(1): -1073741823 385s R_mpfr_get_erange(2): 1073741823 385s R_mpfr_get_erange(3): -4611686018427387903 385s R_mpfr_get_erange(4): 4611686018427387903 385s R_mpfr_get_erange(5): -4611686018427387903 385s R_mpfr_get_erange(6): 4611686018427387903 385s R_mpfr_prec_range(): 1 385s R_mpfr_prec_range(): 9223372036854775551 385s mpfr2str(*, digits=0, maybeF=False, base=10): 385s ex[0:1]= (4294964489,4294967295) -> _exp = 0xfffffffffffff509 385s dd[0:1]= (2684354560, 135379182) -> r..d[i=0]= 0x811b8eea0000000 385s dd[2:3]= (1395976304,3358285975) -> r..d[i=1]= 0xc82b60975334e870 385s [i=0]: prec=100, exp2=-2807 -> (nchar_i,dig.n)=(33,33) .. max_nchar=33 385s ex[0:1]= (4294964489,4294967295) -> _exp = 0xfffffffffffff509 385s dd[0:1]= (2684354560, 135379182) -> r..d[i=0]= 0x811b8eea0000000 385s dd[2:3]= (1395976304,3358285975) -> r..d[i=1]= 0xc82b60975334e870 385s ex[0:1]= (4294964489,4294967295) -> _exp = 0xfffffffffffff509 385s dd[0:1]= (2684354560, 135379182) -> r..d[i=0]= 0x811b8eea0000000 385s dd[2:3]= (1395976304,3358285975) -> r..d[i=1]= 0xc82b60975334e870 385s _exp = 0xfffffffffffbb761 385s r..d[i=0] = 0xc5307c7070000000 385s r..d[i=1] = 0xb5fffcb01cfbf9bc 385s mpfr2str(*, digits=0, maybeF=False, base=10): 385s ex[0:1]= (4294686561,4294967295) -> _exp = 0xfffffffffffbb761 385s dd[0:1]= (1879048192,3308289136) -> r..d[i=0]= 0xc5307c7070000000 385s > 385s > ## where as this does print info: -- notably the very large values [3..6]: 385s > .eranges <- function() sapply(.mpfr_erange_kinds, .mpfr_erange, USE.NAMES=FALSE) 385s > ## now, mpfr_erange() works with a *vector* of args: 385s > .erange2 <- function() .mpfr_erange(.mpfr_erange_kinds) 385s > ## now returning *double* - which loses some precision [ending in '04' instead of '03']: 385s > formatC(.eranges(), format="fg") 385s .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: Emin Emax min.emin 385s "-1073741823" "1073741823" "-4611686018427387904" 385s max.emin min.emax max.emax 385s "4611686018427387904" "-4611686018427387904" "4611686018427387904" 385s > stopifnot(identical(.eranges(), .erange2())) 385s .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: .mpfr_debug[1]: > 385s > .mpfr_minPrec() 385s .mpfr_debug[1]: [1] 1 385s > .mpfr_maxPrec()# debug printing shows the long integer (on 64 bit) 385s .mpfr_debug[1]: [1] 9.223372e+18 385s > 385s > ## Now, level 2 : 385s > stopifnot(Rmpfr:::.mpfr_debug(2) == 1) 385s > r 385s 1 'mpfr' number of precision 100 bits 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: [1] 7.9792116643192417444751621015671e-846 385s > ## with quite a bit of output 385s > 385s > if(FALSE) # on Winbuilder [2019-08-08, both 32 and 64 bit]: 385s + .mpfr_erange_set("Emax", 1073741823) 385s > 385s > r2 <- r^100 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: > r2 385s 1 'mpfr' number of precision 100 bits 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: [1] 1.5703576492231738528268016707234e-84510 385s > L <- r^-100000 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: > L3 <- L^3 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: > str(L3, internal=TRUE) 385s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 385s internally @.Data: List of 1 385s $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s .. ..@ prec: int 100 385s .. ..@ exp : int [1:2] 842206477 0 385s dd[2:3]= ( 486275516,3053452464) -> r..d[i=1]= 0xb5fffcb01cfbf9bc 385s [i=0]: prec=100, exp2=-280735 -> (nchar_i,dig.n)=(33,33) .. max_nchar=33 385s ex[0:1]= (4294686561,4294967295) -> _exp = 0xfffffffffffbb761 385s dd[0:1]= (1879048192,3308289136) -> r..d[i=0]= 0xc5307c7070000000 385s dd[2:3]= ( 486275516,3053452464) -> r..d[i=1]= 0xb5fffcb01cfbf9bc 385s ex[0:1]= (4294964489,4294967295) -> _exp = 0xfffffffffffff509 385s dd[0:1]= (2684354560, 135379182) -> r..d[i=0]= 0x811b8eea0000000 385s dd[2:3]= (1395976304,3358285975) -> r..d[i=1]= 0xc82b60975334e870 385s _exp = 0x10bbaf05 385s r..d[i=0] = 0xe7c2f7bc20000000 385s r..d[i=1] = 0x939f23c91dc591a5 385s ex[0:1]= ( 280735493, 0) -> _exp = 0x10bbaf05 385s dd[0:1]= ( 536870912,3888314300) -> r..d[i=0]= 0xe7c2f7bc20000000 385s dd[2:3]= ( 499487141,2476680137) -> r..d[i=1]= 0x939f23c91dc591a5 385s _exp = 0x32330d0d 385s r..d[i=0] = 0x2d66dbe010000000 385s r..d[i=1] = 0xc45982ce58f361ce 385s .. ..@ sign: int 1 385s .. ..@ d : int [1:4] 268435456 761715680 1492345294 -1000766770 385s > ## Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 385s > ## internally @.Data: List of 1 385s > ## $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s > ## .. ..@ prec: int 100 385s > ## .. ..@ exp : int [1:2] 842206477 0 385s > ## .. ..@ sign: int 1 385s > ## .. ..@ d : int [1:4] 268435456 761715680 1492345294 -1000766770 385s > str(L3) 385s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 385s .mpfr_debug[2]: mpfr2str(*, digits=12, maybeF=TRUE, base=10): 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: 1.00989692356e+253529412 385s > ## lots of debugging output, then 385s > ## 1.00989692356e+253529412 385s > ## ^^~~~~~~~~~ 10 ^ 253'529'412 that is humongous 385s > if(!interactive()) # not seg.faulting, but printing a *huge* line [no longer!] 385s + show(L3) 385s 1 'mpfr' number of precision 100 bits 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: [1] 1.0098969235574373617534053306205e+253529412 385s > ## segmentation fault -- randomly; 2017-06: no longer see any problem, not even with 385s > if(FALSE) ## well, not really, definitely not interactively for now 385s + if(interactive()) 385s + for(i in 1:256) show(L3) 385s > ## 385s > 385s > ## quite platform dependent {valgrind ==> bug? even in mpfr/gmp/.. ?} 385s > str(.mpfr2list(x4)) 385s List of 4 385s $ :List of 4 385s ..$ prec: int 32 385s ..$ exp : int [1:2] 2 NA 385s ..$ sign: int 1 385s ..$ d : int(0) 385s $ :List of 4 385s ..$ prec: int 32 385s ..$ exp : int [1:2] 2 NA 385s ..$ sign: int 1 385s ..$ d : int(0) 385s $ :List of 4 385s ..$ prec: int 32 385s ..$ exp : int [1:2] 3 NA 385s ..$ signex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s N_digits: [i=0]: ... -> dig.n = 12 .. max_nchar=12 385s ex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s mpfr2str(*, digits=12, maybeF=TRUE, base=10): 385s ex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s N_digits: [i=0]: ... -> dig.n = 12 .. max_nchar=12 385s ex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s mpfr2str(*, digits=0, maybeF=False, base=10): 385s ex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s [i=0]: prec=100, exp2=842206477 -> (nchar_i,dig.n)=(33,33) .. max_nchar=33 385s ex[0:1]= ( 842206477, 0) -> _exp = 0x32330d0d 385s dd[0:1]= ( 268435456, 761715680) -> r..d[i=0]= 0x2d66dbe010000000 385s dd[2:3]= (1492345294,3294200526) -> r..d[i=1]= 0xc45982ce58f361ce 385s : int -1 385s ..$ d : int(0) 385s $ :List of 4 385s ..$ prec: int 32 385s ..$ exp : int [1:2] 3 NA 385s ..$ sign: int 1 385s ..$ d : int(0) 385s > ## slightly nicer ["uniformly not worse"] (still very similar) : 385s > str(x4, internal=TRUE) 385s Class 'mpfr' [package "Rmpfr"] of length 4 and precision 32 385s internally @.Data: List of 4 385s $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s .. ..@ prec: int 32 385s .. ..@ exp : int [1:2] 2 NA 385s .. ..@ sign: int 1 385s .. ..@ d : int(0) 385s $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s .. ..@ prec: int 32 385s .. ..@ exp : int [1:2] 2 NA 385s .. ..@ sign: int 1 385s .. ..@ d : int(0) 385s $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s .. ..@ prec: int 32 385s .. ..@ exp : int [1:2] 3 NA 385s .. ..@ sign: int -1 385s .. ..@ d : int(0) 385s $ :Formal class 'mpfr1' [package "Rmpfr"] with 4 slots 385s .. ..@ prec: int 32 385s .. ..@ exp : int [1:2] 3 NA 385s .. ..@ sign: int 1 385s .. ..@ d : int(0) 385s > x4 ## "similar info" as .mpfr2list(.) 385s 4 'mpfr' numbers of precision 32 bits 385s .mpfr_debug[2]: mpfr2str(*, digits=0, maybeF=False, base=10): 385s .mpfr_debug[2]: ex[0:1]= ( 2,2147483648) -> _exp = 0x8000000000000002 385s .. max_nchar=5 385s .mpfr_debug[2]: ex[0:1]= ( 2,2147483648) -> _exp = 0x8000000000000002 385s .mpfr_debug[2]: .. max_nchar=5 385s ex[0:1]= ( 3,2147483648) -> _exp = 0x8000000000000003 385s .. max_nchar=5 385s ex[0:1]= ( 3,2147483648) -> _exp = 0x8000000000000003 385s .. max_nchar=5 385s ex[0:1]= ( 2,2147483648) -> _exp = 0x8000000000000002 385s ex[0:1]= ( 2,2147483648) -> _exp = 0x8000000000000002 385s ex[0:1]= ( 3,2147483648) -> _exp = 0x8000000000000003 385s ex[0:1]= ( 3,2147483648) -> _exp = 0x8000000000000003 385s .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: .mpfr_debug[2]: [1] NaN NaN -Inf Inf 385s > 385s > ## Increase maximal exponent: 385s > 385s > tools:::assertWarning( 385s + .mpfr_erange_set("Emax", 5e18)) # too large {FIXME why only warning and not error ??} 385s > .mpfr_erange("Emax") # is unchanged 385s .mpfr_debug[2]: R_mpfr_get_erange(2): 1073741823 385s Emax 385s 1073741823 385s > if(4e18 < .mpfr_erange("max.emax")) { 385s + .mpfr_erange_set("Emax", 4e18) # now ok: 385s + stopifnot(.mpfr_erange("Emax") == 4e18) 385s + } 385s .mpfr_debug[2]: R_mpfr_get_erange(6): 4611686018427387903 385s .mpfr_debug[2]: > 385s > 385s > ## revert to no debugging: 385s > stopifnot(Rmpfr:::.mpfr_debug(0) == 2) 385s R_mpfr_get_erange(2): 4000000000000000000 385s > .mpfr_maxPrec() 385s [1] 9.223372e+18 385s > 385s > L / (r2^-1000)# 1.00000....448 (could be more accurate?) 385s 1 'mpfr' number of precision 100 bits 385s [1] 1.0000000000000000000000000004481 385s > 385s > stopifnot(exprs = { 385s + all.equal(L, r2^-1000, tol= 1e-27) # why not more accurate? 385s + all.equal(log(L), -100000 * (-1000) * log(7), tol = 1e-15) 385s + }) 385s > 385s > ## Now, our experimental "transport vehicle": 385s > stopifnot(length(rv <- c(r, r2, L)) == 3) 385s > 385s > str(mpfrXport(rv)) 385s List of 5 385s $ gmp.numb.bits: int 64 385s $ mpfr.version : chr "4.2.1" 385s $ Machine :List of 5 385s ..$ sizeof.long : int 8 385s ..$ sizeof.longlong : int 8 385s ..$ sizeof.longdouble: int 16 385s ..$ sizeof.pointer : int 8 385s ..$ sizeof.time_t : int 8 385s $ Sys.info : Named chr [1:2] "Linux" "aarch64" 385s ..- attr(*, "names")= chr [1:2] "sysname" "machine" 385s $ mpfr :List of 3 385s ..$ :List of 4 385s .. ..$ prec: int 100 385s .. ..$ exp : int [1:2] -2807 -1 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -1610612736 135379182 1395976304 -936681321 385s ..$ :List of 4 385s .. ..$ prec: int 100 385s .. ..$ exp : int [1:2] -280735 -1 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] 1879048192 -986678160 486275516 -1241514832 385s ..$ :List of 4 385s .. ..$ prec: int 100 385s .. ..$ exp : int [1:2] 280735493 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] 536870912 -406652996 499487141 -1818287159 385s - attr(*, "class")= chr "mpfrXport" 385s > str(mpfrXport(mpfr(2, 64)^(-3:3))) 385s List of 5 385s $ gmp.numb.bits: int 64 385s $ mpfr.version : chr "4.2.1" 385s $ Machine :List of 5 385s ..$ sizeof.long : int 8 385s ..$ sizeof.longlong : int 8 385s ..$ sizeof.longdouble: int 16 385s ..$ sizeof.pointer : int 8 385s ..$ sizeof.time_t : int 8 385s $ Sys.info : Named chr [1:2] "Linux" "aarch64" 385s ..- attr(*, "names")= chr [1:2] "sysname" "machine" 385s $ mpfr :List of 7 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] -2 -1 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] -1 -1 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] 0 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] 1 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] 2 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] 3 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s ..$ :List of 4 385s .. ..$ prec: int 64 385s .. ..$ exp : int [1:2] 4 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:2] 0 NA 385s - attr(*, "class")= chr "mpfrXport" 385s > str(mpfrXport(Const("pi")* 2^(-3:3))) 385s List of 5 385s $ gmp.numb.bits: int 64 385s $ mpfr.version : chr "4.2.1" 385s $ Machine :List of 5 385s ..$ sizeof.long : int 8 385s ..$ sizeof.longlong : int 8 385s ..$ sizeof.longdouble: int 16 385s ..$ sizeof.pointer : int 8 385s ..$ sizeof.time_t : int 8 385s $ Sys.info : Named chr [1:2] "Linux" "aarch64" 385s ..- attr(*, "names")= chr [1:2] "sysname" "machine" 385s $ mpfr :List of 7 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] -1 -1 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 0 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 1 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 2 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 3 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 4 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s ..$ :List of 4 385s .. ..$ prec: int 120 385s .. ..$ exp : int [1:2] 5 0 385s .. ..$ sign: int 1 385s .. ..$ d : int [1:4] -2133058304 -993631605 560513588 -921707870 385s - attr(*, "class")= chr "mpfrXport" 385s > 385s > ## and a very large one 385s > mil <- mpfr(1025, 111) 385s > str(mm <- mpfrXport(xx <- mil^(2^25))) 385s List of 5 385s $ gmp.numb.bits: int 64 385s $ mpfr.version : chr "4.2.1" 385s $ Machine :List of 5 385s ..$ sizeof.long : int 8 385s ..$ sizeof.longlong : int 8 385s ..$ sizeof.longdouble: int 16 385s ..$ sizeof.pointer : int 8 385s ..$ sizeof.time_t : int 8 385s $ Sys.info : Named chr [1:2] "Linux" "aarch64" 385s ..- attr(*, "names")= chr [1:2] "sysname" "machine" 385s $ mpfr :List of 1 385s ..$ :List of 4 385s .. ..$ prec: int 111 386s .. ..$ exp : int [1:2] 335591572 0 386s .. ..$ sign: int 1 386s .. ..$ d : int [1:4] -474349568 -2023461216 -832488434 -1890623142 386s - attr(*, "class")= chr "mpfrXport" 386s > stopifnot(all.equal(log2(xx) * 2^-25, log2(mil), tol=1e-15)) 386s > 386s > ## even larger -- strictly needs extended erange: 386s > if(.mpfr_erange("min.emin") <= -2^40) { 386s + .mpfr_erange_set("Emin", - 2^40) 386s + show(xe <- 2^mpfr(-seq(1,70, by=3)*8e8, 64)) 386s + ## used to print wrongly {because of integer overflow in .mpfr2str()$exp}, 386s + ## with some exponents large positive 386s + stopifnot(exprs = { 386s + ! .mpfr_erange_is_int() # as 'exp's now are double 386s + (ee <- as.numeric(sub(".*e","", formatMpfr(xe)))) < -240e6 386s + (diff(ee) + 722471990) %in% 0:1 386s + }) 386s + } else { 386s + cat(sprintf( 386s + "Cannot set 'Emin' to -2^40 (= %g), as .mpfr_erange(\"min.emin\") is larger, 386s + namely %g.\n", 386s + - 2^40, .mpfr_erange("min.emin"))) 386s + } 386s 24 'mpfr' numbers of precision 64 bits 386s [1] 2.94316793837715924694e-240823997 7.50343587401352095291e-963295987 386s [3] 1.9129574354658573759e-1685767976 4.87697397745164731108e-2408239966 386s [5] 1.24335621565715989157e-3130711955 3.16986452287999940147e-3853183945 386s [7] 8.08138566155193403194e-4575655935 2.06030238009668925059e-5298127924 386s [9] 5.25262136371909071978e-6020599914 1.33912533699560207614e-6743071903 386s [11] 3.4140223404831125046e-7465543893 8.70385184964659379367e-8188015883 386s [13] 2.2189965227314881102e-8910487872 5.65720287173128376478e-9632959862 386s [15] 1.44227104477519513027e-10355431851 3.67698633717256500188e-11077903841 386s [17] 9.37426330004503135356e-11800375831 2.38991403177593603161e-12522847820 386s [19] 6.0929471431126458909e-13245319810 1.55336151824581934705e-13967791799 386s [21] 3.96020505297586637804e-14690263789 1.00963129814921265231e-15412735778 386s [23] 2.57399640818214045471e-16135207768 6.5622544799075640584e-16857679758 386s > 386s > ## Bill Dunlap's example (with patch about convert S_alloc bug): 386s > ## (precision increases, then decreases) 386s > z <- c(mpfr(1,8)/19, mpfr(1,32)/19, mpfr(1,24)/19) 386s > cbind(fz <- format(z)) 386s [,1] 386s [1,] "0.05273" 386s [2,] "0.052631578947" 386s [3,] "0.0526315793" 386s > stopifnot(identical(fz, rev(format(rev(z))))) 386s > stopifnot(identical(fz, c("0.05273", 386s + "0.052631578947", 386s + "0.0526315793"))) # << smaller prec, again since 2019-08-09 386s > 386s > e.xx. <- .mpfr2exp(xx) 386s > e.z. <- .mpfr2exp(z) 386s > 386s > ## revert to original 'erange' settings (which gives integer 'exp'): 386s > .mpfr_erange_set("Emax", erangesOrig[["Emax"]]) # typically 2^30 - 1 = 1073741823 386s > .mpfr_erange_set("Emin", erangesOrig[["Emin"]]) 386s > 386s > e.xx <- .mpfr2exp(xx) 386s > e.z <- .mpfr2exp(z) 386s > stopifnot(exprs = { 386s + .mpfr_erange_is_int() 386s + e.xx == e.xx. 386s + e.xx == 335591572 386s + e.z == e.z. 386s + e.z == -4 386s + is.integer(e.xx) # but e.xx. is double 386s + is.integer(e.z) 386s + }) 386s > 386s > k1 <- mpfr( c(123, 1234, 12345, 123456), precBits=2) 386s > (N1 <- asNumeric(k1))# 128 1024 12288 131072 -- correct 386s [1] 128 1024 12288 131072 386s > str(sk1 <- .mpfr2str(k1)) 386s List of 4 386s $ str : chr [1:4] "13" "10" "12" "13" 386s $ exp : int [1:4] 3 4 5 6 386s $ finite: logi [1:4] TRUE TRUE TRUE TRUE 386s $ is.0 : logi [1:4] FALSE FALSE FALSE FALSE 386s > str(sk1. <- .mpfr2str(k1, maybe.full=TRUE)) 386s List of 4 386s $ str : chr [1:4] "128" "1024" "12288" "131072" 386s $ exp : int [1:4] 3 4 5 6 386s $ finite: logi [1:4] TRUE TRUE TRUE TRUE 386s $ is.0 : logi [1:4] FALSE FALSE FALSE FALSE 386s > str(sk1.2 <- .mpfr2str(k1, digits=2, base=2)) 386s List of 4 386s $ str : chr [1:4] "10" "10" "11" "10" 386s $ exp : int [1:4] 8 11 14 18 386s $ finite: logi [1:4] TRUE TRUE TRUE TRUE 386s $ is.0 : logi [1:4] FALSE FALSE FALSE FALSE 386s > str(sk1.2F <- .mpfr2str(k1, maybe.full=TRUE, base=2)) 386s List of 4 386s $ str : chr [1:4] "10000000" "10000000000" "11000000000000" "100000000000000000" 386s $ exp : int [1:4] 8 11 14 18 386s $ finite: logi [1:4] TRUE TRUE TRUE TRUE 386s $ is.0 : logi [1:4] FALSE FALSE FALSE FALSE 386s > stopifnot(exprs = { 386s + identical(sk1 [1:2], list(str = c("13", "10", "12", "13"), exp = 3:6)) 386s + identical(sk1.[1:2], list(str = c("128", "1024", "12288", "131072"), exp = 3:6)) 386s + identical(sk1.2, list(str = c("10", "10", "11", "10"), 386s + exp = c( 8L, 11L, 14L, 18L), 386s + finite = rep(TRUE, 4), is.0 = rep(FALSE, 4))) 386s + all.equal(sk1.2[2:4], .mpfr_formatinfo(k1), tol=0) # not identical(): int <-> double 386s + identical(formatMpfr(k1, base=2, digits=20, drop0trailing=TRUE), 386s + with(sk1.2, paste0(str, sapply(exp - nchar(str), strrep, x="0")))) 386s + identical(formatMpfr(k1, base=2, digits=2, exponent.plus=FALSE), 386s + c("1.0e7", "1.0e10", "1.1e13", "1.0e17")) 386s + }) 386s > ## MM: --> need_dig is fine but is not used in the string that is returned !! 386s > 386s > (fk1sF <- formatMpfr(k1, scientific=FALSE)) # "the bug" --- now fixed! ==> new "Bug" in new Rmpfr ???? 386s [1] "128." "1024." "12288." "131072." 386s > ## was "128." "1024." "12288." "131072." , but now obeying internal precision gives 386s > ## "1.e2" "1.e3" "1.e4" "1.e5" 386s > (fk1 <- formatMpfr(k1, digits=6)) 386s [1] "128.000" "1024.00" "12288.0" "131072." 386s > stopifnot(exprs = { 386s + N1 == as.numeric(fk1) 386s + ## FIXME: This should change again "1024" 386s + identical(format(k1, digits=3), c("128.", "1020.", "1.23e+4", "1.31e+5")) 386s + }) 386s > ## 386s > digs <- setNames(1:6, 1:6) 386s > ## Each of these are 4 x 6 matrices 386s > ffix <- sapply(digs, function(d) format(k1, digits = d, scientific = FALSE)) ## *not* good at all .. 386s > ## ==> need a maybe.full=TRUE even here 386s > ff <- sapply(digs, function(d) format(k1, digits = d))# sci..fic = NA -- digits=1 failing for '128' 386s > fsci <- sapply(digs, function(d) format(k1, digits = d, scientific = TRUE)) # perfect 386s > stopifnot(exprs = { 386s + length(dd <- dim(ff)) == 2 386s + identical(dd, dim(ffix)) 386s + identical(dd, dim(fsci)) 386s + all.equal(asNumeric(fsci), asNumeric(ffix) -> dmat, tol=0) 386s + all.equal(asNumeric(ff), asNumeric(ffix), tol=0) 386s + }) 386s > rE <- 1 - dmat / asNumeric(k1) 386s > i <- 1:5 386s > summary(fm <- lm(log10(colMeans(abs(rE)))[i] ~ i)) 386s 386s Call: 386s lm(formula = log10(colMeans(abs(rE)))[i] ~ i) 386s 386s Residuals: 386s 1 2 3 4 5 386s -0.12076 0.06070 0.10167 0.09761 -0.13922 386s 386s Coefficients: 386s Estimate Std. Error t value Pr(>|t|) 386s (Intercept) 0.49710 0.14522 3.423 0.041747 * 386s i -1.15528 0.04378 -26.386 0.000119 *** 386s --- 386s Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 386s 386s Residual standard error: 0.1385 on 3 degrees of freedom 386s Multiple R-squared: 0.9957, Adjusted R-squared: 0.9943 386s F-statistic: 696.2 on 1 and 3 DF, p-value: 0.0001194 386s 386s > stopifnot(exprs = { 386s + rE[ cbind(FALSE, upper.tri(rE)[,-6]) ] == 0 386s + abs(residuals(fm)) < 0.15 386s + }) 386s > 386s > ## formatting / printing : 386s > tenth <- mpfr(-12:12, 52)/10 386s > cents <- mpfr(-11:11, 64)/100 386s > (kxi <- sort(c(k1, x4, i8, tenth, cents), na.last=FALSE)) 386s 64 'mpfr' numbers of precision 2 .. 64 bits 386s [1] NaN NaN 386s [3] -Inf -2 386s [5] -1.2000000000000002 -1.1000000000000001 386s [7] -1 -1 386s [9] -0.89999999999999991 -0.80000000000000004 386s [11] -0.69999999999999996 -0.60000000000000009 386s [13] -0.5 -0.40000000000000002 386s [15] -0.30000000000000004 -0.20000000000000001 386s [17] -0.109999999999999999999 -0.10000000000000001 386s [19] -0.100000000000000000001 -0.0900000000000000000033 386s [21] -0.0799999999999999999984 -0.0700000000000000000003 386s [23] -0.0599999999999999999988 -0.0500000000000000000007 386s [25] -0.0399999999999999999992 -0.0299999999999999999994 386s [27] -0.0199999999999999999996 -0.0099999999999999999998 386s [29] 0 0 386s [31] 0 0.0099999999999999999998 386s [33] 0.0199999999999999999996 0.0299999999999999999994 386s [35] 0.0399999999999999999992 0.0500000000000000000007 386s [37] 0.0599999999999999999988 0.0700000000000000000003 386s [39] 0.0799999999999999999984 0.0900000000000000000033 386s [41] 0.100000000000000000001 0.10000000000000001 386s [43] 0.109999999999999999999 0.20000000000000001 386s [45] 0.30000000000000004 0.40000000000000002 386s [47] 0.5 0.60000000000000009 386s [49] 0.69999999999999996 0.80000000000000004 386s [51] 0.89999999999999991 1 386s [53] 1 1.1000000000000001 386s [55] 1.2000000000000002 2 386s [57] 3 4 386s [59] 5 130 386s [61] 1e+3 1.2e+4 386s [63] 1.3e+5 Inf 386s > mstr <- .mpfr2str (kxi) 386s > mfi <- .mpfr_formatinfo(kxi) 386s > es <- mstr$exp # base 10 ; with '0' when !is.finite or is0 386s > ef <- mfi $exp # base 2 ; "undefined" when !is.finite or is0 386s > j2 <- c("finite", "is.0") 386s > dxi <- cbind(x = asNumeric(kxi), prec = .getPrec(kxi), 386s + as.data.frame(mstr, stringsAsFactors = FALSE)) 386s > stopifnot(is.data.frame(dxi), identical(mstr$str, dxi[,"str"]), 386s + identical(mstr[j2], mfi[j2]), 386s + identical(ef, .mpfr2exp(kxi))) 386s > dxi ## 2019-08-09: again *varying* size of 'str' rather than only growing !! 386s x prec str exp finite is.0 386s 1 NaN 32 @NaN@ 0 FALSE FALSE 386s 2 NaN 32 @NaN@ 0 FALSE FALSE 386s 3 -Inf 32 -@Inf@ 0 FALSE FALSE 386s 4 -2.00 32 -20000000000 1 TRUE FALSE 386s 5 -1.20 52 -12000000000000002 1 TRUE FALSE 386s 6 -1.10 52 -11000000000000001 1 TRUE FALSE 386s 7 -1.00 32 -10000000000 1 TRUE FALSE 386s 8 -1.00 52 -10000000000000000 1 TRUE FALSE 386s 9 -0.90 52 -89999999999999991 0 TRUE FALSE 386s 10 -0.80 52 -80000000000000004 0 TRUE FALSE 386s 11 -0.70 52 -69999999999999996 0 TRUE FALSE 386s 12 -0.60 52 -60000000000000009 0 TRUE FALSE 386s 13 -0.50 52 -50000000000000000 0 TRUE FALSE 386s 14 -0.40 52 -40000000000000002 0 TRUE FALSE 386s 15 -0.30 52 -30000000000000004 0 TRUE FALSE 386s 16 -0.20 52 -20000000000000001 0 TRUE FALSE 386s 17 -0.11 64 -109999999999999999999 0 TRUE FALSE 386s 18 -0.10 52 -10000000000000001 0 TRUE FALSE 386s 19 -0.10 64 -100000000000000000001 0 TRUE FALSE 386s 20 -0.09 64 -900000000000000000033 -1 TRUE FALSE 386s 21 -0.08 64 -799999999999999999984 -1 TRUE FALSE 386s 22 -0.07 64 -700000000000000000003 -1 TRUE FALSE 386s 23 -0.06 64 -599999999999999999988 -1 TRUE FALSE 386s 24 -0.05 64 -500000000000000000007 -1 TRUE FALSE 386s 25 -0.04 64 -399999999999999999992 -1 TRUE FALSE 386s 26 -0.03 64 -299999999999999999994 -1 TRUE FALSE 386s 27 -0.02 64 -199999999999999999996 -1 TRUE FALSE 386s 28 -0.01 64 -999999999999999999980 -2 TRUE FALSE 386s 29 0.00 32 0 0 TRUE TRUE 386s 30 0.00 52 0 0 TRUE TRUE 386s 31 0.00 64 0 0 TRUE TRUE 386s 32 0.01 64 999999999999999999980 -2 TRUE FALSE 386s 33 0.02 64 199999999999999999996 -1 TRUE FALSE 386s 34 0.03 64 299999999999999999994 -1 TRUE FALSE 386s 35 0.04 64 399999999999999999992 -1 TRUE FALSE 386s 36 0.05 64 500000000000000000007 -1 TRUE FALSE 386s 37 0.06 64 599999999999999999988 -1 TRUE FALSE 386s 38 0.07 64 700000000000000000003 -1 TRUE FALSE 386s 39 0.08 64 799999999999999999984 -1 TRUE FALSE 386s 40 0.09 64 900000000000000000033 -1 TRUE FALSE 386s 41 0.10 64 100000000000000000001 0 TRUE FALSE 386s 42 0.10 52 10000000000000001 0 TRUE FALSE 386s 43 0.11 64 109999999999999999999 0 TRUE FALSE 386s 44 0.20 52 20000000000000001 0 TRUE FALSE 386s 45 0.30 52 30000000000000004 0 TRUE FALSE 386s 46 0.40 52 40000000000000002 0 TRUE FALSE 386s 47 0.50 52 50000000000000000 0 TRUE FALSE 386s 48 0.60 52 60000000000000009 0 TRUE FALSE 386s 49 0.70 52 69999999999999996 0 TRUE FALSE 386s 50 0.80 52 80000000000000004 0 TRUE FALSE 386s 51 0.90 52 89999999999999991 0 TRUE FALSE 386s 52 1.00 32 10000000000 1 TRUE FALSE 386s 53 1.00 52 10000000000000000 1 TRUE FALSE 386s 54 1.10 52 11000000000000001 1 TRUE FALSE 386s 55 1.20 52 12000000000000002 1 TRUE FALSE 386s 56 2.00 32 20000000000 1 TRUE FALSE 386s 57 3.00 32 30000000000 1 TRUE FALSE 386s 58 4.00 32 40000000000 1 TRUE FALSE 386s 59 5.00 32 50000000000 1 TRUE FALSE 386s 60 128.00 2 13 3 TRUE FALSE 386s 61 1024.00 2 10 4 TRUE FALSE 386s 62 12288.00 2 12 5 TRUE FALSE 386s 63 131072.00 2 13 6 TRUE FALSE 386s 64 Inf 32 @Inf@ 0 FALSE FALSE 386s > ## Show that *order* no longer matters: 386s > n <- length(ixk <- rev(kxi)) 386s > dix <- cbind(x = asNumeric(ixk), prec = .getPrec(ixk), 386s + as.data.frame(.mpfr2str(ixk), stringsAsFactors = FALSE))[n:1,] 386s > attr(dix, "row.names") <- .set_row_names(n) 386s > stopifnot(identical(dxi, dix)) 386s > 386s > 386s > ## somewhat (but not so much) revealing : 386s > cbind(prec = .getPrec(kxi), kxi = asNumeric(kxi), str = es, 386s + fi.10 = ceiling(ef/log2(10)), str.2 = as.integer(es*log2(10)), fi = ef) 386s prec kxi str fi.10 str.2 fi 386s [1,] 32 NaN 0 1 0 2 386s [2,] 32 NaN 0 1 0 2 386s [3,] 32 -Inf 0 1 0 3 386s [4,] 32 -2.00 1 1 3 2 386s [5,] 52 -1.20 1 1 3 1 386s [6,] 52 -1.10 1 1 3 1 386s [7,] 32 -1.00 1 1 3 1 386s [8,] 52 -1.00 1 1 3 1 386s [9,] 52 -0.90 0 0 0 0 386s [10,] 52 -0.80 0 0 0 0 386s [11,] 52 -0.70 0 0 0 0 386s [12,] 52 -0.60 0 0 0 0 386s [13,] 52 -0.50 0 0 0 0 386s [14,] 52 -0.40 0 0 0 -1 386s [15,] 52 -0.30 0 0 0 -1 386s [16,] 52 -0.20 0 0 0 -2 386s [17,] 64 -0.11 0 0 0 -3 386s [18,] 52 -0.10 0 0 0 -3 386s [19,] 64 -0.10 0 0 0 -3 386s [20,] 64 -0.09 -1 0 -3 -3 386s [21,] 64 -0.08 -1 0 -3 -3 386s [22,] 64 -0.07 -1 0 -3 -3 386s [23,] 64 -0.06 -1 -1 -3 -4 386s [24,] 64 -0.05 -1 -1 -3 -4 386s [25,] 64 -0.04 -1 -1 -3 -4 386s [26,] 64 -0.03 -1 -1 -3 -5 386s [27,] 64 -0.02 -1 -1 -3 -5 386s [28,] 64 -0.01 -2 -1 -6 -6 386s [29,] 32 0.00 0 1 0 1 386s [30,] 52 0.00 0 1 0 1 386s [31,] 64 0.00 0 1 0 1 386s [32,] 64 0.01 -2 -1 -6 -6 386s [33,] 64 0.02 -1 -1 -3 -5 386s [34,] 64 0.03 -1 -1 -3 -5 386s [35,] 64 0.04 -1 -1 -3 -4 386s [36,] 64 0.05 -1 -1 -3 -4 386s [37,] 64 0.06 -1 -1 -3 -4 386s [38,] 64 0.07 -1 0 -3 -3 386s [39,] 64 0.08 -1 0 -3 -3 386s [40,] 64 0.09 -1 0 -3 -3 386s [41,] 64 0.10 0 0 0 -3 386s [42,] 52 0.10 0 0 0 -3 386s [43,] 64 0.11 0 0 0 -3 386s [44,] 52 0.20 0 0 0 -2 386s [45,] 52 0.30 0 0 0 -1 386s [46,] 52 0.40 0 0 0 -1 386s [47,] 52 0.50 0 0 0 0 386s [48,] 52 0.60 0 0 0 0 386s [49,] 52 0.70 0 0 0 0 386s [50,] 52 0.80 0 0 0 0 386s [51,] 52 0.90 0 0 0 0 386s [52,] 32 1.00 1 1 3 1 386s [53,] 52 1.00 1 1 3 1 386s [54,] 52 1.10 1 1 3 1 386s [55,] 52 1.20 1 1 3 1 386s [56,] 32 2.00 1 1 3 2 386s [57,] 32 3.00 1 1 3 2 386s [58,] 32 4.00 1 1 3 3 386s [59,] 32 5.00 1 1 3 3 386s [60,] 2 128.00 3 3 9 8 386s [61,] 2 1024.00 4 4 13 11 386s [62,] 2 12288.00 5 5 16 14 386s [63,] 2 131072.00 6 6 19 18 386s [64,] 32 Inf 0 1 0 3 386s > 386s > 386s > 386s > ## Bug example from RMH 2018-03-16 : 386s > (x <- mpfr(c(65, 650, 6500, 65000, 650000), precBits=6)) 386s 5 'mpfr' numbers of precision 6 bits 386s [1] 64 656 6530 6.45e+4 6.55e+5 386s > data.frame(fDec = formatDec(x), f = formatMpfr(x)) 386s fDec f 386s 1 64.0 64.0 386s 2 656. 656. 386s 3 6530. 6530. 386s 4 6.45e+4 6.45e+4 386s 5 6.55e+5 6.55e+5 386s > x. <- as.numeric(xDec <- formatDec(x)) 386s > stopifnot(abs(x - x.) <= c(0, 0, 2, 12, 360)) 386s > 386s > cat("Checking compatibility .mpfr_formatinfo() <--> .mpfr2str(*, base=2) :\n") 386s Checking compatibility .mpfr_formatinfo() <--> .mpfr2str(*, base=2) : 386s > for(nm in ls()) 386s + if(is(OO <- get(nm), "mpfr")) { 386s + cat(nm,": str(*) :\n"); str(OO); cat("compatibility: ") 386s + I <- .mpfr_formatinfo(OO) 386s + S <- .mpfr2str(OO, base = 2L) 386s + if(identical(I, S[-1])) 386s + cat("[Ok]\n") 386s + else { 386s + if(any(B <- !I$finite)) I$exp[B] <- S$exp[B] 386s + if(any(B <- I $ is.0)) I$exp[B] <- S$exp[B] 386s + if(identical(I, S[-1])) 386s + cat(" after fixup [Ok]\n") 386s + else 386s + stop(".mpfr_formatinfo(*) and .mpfr2str(*, base=2) do not match") 386s + } 386s + } 386s cents : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 23 and precision 64 386s -0.11 -0.1 -0.09 -0.08 -0.07 -0.06 -0.05 -0.04 -0.03 -0.02 -0.01 0 ... 386s compatibility: after fixup [Ok] 386s i8 : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 8 and precision 32 386s -2 -1 0 1 2 3 4 5 386s compatibility: after fixup [Ok] 386s ixk : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 64 and precisions 2..64 386s Inf 131072 12288 ... 386s compatibility: after fixup [Ok] 386s k1 : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 4 and precision 2 386s 1.e+2 1.e+3 1.e+4 1.e+5 386s compatibility: [Ok] 386s kxi : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 64 and precisions 2..64 386s NaN NaN -Inf -2 -1.2 ... 386s compatibility: after fixup [Ok] 386s L : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 386s 1.00328815073e+84509804 386s compatibility: [Ok] 386s L3 : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 386s 1.00989692356e+253529412 386s compatibility: [Ok] 386s mil : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 111 386s 1025 386s compatibility: [Ok] 386s r : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 386s 7.97921166432e-846 386s compatibility: [Ok] 386s r2 : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 100 386s 1.57035764922e-84510 386s compatibility: [Ok] 386s rv : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 3 and precision 100 386s 7.97921166432e-846 1.57035764922e-84510 1.00328815073e+84509804 386s compatibility: [Ok] 386s tenth : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 25 and precision 52 386s -1.2 -1.1 -1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 ... 386s compatibility: after fixup [Ok] 386s x : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 5 and precision 6 386s 64 660 6.5e+3 6.5e+4 6.6e+5 386s compatibility: [Ok] 386s x4 : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 4 and precision 32 386s NaN NaN -Inf Inf 386s compatibility: after fixup [Ok] 386s xe : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 24 and precision 64 386s 2.94316793838e-240823997 7.50343587401e-963295987 ... 386s compatibility: [Ok] 386s xx : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 1 and precision 111 386s 1.62954142022e+101023129 386s compatibility: [Ok] 386s z : str(*) : 386s Class 'mpfr' [package "Rmpfr"] of length 3 and precisions 8..32 386s 0.052734375 0.05263157895 0.05263157934 386s compatibility: [Ok] 386s > 386s BEGIN TEST matrix-ex.R 386s 386s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 386s Copyright (C) 2024 The R Foundation for Statistical Computing 386s Platform: aarch64-unknown-linux-gnu (64-bit) 386s 386s R is free software and comes with ABSOLUTELY NO WARRANTY. 386s You are welcome to redistribute it under certain conditions. 386s Type 'license()' or 'licence()' for distribution details. 386s 386s R is a collaborative project with many contributors. 386s Type 'contributors()' for more information and 386s 'citation()' on how to cite R or R packages in publications. 386s 386s Type 'demo()' for some demos, 'help()' for on-line help, or 386s 'help.start()' for an HTML browser interface to help. 386s Type 'q()' to quit R. 386s 387s > stopifnot(require("Rmpfr")) 387s Loading required package: Rmpfr 387s Loading required package: gmp 387s 387s Attaching package: ‘gmp’ 387s 387s The following objects are masked from ‘package:base’: 387s 387s %*%, apply, crossprod, matrix, tcrossprod 387s 388s C code of R package 'Rmpfr': GMP using 64 bits per limb 388s 388s 388s Attaching package: ‘Rmpfr’ 388s 388s The following object is masked from ‘package:gmp’: 388s 388s outer 388s 388s The following objects are masked from ‘package:stats’: 388s 388s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 388s 388s The following objects are masked from ‘package:base’: 388s 388s cbind, pmax, pmin, rbind 388s 388s > 388s > x <- mpfr(0:7, 64)/7 388s > mx <- x 388s > dim(mx) <- c(4,2) 388s > (m. <- mx) # "print" 388s 'mpfrMatrix' of dim(.) = (4, 2) of precision 64 bits 388s [,1] [,2] 388s [1,] 0. 0.571428571428571428564 388s [2,] 0.142857142857142857141 0.714285714285714285691 388s [3,] 0.285714285714285714282 0.857142857142857142873 388s [4,] 0.428571428571428571436 1.00000000000000000000 388s > m.[,2] <- Const("pi", 80) 388s > m.[,] <- exp(mpfr(1, 90)) 388s > stopifnot(is(mx, "mpfrMatrix"), dim(mx) == c(4,2), 388s + is(m., "mpfrMatrix"), dim(m.) == dim(mx), 388s + dim(is.finite(mx)) == dim(mx), 388s + dim(is.nan(mx)) == dim(mx), 388s + getPrec(m.) == 90) 388s > 388s > xx <- (0:7)/7 388s > m.x <- matrix(xx, 4,2) 388s > m2 <- mpfr(xx, 64); dim(m2) <- dim(m.x) 388s > ## 388s > u <- 10*(1:4) 388s > y <- 7 * mpfr(1:12, 80) 388s > my <- y 388s > dim(my) <- 3:4 388s > m.y <- asNumeric(my) 388s > stopifnot(all.equal(m2, mpfr(m.x, 64), tol=0), # not identical(..) 388s + my[2,2] == 35, 388s + my[,1] == 7*(1:3)) 388s > 388s > .N <- function(x) { if(!is.null(dim(x))) as(x,"array") else as(x,"numeric") } 388s > noDN <- function(.) { dimnames(.) <- NULL ; . } 388s > allEQ <- function(x,y) all.equal(x,y, tol=1e-15) 388s > 388s > ## FIXME write "functions" that take x -> {mx , m.x} and run the following as *function* 388s > ## ---- then use previous case *and* cases with NA's ! 388s > ## and use higher precision via fPrec = 2 etc ... 388s > 388s > stopifnot(allEQ(m.x, noDN(.N(mx))), 388s + allEQ(m.y, noDN(.N(my))), 388s + allEQ(noDN(.N(my %*% mx)), m.y %*% m.x), 388s + allEQ(noDN(.N(crossprod(mx, t(my)))), crossprod(m.x, t(m.y))), 388s + allEQ(noDN(.N(tcrossprod(my, t(mx)))), 388s + tcrossprod(m.y, t(m.x))), 388s + ## 388s + identical(mx, t(t(mx))), 388s + identical(my, t(t(my))), 388s + ## matrix o vector .. even vector o vector 388s + identical(noDN(.N(my %*% 1:4)), m.y %*% 1:4 ), 388s + identical(noDN(.N(my %*% my[2,])), m.y %*% .N(my[2,])), 388s + identical( crossprod(1:3, my), 1:3 %*% my), 388s + identical(tcrossprod(1:4, my), 1:4 %*% t(my)), 388s + identical(crossprod(y), t(y) %*% y), 388s + identical(tcrossprod(y), y %*% t(y)), 388s + identical(noDN(.N( crossprod(y))), crossprod(7 * 1:12)), 388s + identical(noDN(.N(tcrossprod(y))),tcrossprod(7 * 1:12)), 388s + identical(tcrossprod(1:3, u), noDN(.N(tcrossprod(1:3, as(u,"mpfr"))))) 388s + ) 390s > 390s > mx[3,1] <- Const("pi", 64) 390s > stopifnot(allEQ(sum(mx[,1]), pi + 4/7)) 390s > m2 <- mx[c(1,4),] 390s > stopifnot(dim(m2) == c(2,2), sum(m2) == 2) 390s > 390s > ## "mpfrArray" o "mpfr" : 390s > Tmx <- array(TRUE, dim(mx), dimnames=dimnames(mx)) 390s > stopifnot(identical(Tmx, mx == (mx - mpfr(0, 10))), 390s + identical(Tmx, mx - mpfr(1, 10) * mx == 0)) 390s Note: method with signature ‘mpfrArray#mpfr’ chosen for function ‘==’, 390s target signature ‘mpfrMatrix#mpfrMatrix’. 390s "mpfr#mpfrArray" would also be valid 390s > ## subassignment, many kinds 390s > mx[5] <- pi 390s > mx[6] <- Const("pi",100) 390s > stopifnot(validObject(mx), allEQ(mx[5], mx[6]), 390s + getPrec(mx) == c(rep(64,5), 100, 64,64)) 390s > 390s > ## %*% with vectors on LHS, ... 390s > y <- t(2:4) # 1 x 3 matrix 390s > m1 <- (0:10) %*% y 390s > m2 <- mpfr(0:10, 50) %*% y 390s > stopifnot((d <- m1 - m2) == 0, identical(dim(m1), dim(d)), 390s + m2 == m1, m1 == m2) 390s > 390s > r <- 10*(0:4) 390s > y <- t(2:6) 390s > m1 <- 1:3 %*% y %*% r 390s > y. <- t(mpfr(2:6, 20)) 390s > m2 <- 1:3 %*% y. %*% r 390s > stopifnot(m1 == m2, m1 - m2 == 0, identical(dim(m1), dim(m2))) 390s > 390s > ### Array (non-matrix) ---- indexing & sub-assignment : 390s > A <- mpfrArray(1:24, prec = 96, dim = 2:4) 390s > a <- array(1:24, dim = 2:4) 390s > a.1 <- as(A[,,1], "array") 390s > a1. <- as(A[1,,], "array") 390s > A1. <- as(A[1,,], "mpfr") 390s > 390s > stopifnot(all.equal(noDN(a.1), a[,,1], tol=0), 390s + identical(A1., as.vector(A[1,,])), 390s + ## arithmetic, subsetting etc: 390s + allEQ(noDN(.N(A / A1.)), a/c(a1.)), 390s + allEQ(noDN(.N(a / A1.)), a/c(a1.)), 390s + identical(noDN(A == 23), a == 23), 390s + identical(noDN(10 >= A), 10 >= a), 390s + identical(noDN(A <= 2), a <= 2), 390s + identical(noDN(A < 2.5), a < 2.5), 390s + identical(noDN(A != 5), a != 5), 390s + identical(A != 3, !(3 == A)), 390s + identical(-1 > A, A == 100), 390s + identical(noDN(A <= 0), a == pi) 390s + ) 391s > 391s > A[1,2,3] <- Const("pi") 391s > A[1, ,2] <- 1 / A[1,,2] 391s > A 391s 'mpfrArray' of dim(.) = (2, 3, 4) of precision 96 .. 120 bits 391s , , 1 391s 391s [,1] [,2] 391s [1,] 1.00000000000000000000000000000 3.00000000000000000000000000000 391s [2,] 2.00000000000000000000000000000 4.00000000000000000000000000000 391s [,3] 391s [1,] 5.00000000000000000000000000000 391s [2,] 6.00000000000000000000000000000 391s 391s , , 2 391s 391s [,1] [,2] 391s [1,] 0.142857142857142857142857142858 0.111111111111111111111111111111 391s [2,] 8.00000000000000000000000000000 10.0000000000000000000000000000 391s [,3] 391s [1,] 0.0909090909090909090909090909098 391s [2,] 12.0000000000000000000000000000 391s 391s , , 3 391s 391s [,1] [,2] 391s [1,] 13.0000000000000000000000000000 3.1415926535897932384626433832795028847 391s [2,] 14.0000000000000000000000000000 16.0000000000000000000000000000 391s [,3] 391s [1,] 17.0000000000000000000000000000 391s [2,] 18.0000000000000000000000000000 391s 391s , , 4 391s 391s [,1] [,2] 391s [1,] 19.0000000000000000000000000000 21.0000000000000000000000000000 391s [2,] 20.0000000000000000000000000000 22.0000000000000000000000000000 391s [,3] 391s [1,] 23.0000000000000000000000000000 391s [2,] 24.0000000000000000000000000000 391s 391s > 391s > ## check that A is "==" a where 391s > a <- array(1:24, 2:4); a[1,2,3] <- pi; a[1,,2] <- 1/a[1,,2] 391s > stopifnot(allEQ(noDN(.N(A)), a), 391s + ## check aperm() methods : 391s + allEQ(noDN(.N(aperm(A))), aperm(a)), 391s + {p <- c(3,1:2); allEQ(noDN(.N(aperm(A,p))), aperm(a,p))}, 391s + {p <- c(2:1,3); allEQ(noDN(.N(aperm(A,p))), aperm(a,p))}) 391s > 391s > ## cbind() / rbind(): 391s > options(warn = 2)## no warnings here - ("exact recycling"): 391s > validObject(m0 <- cbind(pi=pi, i = 1:6)) 391s [1] TRUE 391s > validObject(m1 <- cbind(a=Const("pi",60),i = 1:6, "1/mp" = 1/mpfr(1:3,70))) 391s [1] TRUE 391s > validObject(m2 <- cbind(pi=pi, i = 1:2, 1/mpfr(1:6,70))) 391s [1] TRUE 391s > validObject(n2 <- rbind(pi=pi, i = 1:2, 1/mpfr(1:6,70))) 391s [1] TRUE 391s > stopifnot(is(m0,"matrix"), is(m1, "mpfrMatrix"), is(m2, "mpfrMatrix"), 391s + dim(m0) == c(6,2), dim(m1) == c(6,3), dim(m2) == c(6,3)) 391s > options(warn = 1) 391s > suppressWarnings(eval(ex <- quote(m3 <- cbind(I=10, 1:3, inv=1/mpfr(2:3,80))))) 391s > validObject(suppressWarnings( n3 <- rbind(I=10, 1:3, inv=1/mpfr(2:3,80)))) 391s [1] TRUE 391s > stopifnot(identical(t(n2), m2), 391s + identical(t(n3), m3), validObject(m3), 391s + is(tryCatch(eval(ex), warning=function(.).), "warning"), 391s + identical(cbind("A", "c"), matrix(c("A", "c"), 1,2)), 391s + identical(rbind("A", 2), matrix(c("A", "2"), 2,1)) ) 391s > 391s > ## head() / tail() : 391s > stopifnot(all.equal(c(21, 12), 391s + dim(mm3 <- m3[rep(1:3, each=7), rep(3:1, 4)])), 391s + all.equal(dim(t3 <- tail(mm3)), c(6, 12)), 391s + all.equal(head(mm3), mm3[1:6,])) 391s > 391s > ## matrix() works since 2015-02-28: 391s > x <- mpfr(pi,64)*mpfr(2,64)^(2^(0:19)) 391s > (mx <- matrix(x, 4,5)) 391s 'mpfrMatrix' of dim(.) = (4, 5) of precision 64 bits 391s [,1] [,2] 391s [1,] 6.28318530717958623200 205887.416145660681650 391s [2,] 12.5663706143591724640 13493037704.5220184326 391s [3,] 50.2654824574366898560 57952155664616980480.0 391s [4,] 804.247719318987037695 1.06902858406496670619e+39 391s [,3] [,4] 391s [1,] 3.63771576891766310100e+77 3.28104443733842154527e+1233 391s [2,] 4.21218708934506345775e+154 3.42668632977872042983e+2466 391s [3,] 5.64761954589225685791e+308 3.73765172555867836946e+4932 391s [4,] 1.01526868859647402324e+617 4.44680197657346404992e+9864 391s [,5] 391s [1,] 6.29427491061341831593e+19728 391s [2,] 1.26107681736228617526e+39457 391s [3,] 5.06212903659356755184e+78913 391s [4,] 8.15673870189463167140e+157826 391s > 391s > stopifnot(is(mx, "mpfrMatrix"), 391s + all.equal(matrix(0:19, 4,5), 391s + asNumeric(log2(log2(mx) - log2(Const("pi")))), 391s + tol = 1e-15)) # 64b-lnx: see 8.1e-17 391s > 391s > 391s > ## Ensure that apply() continues to work with 'bigz'/'bigq' 391s > A <- matrix(2^as.bigz(1:12), 3,4) 391s > Aq <- as.bigq(A) 391s > mA <- as(A, "mpfr") # failed {as dim(A) is "double", not "integer"} 391s > (Qm <- A / (A^2 - 1)) # big rational matrix 391s Big Rational ('bigq') 3 x 4 matrix: 391s [,1] [,2] [,3] [,4] 391s [1,] 2/3 16/255 128/16383 1024/1048575 391s [2,] 4/15 32/1023 256/65535 2048/4194303 391s [3,] 8/63 64/4095 512/262143 4096/16777215 391s > MQ <- mpfr(Qm, precBits = 64) 391s > stopifnot(exprs = { 391s + mA == A 391s + mA == Aq 391s + is.bigq(Aq) 391s + mA == mpfr(A, precBits=16) 391s + mA == asNumeric(A) 391s + is.bigq(Qm) 391s + is(MQ, "mpfrMatrix") 391s + all.equal(Qm, MQ, tol = 1e-18) 391s + identical(dim(mA), dim(A)) 391s + identical(dim(mA), dim(Qm)) 391s + identical(asNumeric(apply(A, 1, min)), 391s + apply(asNumeric(A), 1, min)) 391s + identical(asNumeric(apply(A, 1, max)), 391s + apply(asNumeric(A), 1, max)) 391s + identical(asNumeric(apply(A, 2, max)), 391s + apply(asNumeric(A), 2, max)) 391s + identical(asNumeric(apply(A, 2, min)), 391s + apply(asNumeric(A), 2, min)) 391s + }) 391s Warning in getPrec(x) : 391s default precision for 'bigq' arbitrarily chosen as 128 391s > ## mA etc, failed up to Rmpfr 0.8-1; the apply() parts failed up to Rmpfr 0.6.0 391s > 391s > if(FALSE) ## Bug in gmp : apply(*, range) does *not* return matrix 391s + stopifnot( 391s + identical(asNumeric(apply(A, 1, range)), 391s + apply(asNumeric(A), 1, range)) 391s + ) 391s > 391s > if(FALSE) ## Bug in gmp : --- no mean method for bigz, just mean.bigq 391s + stopifnot( 391s + all.equal(asNumeric(apply(A, 1, mean)), 391s + apply(asNumeric(A), 1, mean)) 391s + , 391s + all.equal(asNumeric(apply(A, 2, mean)), 391s + apply(asNumeric(A), 2, mean)) 391s + ) 391s > 391s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 391s Time elapsed: 4.352 0.251 4.67 0.005 0.009 391s > if(!interactive()) warnings() 391s > 391s BEGIN TEST special-fun-ex.R 391s 391s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 391s Copyright (C) 2024 The R Foundation for Statistical Computing 391s Platform: aarch64-unknown-linux-gnu (64-bit) 391s 391s R is free software and comes with ABSOLUTELY NO WARRANTY. 391s You are welcome to redistribute it under certain conditions. 391s Type 'license()' or 'licence()' for distribution details. 391s 391s R is a collaborative project with many contributors. 391s Type 'contributors()' for more information and 391s 'citation()' on how to cite R or R packages in publications. 391s 391s Type 'demo()' for some demos, 'help()' for on-line help, or 391s 'help.start()' for an HTML browser interface to help. 391s Type 'q()' to quit R. 391s 392s > stopifnot(require("Rmpfr")) 392s Loading required package: Rmpfr 392s Loading required package: gmp 392s 392s Attaching package: ‘gmp’ 392s 392s The following objects are masked from ‘package:base’: 392s 392s %*%, apply, crossprod, matrix, tcrossprod 392s 393s C code of R package 'Rmpfr': GMP using 64 bits per limb 393s 393s 393s Attaching package: ‘Rmpfr’ 393s 393s The following object is masked from ‘package:gmp’: 393s 393s outer 393s 393s The following objects are masked from ‘package:stats’: 393s 393s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 393s 393s The following objects are masked from ‘package:base’: 393s 393s cbind, pmax, pmin, rbind 393s 393s > (doExtras <- Rmpfr:::doExtras()) 393s [1] FALSE 393s > options(nwarnings = 50000, width = 99) 393s > 393s > (do.pdf <- !dev.interactive(orNone = TRUE)) 393s [1] TRUE 393s > if(do.pdf) { 393s + pdf.options(width = 8.5, height = 6) # for all pdf plots 393s + pdf("special-fun.pdf") 393s + } 393s > 393s > 393s > ## to enhance |rel.Err| plots: {also in ~/R/Pkgs/DPQ/tests/pow-tst.R } 393s > drawEps.h <- function(p2 = -(53:51), side = 4, lty=3, lwd=2, col=adjustcolor(2, 1/2)) { 393s + abline(h = 2^p2, lty=lty, lwd=lwd, col=col) 393s + axis(side, las=2, line=-1, at = 2^p2, 393s + labels = as.expression(lapply(p2, function(p) substitute(2^E, list(E=p)))), 393s + col.axis = col, col=NA, col.ticks=NA) 393s + } 393s > mtextVersion <- function(adj = 1, col = 1) { 393s + mtext(osVersion, line=1, col=col, adj=adj) 393s + mtext(sfsmisc::shortRversion(spaces=FALSE), col=col, adj=adj) 393s + } 393s > 393s > all.eq.finite <- function(x,y, ...) { 393s + ## x = 'target' y = 'current' 393s + if(any(is.finite(y[!(fx <- is.finite(x))]))) 393s + return("current has finite values where target has not") 393s + if(any(is.finite(x[!(fy <- is.finite(y))]))) 393s + return("target has finite values where current has not") 393s + ## now they have finite values at the same locations 393s + all.equal(x[fx], y[fy], ...) 393s + } 393s > 393s > 393s > 393s > n <- 1000 393s > head(x <- mpfr(0:n, 100) / n) 393s 6 'mpfr' numbers of precision 100 bits 393s [1] 0 0.0010000000000000000000000000000008 393s [3] 0.0020000000000000000000000000000015 0.0030000000000000000000000000000007 393s [5] 0.004000000000000000000000000000003 0.0050000000000000000000000000000022 393s > 393s > stopifnot(exprs = { 393s + range(x) == 0:1 393s + all.equal(as.numeric(j0(x)), besselJ(as.numeric(x), 0), tol = 1e-14) 393s + all.equal(as.numeric(j1(x)), besselJ(as.numeric(x), 1), tol = 1e-14) 393s + all.equal(as.numeric(y0(x)), besselY(as.numeric(x), 0), tol = 1e-14) 393s + all.equal(as.numeric(y1(x)), besselY(as.numeric(x), 1), tol = 1e-14) 393s + }) 394s > 394s > ### pnorm() -> erf() : ---------------------------------------------------------- 394s > u <- 7*x - 2 394s > stopifnot(all.equal(pnorm(as.numeric(u)), 394s + as.numeric(pnorm(u)), tol = 1e-14)) 394s > ## systematic random input testing: 394s > set.seed(101) 394s > if(doExtras) { 394s + nSim <- 50 394s + n2 <- 100 394s + } else { 394s + nSim <- 10 394s + n2 <- 64 394s + } 394s > for(n in 1:nSim) { 394s + N <- rpois(1, lambda=n2) 394s + N3 <- N %/% 3 394s + x <- c(rnorm(N-N3), 10*rt(N3, df=1.25))# <- some large values 394s + m <- rnorm(N, sd = 1/32) 394s + s <- rlnorm(N, sd = 1/8) 394s + cEps <- .Machine$double.eps 394s + for(LOG in c(TRUE,FALSE)) 394s + for(L.T in c(TRUE,FALSE)) { 394s + p. <- pnorm( x, m=m,sd=s, log.p=LOG, lower.tail=L.T) 394s + stopifnot(all.equal(p., pnorm(mpfr(x, precBits= 48), m=m,sd=s, 394s + log.p=LOG, lower.tail=L.T), 394s + tol = 128 * cEps)) 394s + stopifnot(all.equal(p., pnorm(mpfr(x, precBits= 60), m=m,sd=s, 394s + log.p=LOG, lower.tail=L.T), 394s + tol = 2 * cEps)) 394s + } 394s + cat(".") 394s + };cat("\n") 400s .......... 400s > proc.time() 400s user system elapsed 400s 8.310 0.303 8.621 400s > 400s > ## Jerry Lewis - Aug 2, 2019 400s > ## Contrast the results of pnorm with double and mpfr inputs 400s > x <- c(1:9, 5*(2:9), 10*(5:20)) ; x <- c(-rev(x), 0, x) 400s > pdL <- pnorm(x, log.p=TRUE) 400s > pdU <- pnorm(x, log.p=TRUE, lower.tail=FALSE) 400s > stopifnot(exprs = { 400s + !is.unsorted(x) 400s + 35 %in% x 400s + x == -rev(x) # exactly 400s + pdL == rev(pdU) # even exactly, currently 400s + }) 400s > mx <- mpfr(x, precBits = 128) 400s > pmL <- pnorm(mx, log.p=TRUE) 400s > pmU <- pnorm(mx, log.p=TRUE, lower.tail=FALSE) 400s > stopifnot(exprs = { 400s + pmL < 0 # not true for 'pdL' which underflows 400s + pmL == rev(pmU) # even exactly, currently 400s + all.equal(pmL, pdL, tol=4e-16) # 'tol=0' shows 4.46e-17 400s + }) 400s > ## some explorations : 400s > dlp <- diff(log(-pmL))/diff(x) 400s > n <- length(x) 400s > x.1 <- (x[-1] + x[-n])/2 400s > plot(x.1, dlp, type="b", ylab = "d/dx log(-pnorm(., log=TRUE))"); mtextVersion() 400s > plot(x.1[-1], diff(dlp)/diff(x.1), type="b", ylab = "d^2/dx^2 log(-pnorm(., log=TRUE))") 400s > stopifnot(exprs = { 400s + -1 < (d2 <- diff(dlp)/diff(x.1)) 400s + d2 < 0 400s + diff(d2) < 0 400s + }) 400s > x.3 <- x.1[-c(1L,n-1L)] 400s > plot(x.3, -diff(d2)/ diff(x.1)[-1], type="o", log="y") 400s > 400s > 400s > 400s > 400s > ### Riemann's Zeta function: ---------------------------------------------------- 400s > 400s > ## -- integer arguments -- 400s > stopifnot(all(mpfrIs0(zeta(-2*(1:100))))) 400s > 400s > k.neg <- 2*(-100:0) - 1 400s > Z.neg <- zeta(k.neg) 400s > plot(k.neg, abs(as.numeric(Z.neg)), type = "l", log="y") 400s > 400s > Pi <- Const("pi", 128L) 400s > 400s > ## confirm published value of Euler's gamma to 100 digits 400s > pub.g <- 400s + paste("0.5772156649", "0153286060", "6512090082", "4024310421", "5933593992", 400s + "3598805767", "2348848677", "2677766467", "0936947063", "2917467495", 400s + sep="") 400s > 400s > ## almost = 400s > our.g <- Const("gamma", log2(10) * 100) # 100 digits 400s > (ff.g <- .mpfr2str(our.g)) 400s $str 400s [1] "57721566490153286060651209008240243104215933593992359880576723488486772677766467093694706329174674948" 400s 400s $exp 400s [1] 0 400s 400s $finite 400s [1] TRUE 400s 400s $is.0 400s [1] FALSE 400s 400s > 400s > 400s > M <- function(x) mpfr(x, 128L) 400s > stopifnot(all.equal(zeta( 0), -1/2, tol = 2^-100) 400s + , all.equal(zeta(-1), -1/M(12), tol = 2^-100) 400s + , all.equal(zeta(-3), 1/M(120), tol = 2^-100) 400s + ## positive ones : 400s + , all.equal(zeta(2), Pi^2/6, tol = 2^-100) 400s + , all.equal(zeta(4), Pi^4/90, tol = 2^-100) 400s + , all.equal(zeta(6), Pi^6/945, tol = 2^-100) 400s + ) 400s > 400s > ### Exponential Integral Ei(.) 400s > curve(Ei, 0,5, n=5001) 401s > if(mpfrVersion() >= "3") { ## only available since MPFR 3.0.0 401s + ### Airy function Ai(.) 401s + curve(Ai, -10, 5, n=5001); abline(h=0,v=0, col="gray", lty=3) 401s + } 401s > 401s > ### Utilities hypot(), atan2() : -------------------------------------------------------------- 401s > 401s > ## ======= TODO! ======== 401s > 401s > ## beta(), lbeta() 401s > ## --------------- 401s > ## The simplistic "slow" versions: 401s > B <- function(a,b) { a <- as(a, "mpfr"); b <- as(b, "mpfr"); gamma(a)*gamma(b) / gamma(a+b) } 401s > lB <- function(a,b) { a <- as(a, "mpfr"); b <- as(b, "mpfr"); lgamma(a)+lgamma(b) - lgamma(a+b) } 401s > 401s > ## For partly *integer* arguments 401s > Bi1 <- function(a,b) 1/(a*chooseMpfr(a+b-1, a)) # a must be integer >= 0 401s > Bi2 <- function(a,b) 1/(b*chooseMpfr(a+b-1, b)) # b must be integer >= 0 401s > 401s > x <- 1:10 + 0 ; (b10 <- mpfr(x, 128L)) 401s 10 'mpfr' numbers of precision 128 bits 402s [1] 1 2 3 4 5 6 7 8 9 10 402s > 402s > stopifnot(all.equal( B(1,b10), 1/x), 402s + all.equal( B(2,b10), 1/(x*(x+1))), 402s + all.equal( beta(1,b10), 1/x), 402s + all.equal( beta(2,b10), 1/(x*(x+1))), 402s + TRUE) 402s > 402s > if(do.pdf) { dev.off(); pdf("special-fun-beta.pdf") } 402s > 402s > 402s > x <- -10:10 + 0; X <- mpfr(x, 128L) 402s > stopifnot(exprs = { 402s + Bi1(1,X) == (B1x <- Bi2(X,1)) 402s + Bi1(2,X) == (B2x <- Bi2(X,2)) 402s + Bi1(3,X) == (B3x <- Bi2(X,3)) 402s + all.equal(B1x, 1/x, tol= 4e-16) 402s + all.equal(B2x, 1/(x*(x+1)), tol= 8e-16) 402s + all.equal(B3x, 2/(x*(x+1)*(x+2)), tol=16e-16) 402s + ## these the "poles" are all odd i.e. result in { +Inf / -Inf / NaN} 402s + ## are all "ok" {e.g. 1/(x*(x+1)) gives (-Inf, Inf) for x = -1:0 } 402s + all.eq.finite(beta(1,X), 1/x) 402s + all.eq.finite(beta(X,2), 1/(x*(x+1))) 402s + all.eq.finite(beta(3,X), 2/(x*(x+1)*(x+2)), tol=16e-16) 402s + }) 402s > 402s > ## (a,b) *both* integer, one negative: 402s > for(i in (-20):(-1)) { 402s + cat(i,":\n") 402s + a <- mpfr(i, 99) 402s + i1 <- i+1 402s + b. <- seq_len(-i1) 402s + Bab <- beta(a, b.) 402s + stopifnot(is.nan(beta(a, (i1:0))), is.nan(lbeta(a, (i1:0))), 402s + all.equal(Bab, Bi2(a, b.), tol=1e-20), 402s + all.equal(lbeta(a, b.), log(abs(Bab)), tol=1e-20), allow.logical0 = TRUE) 402s + } 402s -20 : 402s -19 : 402s -18 : 402s -17 : 402s -16 : 402s -15 : 402s -14 : 402s -13 : 402s -12 : 403s -11 : 403s -10 : 403s -9 : 403s -8 : 403s -7 : 403s -6 : 403s -5 : 403s -4 : 403s -3 : 403s -2 : 403s -1 : 403s > 403s > ## (a,b) all positive 403s > c10 <- b10 + 0.25 403s > for(a in c(0.1, 1, 1.5, 2, 20)) { 403s + stopifnot(all.equal( B(a,b10), (bb <- beta(a, b10))), 403s + all.equal(lB(a,b10), (lb <- lbeta(a, b10))), all.equal(lb, log(bb)), 403s + all.equal( B(a,c10), (bb <- beta(a, c10))), 403s + all.equal(lB(a,c10), (lb <- lbeta(a, c10))), all.equal(lb, log(bb)), 403s + TRUE) 403s + } 404s > 404s > ## However, the speedup is *not* much (50%) when applied to vectors: 404s > stopifnot(validObject(xx <- outer(b10, runif(20))), 404s + dim(xx) == c(length(b10), 20), 404s + validObject(vx <- as(xx, "mpfr")), class(vx) == "mpfr", is.null(dim(vx))) 404s > C1 <- replicate(10, system.time(bb <<- beta(vx, vx+2))) 406s > C2 <- replicate(10, system.time(b2 <<- B(vx, vx+2))) 408s > summary(1000*C1[1,]) ## 80.3 {cmath-5, 2009} 408s Min. 1st Qu. Median Mean 3rd Qu. Max. 408s 49.00 49.25 51.00 52.70 55.00 60.00 408s > summary(1000*C2[1,]) ## 125.1 { " } 408s Min. 1st Qu. Median Mean 3rd Qu. Max. 408s 71.0 71.0 71.5 72.3 72.0 79.0 408s > stopifnot(all.equal(bb, b2)) 408s > ## and for a single number, the speedup is a factor 3: 408s > x1 <- vx[1]; x2 <- x1+2 408s > system.time(for(i in 1:100) bb <- beta(x1, x2))# .27 409s user system elapsed 409s 0.224 0.000 0.225 409s > system.time(for(i in 1:100) b2 <- B(x1, x2))# .83 410s user system elapsed 410s 0.644 0.000 0.645 410s > 410s > ## a+b is integer <= 0, but a and b are not integer: 410s > a <- b <- .5 + -10:10 410s > ab <- data.matrix(expand.grid(a=a, b=b, KEEP.OUT.ATTRS=FALSE)) 410s > ab <- mpfr(ab[rowSums(ab) <= 0, ], precBits = 128) 410s > stopifnot( beta(ab[,"a"], ab[,"b"]) == 0, 410s + lbeta(ab[,"a"], ab[,"b"]) == -Inf) 410s > ## was NaN in Rmpfr <= 0.5-2 410s > 410s > stopifnot(all.equal(6 * beta(mpfr(1:3,99), -3.), c(-2,1,-2), tol=1e-20)) 410s > ## add more checks, notably for b (> 0) above and below the "large_b" in 410s > ## ../src/utils.c : 410s > bb <- beta(mpfr(1:23, 128), -23) 410s > stopifnot(all.equal(bb, Bi1(1:23, -23), tol=1e-7)) 410s > # Bi1() does not get high prec for small b 410s > ## can be written via rationals: N / D : 410s > bn <- c(330, -360, 468, -728, 1365, -3120, 8840, -31824, 410s + 151164, -1007760, 10581480, -232792560) 410s > bn <- c(rev(bn[-1]), bn) 410s > bd <- 24* as.bigz(2 * 3 * 5 * 7 * 11) * 13 * 17 * 19 * 23 410s > stopifnot(all.equal(bb, as(bn/bd,"mpfr"), tol=0)) 410s > 410s > stopifnot(all.equal(6 * beta(mpfr(1:3, 99), -3.), 410s + c(-2,1,-2), tol=1e-20), 410s + all.equal( lbeta(mpfr(1:3, 128), -3.), 410s + log(mpfr(c( 2,1, 2), 128) / 6), tol=1e-20)) 410s > 410s > ## add more checks, notably for b (> 0) above and below the "large_b" in 410s > ## ../src/utils.c : 410s > bb <- beta(mpfr(1:23, 128), -23) 410s > stopifnot(all.equal(bb, Bi1(1:23, -23), tol=1e-7)) 410s > # Bi1() does not get high prec for small b 410s > ## can be written via rationals: N / D : 410s > bn <- c(330, -360, 468, -728, 1365, -3120, 8840, -31824, 410s + 151164, -1007760, 10581480, -232792560) 410s > bn <- c(rev(bn[-1]), bn) 410s > bd <- 24* as.bigz(2 * 3 * 5 * 7 * 11) * 13 * 17 * 19 * 23 410s > stopifnot(all.equal(bb, as(bn/bd,"mpfr"), tol=0)) 410s > 410s > ## 2) add check for 'b' > maximal unsigned int {so C code uses different branch} 410s > two <- mpfr(2, 128) 410s > for(b in list(mpfr(9, 128), mpfr(5, 128)^10, two^25, two^26, two^100)) { 410s + a <- -(b+ (1:7)) 410s + stopifnot(a+b == -(1:7), # just ensuring that there was no cancellation 410s + is.finite( B <- beta(a,b)), ## was NaN .. 410s + is.finite(lB <- lbeta(a,b)), ## ditto 410s + all.equal(log(abs(B)), lB), 410s + TRUE) 410s + } 410s > 410s > ee <- c(10:145, 5*(30:59), 10*(30:39), 25*(16:30)) 410s > b <- mpfr(2, precBits = 10 + max(ee))^ee # enough precision {now "automatic"} 410s > stopifnot((b+4)-b == 4, # <==> enough precision above 410s + b == (b. <- as(as(b,"bigz"),"mpfr"))) 410s > (pp <- getPrec(b.))# shows why b. is not *identical* to b. 410s [1] 12 12 16 16 16 16 20 20 20 20 24 24 24 24 28 28 28 28 32 32 32 32 36 410s [24] 36 36 36 40 40 40 40 44 44 44 44 48 48 48 48 52 52 52 52 56 56 56 56 410s [47] 60 60 60 60 64 64 64 64 68 68 68 68 72 72 72 72 76 76 76 76 80 80 80 410s [70] 80 84 84 84 84 88 88 88 88 92 92 92 92 96 96 96 96 100 100 100 100 104 104 410s [93] 104 104 108 108 108 108 112 112 112 112 116 116 116 116 120 120 120 120 124 124 124 124 128 410s [116] 128 128 128 132 132 132 132 136 136 136 136 140 140 140 140 144 144 144 144 148 148 152 156 410s [139] 164 168 172 176 184 188 192 196 204 208 212 216 224 228 232 236 244 248 252 256 264 268 272 410s [162] 276 284 288 292 296 304 312 324 332 344 352 364 372 384 392 404 428 452 476 504 528 552 576 410s [185] 604 628 652 676 704 728 752 410s > system.time(Bb <- beta(-b-4, b))# 0.334 sec 410s user system elapsed 410s 0.141 0.000 0.142 410s > if(dev.interactive()) 410s + plot(ee, asNumeric(log(Bb)), type="o",col=2) 410s > lb <- asNumeric(log(Bb)) 410s > ## using coef(lm(lb ~ ee)) 410s > stopifnot(all.equal(lb, 3.175933 -3.46571851*ee, tol = 1e-5))# 4.254666 e-6 410s > 410s > 410s > bb <- beta( 1:4, mpfr(2,99)) 410s > stopifnot(identical(bb, beta(mpfr(2,99), 1:4)), 410s + all.equal((2*bb)*cumsum(1:4), rep(1, 4), tol=1e-20), 410s + getPrec(bb) == 128) 410s > 410s > 410s > ##-- The d*() density functions from ../R/special-fun.R | ../man/distr-etc.Rd --- 410s > 410s > if(do.pdf) { dev.off(); pdf("special-fun-density.pdf") } 410s > 410s > dx <- 1400+ 0:10 410s > mx <- mpfr(dx, 120) 410s > nx <- sort(c(c(-32:32)/2, 50*(-8:8))) 410s > 410s > xL <- 2^(989+(0:139)/4) # "close" to double.xmax 410s > dnbD <- dnbinom(xL, prob=1-1/4096, size=1e307, log=TRUE)# R's own 410s > iF <- -(130:140) # index of finite dnbD[] 410s > dnbx8 <- dnbinom(xL, prob=1-mpfr(2, 2^ 8)^-12, size=1e307, log=TRUE) 410s > dnbx10 <- dnbinom(xL, prob=1-mpfr(2, 2^10)^-12, size=1e307, log=TRUE) 410s > dnbx13 <- dnbinom(xL, prob=1-mpfr(2, 2^13)^-12, size=1e307, log=TRUE) 411s > 411s > stopifnot(exprs = { 411s + all.equal(dpois(dx, 1000), dpois(mx, 1000), tol = 3e-13) # 64b Lnx: 7.369e-14 411s + all.equal(dbinom(0:16, 16, pr = 4 / 5), 411s + dbinom(0:16, 16, pr = 4/mpfr(5, 128)) -> db, tol = 5e-15)# 64b Lnx: 4.3e-16 411s + all.equal(dnorm( -3:3, m=10, s=1/4), 411s + dnorm(mpfr(-3:3, 128), m=10, s=1/4), tol = 1e-15) # 64b Lnx: 6.45e-17 411s + all.equal(dnorm(nx), dnorm(mpfr(nx, 99)), tol = 1e-15) 411s + all.equal(dnorm( nx, m = 4, s = 1/4), 411s + dnorm(mpfr(nx, 99), m = 4, s = 1/4), tol = 1e-15) 411s + all.equal(dnorm( nx, m = -10, s = 1/4, log=TRUE), 411s + dnorm(mpfr(nx, 99), m = -10, s = 1/4, log=TRUE), tol = 1e-15) 411s + ## t-distrib. : 411s + all.equal(dt(nx, df=3), dt(mpfr(nx, 99), df=3), tol = 1e-15) 411s + all.equal(dt( nx, df = 0.75), 411s + dt(mpfr(nx, 99), df = 0.75), tol = 1e-15) 411s + all.equal(dt( nx, df = 2.5, log=TRUE), 411s + dt(mpfr(nx, 99), df = 2.5, log=TRUE), tol = 1e-15) 411s + ## negative binomial dnbinom(): 411s + all.equal(dnbx13, dnbx10, tol = 2^-999) # see 2^-1007, but not 2^-1008 411s + all.equal(dnbx13, dnbx8, tol = 2^-238) # see 2^-239, but not 2^-240 411s + all.equal(dnbx10[iF], dnbD[iF], tol = 6e-16) # R's *is* accurate here (seen 2.9e-16) 411s + }) 412s > 412s > 412s > ## plot dt() "error" of R's implementation 412s > nx <- seq(-100, 100, by=1/8) 412s > dtd <- dt( nx, df= .75) 412s > dtM <- dt(mpfr(nx, 256), df= .75) 413s > if(doExtras) withAutoprint({ 413s + system.time( 413s + dtMx <- dt(mpfr(nx, 2048), df= .75) ) # 2.5 sec 413s + stopifnot(all.equal(dtMx, dtM, tol = 2^-254)) # almost all of dtM's 256 bits are correct 413s + }) 413s > relE <- asNumeric(dtd/dtM - 1) 413s > plot(relE ~ nx, type="l", col=2); mtextVersion() 413s > plot(abs(relE) ~ nx, type="l", col=2, log="y", ylim=c(5e-17, 1.5e-15)) 413s > 413s > ## ============== even smaller 'df' such that lgamma1p(df) is better than lgamma(1+df) ==== 413s > 413s > require(sfsmisc)# -> eaxis(); relErrV() 413s Loading required package: sfsmisc 413s 413s Attaching package: ‘sfsmisc’ 413s 413s The following objects are masked from ‘package:gmp’: 413s 413s factorize, is.whole 413s 413s > 413s > u <- sort(outer(10^-(20:1), c(1,2,5))) # *not* "exact" on purpose 413s > ## .. unfinished .. exploring *when* dt() would suffer from inaccurate stirlerr() -- would it? 413s > 413s > nu <- 2^-(70:1) 413s > dt10 <- dt( 10, df=nu) 413s > dt10M <- dt(mpfr(10, 1024), df=nu) 414s > re10 <- asNumeric(relErrV(dt10M, dt10)) 414s > 414s > plot(re10 ~ nu, type="l", lwd=2, log="x", main = quote(rel.Err( dt(10, df==nu) )), 414s + xaxt="n"); eaxis(1, nintLog=20) 414s > mtextVersion() 414s > abline(h = (-1:1)*2^-53, lty=4, col=adjustcolor("blue", 1/2)) 414s > 414s > plot(abs(re10) ~ nu, type="l", lwd=2, log="xy", 414s + xlab = quote(df == nu), ylab = quote(abs(relE)), 414s + main = quote(abs(rel.Err( dt(10, df==nu) ))), xaxt="n", yaxt="n") 414s > eaxis(1, nintLog=20); eaxis(2); drawEps.h() 414s > 414s > x0 <- c(0, 10^(-5:10)) # only >= 0 should be sufficient; x0 <- c(-rev(x0),0,x0) 414s > stopifnot(!is.unsorted(nu), # just for plotting .. 414s + !is.unsorted(x0)) 414s > xnu <- expand.grid(x=x0, df=nu) 414s > dt2 <- with(xnu, dt( x, df=df)) 414s > dtM2 <- with(xnu, dt(mpfr(x, 512), df=df)) 415s > str(relE2 <- `attributes<-`(asNumeric(relErrV(dtM2, dt2)), 415s + attr(xnu, "out.attrs"))) 415s num [1:17, 1:70] 1.78e-15 1.08e-15 1.11e-15 7.85e-16 1.73e-15 ... 415s - attr(*, "dimnames")=List of 2 415s ..$ x : chr [1:17] "x=0e+00" "x=1e-05" "x=1e-04" "x=1e-03" ... 415s ..$ df: chr [1:70] "df=8.470329e-22" "df=1.694066e-21" "df=3.388132e-21" "df=6.776264e-21" ... 415s > 415s > ## consistency check that with() etc was fine: 415s > stopifnot(identical(re10, unname(relE2[which(x0 == 10), ]))) 415s > 415s > filled.contour(x=log10(1e-7+x0), y=log10(nu), z = relE2) 415s > filled.contour(x=log10(1e-7+x0), y=log10(nu), z = abs(relE2)) 415s > ## around nu = 10^-16 is the most critical place 415s > 415s > (pch <- c(1L:9L, 0L, letters, LETTERS)[1:ncol(relE2)]) 415s [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" 415s [24] "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" 415s [47] "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" NA NA NA NA NA NA NA 415s [70] NA 415s > 415s > matplot(x0+1e-7, relE2, type="b", log="x", main="rel.err{ dt(x, df=df) }") 416s Warning message: 416s In matplot(x0 + 1e-07, relE2, type = "b", log = "x", main = "rel.err{ dt(x, df=df) }") : 416s default 'pch' is smaller than number of columns and hence recycled 416s > legend("topright", legend = paste0("df=",formatC(nu,wid=3)), ncol=7, 416s + bty="n", lwd=1, pch=pch, col=1:6, lty=1:5, cex = 0.8) 416s > abline(h = c(-4:4)*2^-53, lty=3, col="gray") 416s > 416s > matplot(nu, t(relE2), type="b", log="x", main="rel.err{ dt(x, df=df) }") 416s > legend("topright", legend = paste0("x=",formatC(x0,wid=3)), ncol=7, 416s + bty="n", lwd=1, pch=pch, col=1:6, lty=1:5, cex = 0.8) 416s > abline(h = c(-4:4)*2^-53, lty=3, col="gray") 416s > 416s > matplot(nu, pmax(abs(t(relE2)), 1e-19), type="b", log="xy", axes=FALSE, ylab = quote(abs("rel Err")), 416s + ylim = c(7e-17, max(abs(relE2))), main="|rel.err{ dt(x, df=df)}|") 416s > eaxis(1, nintLog=22) ; eaxis(2, line=-1/2); drawEps.h() 416s > legend("topright", legend = paste0("x=",formatC(x0,wid=3)), ncol=7, 416s + bty="n", lwd=1, pch=pch, col=1:6, lty=1:5, cex = 0.8) 416s > 416s > 416s > 1 416s [1] 1 416s > ## dnbinom() -- has mode as expected, but with huge size, the scales are "off reality" .. 416s > 416s > ### ..... TODO ! 416s > 416s > ### dgamma(): ---------------------------------------------------- 416s > if(do.pdf) { dev.off(); pdf("special-fun-dgamma.pdf") } 416s > 416s > xe <- c(-2e5, -1e5, -2e4, -1e4, -2000, -1000, -500, -200, -100, -50, -20, -10) 416s > (xe <- c(xe, -8:8, -rev(xe))) 416s [1] -2e+05 -1e+05 -2e+04 -1e+04 -2e+03 -1e+03 -5e+02 -2e+02 -1e+02 -5e+01 -2e+01 -1e+01 -8e+00 416s [14] -7e+00 -6e+00 -5e+00 -4e+00 -3e+00 -2e+00 -1e+00 0e+00 1e+00 2e+00 3e+00 4e+00 5e+00 416s [27] 6e+00 7e+00 8e+00 1e+01 2e+01 5e+01 1e+02 2e+02 5e+02 1e+03 2e+03 1e+04 2e+04 416s [40] 1e+05 2e+05 416s > two <- mpfr(2, 64) 416s > ## For centering at E[.], will use xP(x, shp) : 416s > xP <- function(x, d) x - d*(x > d) 416s > aEQformat <- function(xy, ...) format(xy, digits = 7, ...) 416s > allEQ_0 <- function (target, current, ...) 416s + all.equal(target, current, tolerance = 0, formatFUN = aEQformat, ...) 416s > stopIfNot <- 416s + if("allow.logical0" %in% names(formals(stopifnot))) { # experimental (MM only) 416s + stopifnot 416s + } else function(exprs, allow.logical0) stopifnot(exprs=exprs) 416s > 416s > for(shp in c(2^c(-20, -3, -1:1, 4, 10, 50))) { 416s + cat("shape = 2^", log2(shp), ":\n-------------\n") 416s + d.dg <- dgamma(xP(2 ^ xe, shp), shape=shp) 416s + m.dg <- dgamma(xP(two^xe, shp), shape=shp) 416s + m.ldg <- dgamma(xP(two^xe, shp), shape=shp, log=TRUE) 416s + stopIfNot(exprs = { 416s + !is.unsorted(xe) 416s + is.finite(m.dg) 416s + m.dg >= 0 416s + shp > 1 || all(diff(m.dg) <= 0) 416s + shp > 100|| all((m.dg > 0) >= (d.dg > 0)) 416s + any(fin.d <- is.finite(d.dg)) 416s + m.dg[!fin.d] > 1e300 416s + { cat("all.EQ(, ):", allEQ_0(m.dg[fin.d], d.dg[fin.d]), "\n") 416s + shp > 100 || all.equal(m.dg[fin.d], d.dg[fin.d], 416s + tol = 1e-13) # 2.063241e-14 416s + } 416s + ## compare with log scale : 416s + if(any(pos.d <- m.dg > 0)) { 416s + cat("all.EQ(log(d), d*(log)):", 416s + allEQ_0 (log(m.dg[pos.d]), m.ldg[pos.d]),"\n") 416s + all.equal(log(m.dg[pos.d]), m.ldg[pos.d], tol = 1e-14) 416s + } 416s + }, allow.logical0 = TRUE) 416s + } 416s shape = 2^ -20 : 416s ------------- 416s all.EQ(, ): Mean relative difference: 5.766884e-16 416s all.EQ(log(d), d*(log)): Mean relative difference: 4.826256e-16 416s shape = 2^ -3 : 416s ------------- 416s all.EQ(, ): Mean relative difference: 1.723515e-16 416s all.EQ(log(d), d*(log)): Mean relative difference: 8.342404e-20 416s shape = 2^ -1 : 416s ------------- 416s all.EQ(, ): Mean relative difference: 2.536642e-17 416s all.EQ(log(d), d*(log)): Mean relative difference: 7.917217e-20 416s shape = 2^ 0 : 416s ------------- 416s all.EQ(, ): Mean relative difference: 2.432573e-17 416s all.EQ(log(d), d*(log)): Mean relative difference: 1.509670e-19 416s shape = 2^ 1 : 416s ------------- 417s all.EQ(, ): Mean relative difference: 1.133389e-16 417s all.EQ(log(d), d*(log)): TRUE 417s shape = 2^ 4 : 417s ------------- 417s all.EQ(, ): Mean relative difference: 1.911332e-16 417s all.EQ(log(d), d*(log)): TRUE 417s shape = 2^ 10 : 417s ------------- 417s all.EQ(, ): Mean relative difference: 5.728002e-17 417s all.EQ(log(d), d*(log)): TRUE 417s shape = 2^ 50 : 417s ------------- 417s all.EQ(, ): Mean relative difference: 0.001523136 417s all.EQ(log(d), d*(log)): TRUE 417s > 417s > cat('Time elapsed: ', proc.time(),'\n') # "stats" 417s Time elapsed: 25.36 0.39 25.942 0 0.016 417s > if(!interactive()) warnings() 417s Warning message: 417s In matplot(x0 + 1e-07, relE2, type = "b", log = "x", main = "rel.err{ dt(x, df=df) }") : 417s default 'pch' is smaller than number of columns and hence recycled 417s > 417s BEGIN TEST tstHexBin.R 417s 417s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 417s Copyright (C) 2024 The R Foundation for Statistical Computing 417s Platform: aarch64-unknown-linux-gnu (64-bit) 417s 417s R is free software and comes with ABSOLUTELY NO WARRANTY. 417s You are welcome to redistribute it under certain conditions. 417s Type 'license()' or 'licence()' for distribution details. 417s 417s R is a collaborative project with many contributors. 417s Type 'contributors()' for more information and 417s 'citation()' on how to cite R or R packages in publications. 417s 417s Type 'demo()' for some demos, 'help()' for on-line help, or 417s 'help.start()' for an HTML browser interface to help. 417s Type 'q()' to quit R. 417s 418s > Loading required package: Rmpfr 418s require(Rmpfr) 418s Loading required package: gmp 418s 418s Attaching package: ‘gmp’ 418s 418s The following objects are masked from ‘package:base’: 418s 418s %*%, apply, crossprod, matrix, tcrossprod 418s 419s C code of R package 'Rmpfr': GMP using 64 bits per limb 419s 419s 419s Attaching package: ‘Rmpfr’ 419s 419s The following object is masked from ‘package:gmp’: 419s 419s outer 419s 419s The following objects are masked from ‘package:stats’: 419s 419s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 419s 419s The following objects are masked from ‘package:base’: 419s 419s cbind, pmax, pmin, rbind 419s 419s > sessionInfo() 419s R version 4.3.3 (2024-02-29) 419s Platform: aarch64-unknown-linux-gnu (64-bit) 419s Running under: Ubuntu Noble Numbat (development branch) 419s 419s Matrix products: default 419s BLAS: /usr/lib/aarch64-linux-gnu/blas/libblas.so.3.12.0 419s LAPACK: /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3.12.0 419s 419s locale: 419s [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 419s [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 419s [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C 419s [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C 419s 419s time zone: Etc/UTC 419s tzcode source: system (glibc) 419s 419s attached base packages: 419s [1] stats graphics grDevices utils datasets methods base 419s 419s other attached packages: 419s [1] Rmpfr_0.9-5 gmp_0.7-4 419s 419s loaded via a namespace (and not attached): 419s [1] compiler_4.3.3 419s > 419s > nums <- c(0, .625, .1, .3, .3125, .5, .6, (.3+.6), .9, 1, 3.3125) 419s > nums9 <- mpfr(nums, precBits = 9) 419s > 419s > n5.b2 <- mpfr("101", base=2) 419s > stopifnot(identical(n5.b2, mpfr(5, precBits=3)), 419s + identical(n5.b2, mpfr("0b101", base=2))) 419s > if(FALSE)## 0b101 could also be a Hex number with no initial '0x' -- hence NOT true: 419s + identical(n5.b2, mpfr("0b101")) 419s > ## We *could* say that anything starting with '0b' is binary, anything with '0x' is hexadecimal 419s > 419s > 419s > ### mpfr_Bcharacter() {no longer method} [was 'mpfrBchar', was 'scanBin'] : 419s > 419s > ##' Check the inverse of formatBin(), i.e., mpfr() working correctly 419s > chkInv.fBin <- function(x, ...) { 419s + stopifnot(is(x, "mpfr")) 419s + nb <- formatBin(x, ...) 419s + xx <- mpfr(nb) 419s + ## Inverse should work {apart from 0: that is not uniquely represented in MPFR!} 419s + stopifnot(identical(mpfrIs0(x ) -> i0, 419s + mpfrIs0(xx)), 419s + identical(x[!i0], xx[!i0])) 419s + invisible(nb) 419s + } 419s > (nums9bc <- chkInv.fBin(nums9)) 419s [1] +0b0.00000000p+0 +0b1.01000000p-1 +0b1.10011010p-4 +0b1.00110011p-2 419s [5] +0b1.01000000p-2 +0b1.00000000p-1 +0b1.00110011p-1 +0b1.11001101p-1 419s [9] +0b1.11001101p-1 +0b1.00000000p+0 +0b1.10101000p+1 419s > (nums9bF <- chkInv.fBin(nums9, scientific=FALSE)) # "F": Fixed format (as in Fortran) 419s [1] +0b_0.00000000____ +0b__.101000000___ +0b__.___110011010 +0b__._100110011__ 419s [5] +0b__._101000000__ +0b__.100000000___ +0b__.100110011___ +0b__.111001101___ 419s [9] +0b__.111001101___ +0b_1.00000000____ +0b11.0101000_____ 419s > 419s > ## higher precision, 0,Inf, sign change: 419s > (i12 <- 1 / mpfr(c(-2:12, Inf), 64)) 419s 16 'mpfr' numbers of precision 64 bits 419s [1] -0.5 -1 Inf 419s [4] 1 0.5 0.333333333333333333342 419s [7] 0.25 0.200000000000000000003 0.166666666666666666671 419s [10] 0.142857142857142857141 0.125 0.11111111111111111111 419s [13] 0.100000000000000000001 0.0909090909090909090934 0.0833333333333333333356 419s [16] 0 419s > (i12.50 <- roundMpfr(i12, precBits=50)) # "same", with 50 (< 53) bits 419s 16 'mpfr' numbers of precision 50 bits 420s [1] -0.5 -1 Inf 420s [4] 1 0.5 0.33333333333333348 420s [7] 0.25 0.19999999999999996 0.16666666666666674 420s [10] 0.14285714285714279 0.125 0.11111111111111116 420s [13] 0.099999999999999978 0.090909090909090939 0.08333333333333337 420s [16] 0 420s > try({ ## FIXME -- formatBin() bug -- fails for 'Inf' ! 420s + (nI.12 <- chkInv.fBin(i12 )) 420s + (nI.12.50 <- chkInv.fBin(i12.50)) 420s + }) 420s [1] -0b1.0000000000000000000000000000000000000000000000000p-1 420s [2] -0b1.0000000000000000000000000000000000000000000000000p+0 420s [3] Inf 420s [4] +0b1.0000000000000000000000000000000000000000000000000p+0 420s [5] +0b1.0000000000000000000000000000000000000000000000000p-1 420s [6] +0b1.0101010101010101010101010101010101010101010101011p-2 420s [7] +0b1.0000000000000000000000000000000000000000000000000p-2 420s [8] +0b1.1001100110011001100110011001100110011001100110011p-3 420s [9] +0b1.0101010101010101010101010101010101010101010101011p-3 420s [10] +0b1.0010010010010010010010010010010010010010010010010p-3 420s [11] +0b1.0000000000000000000000000000000000000000000000000p-3 420s [12] +0b1.1100011100011100011100011100011100011100011100100p-4 420s [13] +0b1.1001100110011001100110011001100110011001100110011p-4 420s [14] +0b1.0111010001011101000101110100010111010001011101001p-4 420s [15] +0b1.0101010101010101010101010101010101010101010101011p-4 420s [16] +0b0.0000000000000000000000000000000000000000000000000p+0 420s > ii <- mpfr(c(-Inf, 17, Inf), 7) 420s > formatHex(ii) ## fine 420s [1] -Inf +0x1.10p+4 Inf 420s > formatDec(ii) ## not 100% ok, as it has "." [FIXME ?] 420s [1] -Inf 17.00 Inf 420s > 420s > n9. <- Rmpfr:::mpfr.Ncharacter(nums9bc) 420s > n9_ <- mpfr(nums9bc) 420s > ## Inverse worked {apart from 0: it is not at all uniquely represented in MPFR!} 420s > stopifnot(identical(mpfrIs0(n9.), mpfrIs0(n9_)), 420s + all.equal(n9_, n9., tolerance=0), 420s + identical(nums9[-1], n9.[-1])) 420s > 420s > mpfr(nums9bc, precBits=5) 420s 11 'mpfr' numbers of precision 5 bits 420s [1] 0 0.625 0.102 0.297 0.312 0.5 0.594 0.906 0.906 1 3.25 420s > 420s > (n9.5 <- mpfr(nums9bF, scientific=FALSE, precBits=5)) 420s 11 'mpfr' numbers of precision 5 bits 420s [1] 0 0.625 0.102 0.297 0.312 0.5 0.594 0.906 0.906 1 3.25 420s > stopifnot(all.equal(n9.5, mpfr(nums9bF, precBits=5), tol=0)) 420s > stopifnot(all.equal(n9., n9.5, tol = 0.02), getPrec(n9.5) == 5) 420s > mpfr(nums9bF, scientific=FALSE) 420s 11 'mpfr' numbers of precision 9 bits 420s [1] 0 0.625 0.1001 0.2998 0.3125 0.5 0.5996 0.9004 0.9004 1 420s [11] 3.312 420s > mpfr(nums9bF) 420s 11 'mpfr' numbers of precision 9 bits 420s [1] 0 0.625 0.1001 0.2998 0.3125 0.5 0.5996 0.9004 0.9004 1 420s [11] 3.312 420s > 420s > ### mpfr() -> mpfrHchar (was 'scanHex') : 420s > nums9hc <- formatHex(nums9) 420s > stopifnot(all.equal(n9., mpfr(nums9hc), tol = 0), 420s + all.equal(n9.5, mpfr(nums9hc, precBits=5), tol = 0)) 420s > 420s > ### Rest from ../R/formatHex.R -- heavily modified 420s > 420s > (m32 <- matrix(0:31, 8, 4, dimnames = list(0:7, c(0,8,16,24)))) 420s 0 8 16 24 420s 0 0 8 16 24 420s 1 1 9 17 25 420s 2 2 10 18 26 420s 3 3 11 19 27 420s 4 4 12 20 28 420s 5 5 13 21 29 420s 6 6 14 22 30 420s 7 7 15 23 31 420s > FourBits <- mpfr(m32, precBits=4) 420s > FiveBits <- mpfr(m32, precBits=5) 420s > stopifnot(all.equal(m32, asNumeric(FiveBits), tol=0), 420s + all.equal(m32, asNumeric(FourBits), tol= 0.05)) 420s > 420s > ## HH:::formatHexInternal(FourBits) 420s > formatHex(FourBits) 420s 0 8 16 24 420s 0 +0x0.0p+0 +0x1.0p+3 +0x1.0p+4 +0x1.8p+4 420s 1 +0x1.0p+0 +0x1.2p+3 +0x1.0p+4 +0x1.8p+4 420s 2 +0x1.0p+1 +0x1.4p+3 +0x1.2p+4 +0x1.ap+4 420s 3 +0x1.8p+1 +0x1.6p+3 +0x1.4p+4 +0x1.cp+4 420s 4 +0x1.0p+2 +0x1.8p+3 +0x1.4p+4 +0x1.cp+4 420s 5 +0x1.4p+2 +0x1.ap+3 +0x1.4p+4 +0x1.cp+4 420s 6 +0x1.8p+2 +0x1.cp+3 +0x1.6p+4 +0x1.ep+4 420s 7 +0x1.cp+2 +0x1.ep+3 +0x1.8p+4 +0x1.0p+5 420s > formatHex(FourBits, precBits=5) 420s 0 8 16 24 420s 0 +0x0.0p+0 +0x1.0p+3 +0x1.0p+4 +0x1.8p+4 420s 1 +0x1.0p+0 +0x1.2p+3 +0x1.0p+4 +0x1.8p+4 420s 2 +0x1.0p+1 +0x1.4p+3 +0x1.2p+4 +0x1.ap+4 420s 3 +0x1.8p+1 +0x1.6p+3 +0x1.4p+4 +0x1.cp+4 420s 4 +0x1.0p+2 +0x1.8p+3 +0x1.4p+4 +0x1.cp+4 420s 5 +0x1.4p+2 +0x1.ap+3 +0x1.4p+4 +0x1.cp+4 420s 6 +0x1.8p+2 +0x1.cp+3 +0x1.6p+4 +0x1.ep+4 420s 7 +0x1.cp+2 +0x1.ep+3 +0x1.8p+4 +0x1.0p+5 420s > formatHex(FourBits, precBits=6) 420s 0 8 16 24 420s 0 +0x0.00p+0 +0x1.00p+3 +0x1.00p+4 +0x1.80p+4 420s 1 +0x1.00p+0 +0x1.20p+3 +0x1.00p+4 +0x1.80p+4 420s 2 +0x1.00p+1 +0x1.40p+3 +0x1.20p+4 +0x1.a0p+4 420s 3 +0x1.80p+1 +0x1.60p+3 +0x1.40p+4 +0x1.c0p+4 420s 4 +0x1.00p+2 +0x1.80p+3 +0x1.40p+4 +0x1.c0p+4 420s 5 +0x1.40p+2 +0x1.a0p+3 +0x1.40p+4 +0x1.c0p+4 420s 6 +0x1.80p+2 +0x1.c0p+3 +0x1.60p+4 +0x1.e0p+4 420s 7 +0x1.c0p+2 +0x1.e0p+3 +0x1.80p+4 +0x1.00p+5 420s > formatBin(FourBits) 420s 0 8 16 24 420s 0 +0b0.000p+0 +0b1.000p+3 +0b1.000p+4 +0b1.100p+4 420s 1 +0b1.000p+0 +0b1.001p+3 +0b1.000p+4 +0b1.100p+4 420s 2 +0b1.000p+1 +0b1.010p+3 +0b1.001p+4 +0b1.101p+4 420s 3 +0b1.100p+1 +0b1.011p+3 +0b1.010p+4 +0b1.110p+4 420s 4 +0b1.000p+2 +0b1.100p+3 +0b1.010p+4 +0b1.110p+4 420s 5 +0b1.010p+2 +0b1.101p+3 +0b1.010p+4 +0b1.110p+4 420s 6 +0b1.100p+2 +0b1.110p+3 +0b1.011p+4 +0b1.111p+4 420s 7 +0b1.110p+2 +0b1.111p+3 +0b1.100p+4 +0b1.000p+5 420s > formatBin(FourBits, precBits=5) 420s 0 8 16 24 420s 0 +0b0.0000p+0 +0b1.0000p+3 +0b1.0000p+4 +0b1.1000p+4 420s 1 +0b1.0000p+0 +0b1.0010p+3 +0b1.0000p+4 +0b1.1000p+4 420s 2 +0b1.0000p+1 +0b1.0100p+3 +0b1.0010p+4 +0b1.1010p+4 420s 3 +0b1.1000p+1 +0b1.0110p+3 +0b1.0100p+4 +0b1.1100p+4 420s 4 +0b1.0000p+2 +0b1.1000p+3 +0b1.0100p+4 +0b1.1100p+4 420s 5 +0b1.0100p+2 +0b1.1010p+3 +0b1.0100p+4 +0b1.1100p+4 420s 6 +0b1.1000p+2 +0b1.1100p+3 +0b1.0110p+4 +0b1.1110p+4 420s 7 +0b1.1100p+2 +0b1.1110p+3 +0b1.1000p+4 +0b1.0000p+5 420s > formatBin(FourBits, scientific=FALSE) 420s 0 8 16 24 420s 0 +0b_____0.000 +0b__1000.___ +0b_1000_.___ +0b_1100_.___ 420s 1 +0b_____1.000 +0b__1001.___ +0b_1000_.___ +0b_1100_.___ 420s 2 +0b____10.00_ +0b__1010.___ +0b_1001_.___ +0b_1101_.___ 420s 3 +0b____11.00_ +0b__1011.___ +0b_1010_.___ +0b_1110_.___ 420s 4 +0b___100.0__ +0b__1100.___ +0b_1010_.___ +0b_1110_.___ 420s 5 +0b___101.0__ +0b__1101.___ +0b_1010_.___ +0b_1110_.___ 420s 6 +0b___110.0__ +0b__1110.___ +0b_1011_.___ +0b_1111_.___ 420s 7 +0b___111.0__ +0b__1111.___ +0b_1100_.___ +0b1000__.___ 420s > formatBin(FourBits, scientific=FALSE, precBits=5) 420s 0 8 16 24 420s 0 +0b_____0.0000 +0b__1000.0___ +0b_10000.____ +0b_11000.____ 420s 1 +0b_____1.0000 +0b__1001.0___ +0b_10000.____ +0b_11000.____ 420s 2 +0b____10.000_ +0b__1010.0___ +0b_10010.____ +0b_11010.____ 420s 3 +0b____11.000_ +0b__1011.0___ +0b_10100.____ +0b_11100.____ 420s 4 +0b___100.00__ +0b__1100.0___ +0b_10100.____ +0b_11100.____ 420s 5 +0b___101.00__ +0b__1101.0___ +0b_10100.____ +0b_11100.____ 420s 6 +0b___110.00__ +0b__1110.0___ +0b_10110.____ +0b_11110.____ 420s 7 +0b___111.00__ +0b__1111.0___ +0b_11000.____ +0b10000_.____ 420s > formatDec(FourBits) 420s 0 8 16 24 420s 0 0.00 8.00 16.0 24.0 420s 1 1.00 9.00 16.0 24.0 420s 2 2.00 10.0 18.0 26.0 420s 3 3.00 11.0 20.0 28.0 420s 4 4.00 12.0 20.0 28.0 420s 5 5.00 13.0 20.0 28.0 420s 6 6.00 14.0 22.0 30.0 420s 7 7.00 15.0 24.0 32.0 420s > formatDec(FourBits, precBits=5) 420s 0 8 16 24 420s 0 0.00 8.00 16.0 24.0 420s 1 1.00 9.00 16.0 24.0 420s 2 2.00 10.0 18.0 26.0 420s 3 3.00 11.0 20.0 28.0 420s 4 4.00 12.0 20.0 28.0 420s 5 5.00 13.0 20.0 28.0 420s 6 6.00 14.0 22.0 30.0 420s 7 7.00 15.0 24.0 32.0 420s > formatDec(FourBits, precBits=7) 420s 0 8 16 24 420s 0 0.000 8.000 16.00 24.00 420s 1 1.000 9.000 16.00 24.00 420s 2 2.000 10.00 18.00 26.00 420s 3 3.000 11.00 20.00 28.00 420s 4 4.000 12.00 20.00 28.00 420s 5 5.000 13.00 20.00 28.00 420s 6 6.000 14.00 22.00 30.00 420s 7 7.000 15.00 24.00 32.00 420s > 420s > ## HH:::formatHexInternal(FiveBits) 420s > formatHex(FiveBits) 420s 0 8 16 24 420s 0 +0x0.0p+0 +0x1.0p+3 +0x1.0p+4 +0x1.8p+4 420s 1 +0x1.0p+0 +0x1.2p+3 +0x1.1p+4 +0x1.9p+4 420s 2 +0x1.0p+1 +0x1.4p+3 +0x1.2p+4 +0x1.ap+4 420s 3 +0x1.8p+1 +0x1.6p+3 +0x1.3p+4 +0x1.bp+4 420s 4 +0x1.0p+2 +0x1.8p+3 +0x1.4p+4 +0x1.cp+4 420s 5 +0x1.4p+2 +0x1.ap+3 +0x1.5p+4 +0x1.dp+4 420s 6 +0x1.8p+2 +0x1.cp+3 +0x1.6p+4 +0x1.ep+4 420s 7 +0x1.cp+2 +0x1.ep+3 +0x1.7p+4 +0x1.fp+4 420s > formatHex(FiveBits, precBits=5) 420s 0 8 16 24 420s 0 +0x0.0p+0 +0x1.0p+3 +0x1.0p+4 +0x1.8p+4 420s 1 +0x1.0p+0 +0x1.2p+3 +0x1.1p+4 +0x1.9p+4 420s 2 +0x1.0p+1 +0x1.4p+3 +0x1.2p+4 +0x1.ap+4 420s 3 +0x1.8p+1 +0x1.6p+3 +0x1.3p+4 +0x1.bp+4 420s 4 +0x1.0p+2 +0x1.8p+3 +0x1.4p+4 +0x1.cp+4 420s 5 +0x1.4p+2 +0x1.ap+3 +0x1.5p+4 +0x1.dp+4 420s 6 +0x1.8p+2 +0x1.cp+3 +0x1.6p+4 +0x1.ep+4 420s 7 +0x1.cp+2 +0x1.ep+3 +0x1.7p+4 +0x1.fp+4 420s > formatHex(FiveBits, precBits=6) 420s 0 8 16 24 420s 0 +0x0.00p+0 +0x1.00p+3 +0x1.00p+4 +0x1.80p+4 420s 1 +0x1.00p+0 +0x1.20p+3 +0x1.10p+4 +0x1.90p+4 420s 2 +0x1.00p+1 +0x1.40p+3 +0x1.20p+4 +0x1.a0p+4 420s 3 +0x1.80p+1 +0x1.60p+3 +0x1.30p+4 +0x1.b0p+4 420s 4 +0x1.00p+2 +0x1.80p+3 +0x1.40p+4 +0x1.c0p+4 420s 5 +0x1.40p+2 +0x1.a0p+3 +0x1.50p+4 +0x1.d0p+4 420s 6 +0x1.80p+2 +0x1.c0p+3 +0x1.60p+4 +0x1.e0p+4 420s 7 +0x1.c0p+2 +0x1.e0p+3 +0x1.70p+4 +0x1.f0p+4 420s > formatBin(FiveBits) 420s 0 8 16 24 420s 0 +0b0.0000p+0 +0b1.0000p+3 +0b1.0000p+4 +0b1.1000p+4 420s 1 +0b1.0000p+0 +0b1.0010p+3 +0b1.0001p+4 +0b1.1001p+4 420s 2 +0b1.0000p+1 +0b1.0100p+3 +0b1.0010p+4 +0b1.1010p+4 420s 3 +0b1.1000p+1 +0b1.0110p+3 +0b1.0011p+4 +0b1.1011p+4 420s 4 +0b1.0000p+2 +0b1.1000p+3 +0b1.0100p+4 +0b1.1100p+4 420s 5 +0b1.0100p+2 +0b1.1010p+3 +0b1.0101p+4 +0b1.1101p+4 420s 6 +0b1.1000p+2 +0b1.1100p+3 +0b1.0110p+4 +0b1.1110p+4 420s 7 +0b1.1100p+2 +0b1.1110p+3 +0b1.0111p+4 +0b1.1111p+4 420s > formatBin(FiveBits, precBits=5) 420s 0 8 16 24 420s 0 +0b0.0000p+0 +0b1.0000p+3 +0b1.0000p+4 +0b1.1000p+4 420s 1 +0b1.0000p+0 +0b1.0010p+3 +0b1.0001p+4 +0b1.1001p+4 420s 2 +0b1.0000p+1 +0b1.0100p+3 +0b1.0010p+4 +0b1.1010p+4 420s 3 +0b1.1000p+1 +0b1.0110p+3 +0b1.0011p+4 +0b1.1011p+4 420s 4 +0b1.0000p+2 +0b1.1000p+3 +0b1.0100p+4 +0b1.1100p+4 420s 5 +0b1.0100p+2 +0b1.1010p+3 +0b1.0101p+4 +0b1.1101p+4 420s 6 +0b1.1000p+2 +0b1.1100p+3 +0b1.0110p+4 +0b1.1110p+4 420s 7 +0b1.1100p+2 +0b1.1110p+3 +0b1.0111p+4 +0b1.1111p+4 420s > formatBin(FiveBits, precBits=6) 420s 0 8 16 24 420s 0 +0b0.00000p+0 +0b1.00000p+3 +0b1.00000p+4 +0b1.10000p+4 420s 1 +0b1.00000p+0 +0b1.00100p+3 +0b1.00010p+4 +0b1.10010p+4 420s 2 +0b1.00000p+1 +0b1.01000p+3 +0b1.00100p+4 +0b1.10100p+4 420s 3 +0b1.10000p+1 +0b1.01100p+3 +0b1.00110p+4 +0b1.10110p+4 420s 4 +0b1.00000p+2 +0b1.10000p+3 +0b1.01000p+4 +0b1.11000p+4 420s 5 +0b1.01000p+2 +0b1.10100p+3 +0b1.01010p+4 +0b1.11010p+4 420s 6 +0b1.10000p+2 +0b1.11000p+3 +0b1.01100p+4 +0b1.11100p+4 420s 7 +0b1.11000p+2 +0b1.11100p+3 +0b1.01110p+4 +0b1.11110p+4 420s > formatBin(FiveBits, scientific=FALSE) 420s 0 8 16 24 420s 0 +0b____0.0000 +0b_1000.0___ +0b10000.____ +0b11000.____ 420s 1 +0b____1.0000 +0b_1001.0___ +0b10001.____ +0b11001.____ 420s 2 +0b___10.000_ +0b_1010.0___ +0b10010.____ +0b11010.____ 420s 3 +0b___11.000_ +0b_1011.0___ +0b10011.____ +0b11011.____ 420s 4 +0b__100.00__ +0b_1100.0___ +0b10100.____ +0b11100.____ 420s 5 +0b__101.00__ +0b_1101.0___ +0b10101.____ +0b11101.____ 420s 6 +0b__110.00__ +0b_1110.0___ +0b10110.____ +0b11110.____ 420s 7 +0b__111.00__ +0b_1111.0___ +0b10111.____ +0b11111.____ 420s > formatBin(FiveBits, scientific=FALSE, precBits=6) 420s 0 8 16 24 420s 0 +0b____0.00000 +0b_1000.00___ +0b10000.0____ +0b11000.0____ 420s 1 +0b____1.00000 +0b_1001.00___ +0b10001.0____ +0b11001.0____ 420s 2 +0b___10.0000_ +0b_1010.00___ +0b10010.0____ +0b11010.0____ 420s 3 +0b___11.0000_ +0b_1011.00___ +0b10011.0____ +0b11011.0____ 420s 4 +0b__100.000__ +0b_1100.00___ +0b10100.0____ +0b11100.0____ 420s 5 +0b__101.000__ +0b_1101.00___ +0b10101.0____ +0b11101.0____ 420s 6 +0b__110.000__ +0b_1110.00___ +0b10110.0____ +0b11110.0____ 420s 7 +0b__111.000__ +0b_1111.00___ +0b10111.0____ +0b11111.0____ 420s > formatDec(FiveBits) 420s 0 8 16 24 420s 0 0.00 8.00 16.0 24.0 420s 1 1.00 9.00 17.0 25.0 420s 2 2.00 10.0 18.0 26.0 420s 3 3.00 11.0 19.0 27.0 420s 4 4.00 12.0 20.0 28.0 420s 5 5.00 13.0 21.0 29.0 420s 6 6.00 14.0 22.0 30.0 420s 7 7.00 15.0 23.0 31.0 420s > formatDec(FiveBits, precBits=5) 420s 0 8 16 24 420s 0 0.00 8.00 16.0 24.0 420s 1 1.00 9.00 17.0 25.0 420s 2 2.00 10.0 18.0 26.0 420s 3 3.00 11.0 19.0 27.0 420s 4 4.00 12.0 20.0 28.0 420s 5 5.00 13.0 21.0 29.0 420s 6 6.00 14.0 22.0 30.0 420s 7 7.00 15.0 23.0 31.0 420s > formatDec(FiveBits, precBits=7) 420s 0 8 16 24 420s 0 0.000 8.000 16.00 24.00 420s 1 1.000 9.000 17.00 25.00 420s 2 2.000 10.00 18.00 26.00 420s 3 3.000 11.00 19.00 27.00 420s 4 4.000 12.00 20.00 28.00 420s 5 5.000 13.00 21.00 29.00 420s 6 6.000 14.00 22.00 30.00 420s 7 7.000 15.00 23.00 31.00 420s > 420s > TenPowers <- mpfr(matrix(10^(-3:5)), precBits=53) 420s > row.names(TenPowers) <- -3:5 420s > TenPowers 420s 'mpfrMatrix' of dim(.) = (9, 1) of precision 53 bits 420s [,1] 420s -3 0.0010000000000000000 420s -2 0.010000000000000000 420s -1 0.10000000000000001 420s 0 1.0000000000000000 420s 1 10.000000000000000 420s 2 100.00000000000000 420s 3 1000.0000000000000 420s 4 10000.000000000000 420s 5 100000.00000000000 420s > 420s > options(width = 180) # for several "wide" displays below 420s > 420s > ## This indirectly "checks' as.data.frame.Ncharacter(): 420s > mkDF <- function(mv, displaydigits = 4, stringsAsFactors = FALSE) { 420s + stopifnot(is.numeric(mv) || inherits(mv, "mpfr")) 420s + data.frame(Hex = formatHex(mv), 420s + Bin = formatBin(mv), 420s + BinF= formatBin(mv, scientific=FALSE), 420s + Dec = formatDec(mv), 420s + Dec4= formatDec(mv, displaydigits=displaydigits), 420s + Dec.= formatDec(mv, scientific=TRUE), 420s + Dec.4=formatDec(mv, scientific=TRUE, displaydigits=displaydigits), 420s + stringsAsFactors = stringsAsFactors) 420s + } 420s > nmsMkDF <- c("Hex", "Bin", "BinF", "Dec", "Dec4", "Dec.", "Dec.4") 420s > 420s > d10p. <- mkDF(TenPowers) 420s > (d10p <- mkDF(as.vector(TenPowers))) 420s Hex Bin BinF 420s 1 +0x1.0624dd2f1a9fcp-10 +0b1.0000011000100100110111010010111100011010100111111100p-10 +0b_________________._________10000011000100100110111010010111100011010100111111100 420s 2 +0x1.47ae147ae147bp-7 +0b1.0100011110101110000101000111101011100001010001111011p-7 +0b_________________.______10100011110101110000101000111101011100001010001111011___ 420s 3 +0x1.999999999999ap-4 +0b1.1001100110011001100110011001100110011001100110011010p-4 +0b_________________.___11001100110011001100110011001100110011001100110011010______ 420s 4 +0x1.0000000000000p+0 +0b1.0000000000000000000000000000000000000000000000000000p+0 +0b________________1.0000000000000000000000000000000000000000000000000000__________ 420s 5 +0x1.4000000000000p+3 +0b1.0100000000000000000000000000000000000000000000000000p+3 +0b_____________1010.0000000000000000000000000000000000000000000000000_____________ 420s 6 +0x1.9000000000000p+6 +0b1.1001000000000000000000000000000000000000000000000000p+6 +0b__________1100100.0000000000000000000000000000000000000000000000________________ 420s 7 +0x1.f400000000000p+9 +0b1.1111010000000000000000000000000000000000000000000000p+9 +0b_______1111101000.0000000000000000000000000000000000000000000___________________ 420s 8 +0x1.3880000000000p+13 +0b1.0011100010000000000000000000000000000000000000000000p+13 +0b___10011100010000.000000000000000000000000000000000000000_______________________ 420s 9 +0x1.86a0000000000p+16 +0b1.1000011010100000000000000000000000000000000000000000p+16 +0b11000011010100000.000000000000000000000000000000000000__________________________ 420s Dec Dec4 Dec. Dec.4 420s 1 0.0010000000000000000 0.0010000000000000000 1.0000000000000000e-3 1.0000000000000000e-3 420s 2 0.010000000000000000 0.010000000000000000 1.0000000000000000e-2 1.0000000000000000e-2 420s 3 0.10000000000000001 0.10000000000000001 1.0000000000000001e-1 1.0000000000000001e-1 420s 4 1.0000000000000000 1.0000000000000000 1.0000000000000000e+0 1.0000000000000000e+0 420s 5 10.000000000000000 10.000000000000000 1.0000000000000000e+1 1.0000000000000000e+1 420s 6 100.00000000000000 100.00000000000000 1.0000000000000000e+2 1.0000000000000000e+2 420s 7 1000.0000000000000 1000.0000000000000 1.0000000000000000e+3 1.0000000000000000e+3 420s 8 10000.000000000000 10000.000000000000 1.0000000000000000e+4 1.0000000000000000e+4 420s 9 100000.00000000000 100000.00000000000 1.0000000000000000e+5 1.0000000000000000e+5 420s > 420s > 420s > TenFrac <- matrix((1:10)/10, dimnames=list(1:10, expression(1/x))) 420s > TenFrac 420s 1/x 420s 1 0.1 420s 2 0.2 420s 3 0.3 420s 4 0.4 420s 5 0.5 420s 6 0.6 420s 7 0.7 420s 8 0.8 420s 9 0.9 420s 10 1.0 420s > stopifnot(exprs = { 420s + is.matrix(print(formatHex(TenFrac))) # stays a matrix 420s + is.matrix(print(formatBin(TenFrac))) 420s + is.matrix(print(formatBin(TenFrac, scientific=FALSE))) 420s + is.matrix(print(formatDec(TenFrac))) 420s + }) 420s 1/x 420s 1 +0x1.999999999999ap-4 420s 2 +0x1.999999999999ap-3 420s 3 +0x1.3333333333333p-2 420s 4 +0x1.999999999999ap-2 420s 5 +0x1.0000000000000p-1 420s 6 +0x1.3333333333333p-1 420s 7 +0x1.6666666666666p-1 420s 8 +0x1.999999999999ap-1 420s 9 +0x1.ccccccccccccdp-1 420s 10 +0x1.0000000000000p+0 420s 1/x 420s 1 +0b1.1001100110011001100110011001100110011001100110011010p-4 420s 2 +0b1.1001100110011001100110011001100110011001100110011010p-3 420s 3 +0b1.0011001100110011001100110011001100110011001100110011p-2 420s 4 +0b1.1001100110011001100110011001100110011001100110011010p-2 420s 5 +0b1.0000000000000000000000000000000000000000000000000000p-1 420s 6 +0b1.0011001100110011001100110011001100110011001100110011p-1 420s 7 +0b1.0110011001100110011001100110011001100110011001100110p-1 420s 8 +0b1.1001100110011001100110011001100110011001100110011010p-1 420s 9 +0b1.1100110011001100110011001100110011001100110011001101p-1 420s 10 +0b1.0000000000000000000000000000000000000000000000000000p+0 420s 1/x 420s 1 +0b_.___11001100110011001100110011001100110011001100110011010 420s 2 +0b_.__11001100110011001100110011001100110011001100110011010_ 420s 3 +0b_._10011001100110011001100110011001100110011001100110011__ 420s 4 +0b_._11001100110011001100110011001100110011001100110011010__ 420s 5 +0b_.10000000000000000000000000000000000000000000000000000___ 420s 6 +0b_.10011001100110011001100110011001100110011001100110011___ 420s 7 +0b_.10110011001100110011001100110011001100110011001100110___ 420s 8 +0b_.11001100110011001100110011001100110011001100110011010___ 420s 9 +0b_.11100110011001100110011001100110011001100110011001101___ 420s 10 +0b1.0000000000000000000000000000000000000000000000000000____ 420s 1/x 420s 1 0.10000000000000001 420s 2 0.20000000000000001 420s 3 0.29999999999999999 420s 4 0.40000000000000002 420s 5 0.50000000000000000 420s 6 0.59999999999999998 420s 7 0.69999999999999996 420s 8 0.80000000000000004 420s 9 0.90000000000000002 420s 10 1.0000000000000000 420s > 420s > TenFrac9 <- mpfr(TenFrac, precBits=9) 420s > TenFrac9 420s 'mpfrMatrix' of dim(.) = (10, 1) of precision 9 bits 420s 1/x 420s 1 0.1001 420s 2 0.2002 420s 3 0.2998 420s 4 0.4004 420s 5 0.5000 420s 6 0.5996 420s 7 0.6992 420s 8 0.8008 420s 9 0.9004 420s 10 1.000 420s > data.frame(Hex = formatHex(TenFrac9), ## checking as.data.frame.Ncharacter as well 420s + Bin = formatBin(TenFrac9), 420s + BinF= formatBin(TenFrac9, scientific=FALSE), 420s + Dec = formatDec(TenFrac9)) -> d9 420s > d9 420s 1/x 1/x 1/x 1/x 420s 1 +0x1.9ap-4 +0b1.10011010p-4 +0b_.___110011010 0.1001 420s 2 +0x1.9ap-3 +0b1.10011010p-3 +0b_.__110011010_ 0.2002 420s 3 +0x1.33p-2 +0b1.00110011p-2 +0b_._100110011__ 0.2998 420s 4 +0x1.9ap-2 +0b1.10011010p-2 +0b_._110011010__ 0.4004 420s 5 +0x1.00p-1 +0b1.00000000p-1 +0b_.100000000___ 0.5000 420s 6 +0x1.33p-1 +0b1.00110011p-1 +0b_.100110011___ 0.5996 420s 7 +0x1.66p-1 +0b1.01100110p-1 +0b_.101100110___ 0.6992 420s 8 +0x1.9ap-1 +0b1.10011010p-1 +0b_.110011010___ 0.8008 420s 9 +0x1.cdp-1 +0b1.11001101p-1 +0b_.111001101___ 0.9004 420s 10 +0x1.00p+0 +0b1.00000000p+0 +0b1.00000000____ 1.000 420s > ## Does not print the column names but the colnames of each 1-col. matrix ("1/x"). 420s > ## This is how R in general works { in format.data.frame() } 420s > ## now use vectors: 420s > tenfrac9 <- as.vector(TenFrac9) 420s > stopifnot(identical(tenfrac9, c(TenFrac9))) 420s > data.frame(Hex = formatHex(tenfrac9), 420s + Bin = formatBin(tenfrac9), 420s + BinF= formatBin(tenfrac9, scientific=FALSE), 420s + Dec = formatDec(tenfrac9)) -> dl9 420s > dl9 # (now prints as d9 had printed in the past) 420s Hex Bin BinF Dec 420s 1 +0x1.9ap-4 +0b1.10011010p-4 +0b_.___110011010 0.1001 420s 2 +0x1.9ap-3 +0b1.10011010p-3 +0b_.__110011010_ 0.2002 420s 3 +0x1.33p-2 +0b1.00110011p-2 +0b_._100110011__ 0.2998 420s 4 +0x1.9ap-2 +0b1.10011010p-2 +0b_._110011010__ 0.4004 420s 5 +0x1.00p-1 +0b1.00000000p-1 +0b_.100000000___ 0.5000 420s 6 +0x1.33p-1 +0b1.00110011p-1 +0b_.100110011___ 0.5996 420s 7 +0x1.66p-1 +0b1.01100110p-1 +0b_.101100110___ 0.6992 420s 8 +0x1.9ap-1 +0b1.10011010p-1 +0b_.110011010___ 0.8008 420s 9 +0x1.cdp-1 +0b1.11001101p-1 +0b_.111001101___ 0.9004 420s 10 +0x1.00p+0 +0b1.00000000p+0 +0b1.00000000____ 1.000 420s > 420s > stopifnot(exprs = { 420s + getPrec(TenFrac ) == 53 420s + getPrec(TenFrac9) == 9 420s + colnames(d9) == c("Hex", "Bin", "BinF", "Dec") 420s + inherits(d9, "data.frame") 420s + all.equal(dim(d9), c(10,4)) 420s + }) 420s > 420s > (Ten <- matrix(1:10 + 0.0, dimnames=list(1:10, "x"))) ## + 0.0 forces double precision 420s x 420s 1 1 420s 2 2 420s 3 3 420s 4 4 420s 5 5 420s 6 6 420s 7 7 420s 8 8 420s 9 9 420s 10 10 420s > 420s > dT <- mkDF(Ten) 421s > dt <- mkDF(as.vector(Ten)) 421s > dt # large 421s Hex Bin BinF Dec 421s 1 +0x1.0000000000000p+0 +0b1.0000000000000000000000000000000000000000000000000000p+0 +0b___1.0000000000000000000000000000000000000000000000000000 1.0000000000000000 421s 2 +0x1.0000000000000p+1 +0b1.0000000000000000000000000000000000000000000000000000p+1 +0b__10.000000000000000000000000000000000000000000000000000_ 2.0000000000000000 421s 3 +0x1.8000000000000p+1 +0b1.1000000000000000000000000000000000000000000000000000p+1 +0b__11.000000000000000000000000000000000000000000000000000_ 3.0000000000000000 421s 4 +0x1.0000000000000p+2 +0b1.0000000000000000000000000000000000000000000000000000p+2 +0b_100.00000000000000000000000000000000000000000000000000__ 4.0000000000000000 421s 5 +0x1.4000000000000p+2 +0b1.0100000000000000000000000000000000000000000000000000p+2 +0b_101.00000000000000000000000000000000000000000000000000__ 5.0000000000000000 421s 6 +0x1.8000000000000p+2 +0b1.1000000000000000000000000000000000000000000000000000p+2 +0b_110.00000000000000000000000000000000000000000000000000__ 6.0000000000000000 421s 7 +0x1.c000000000000p+2 +0b1.1100000000000000000000000000000000000000000000000000p+2 +0b_111.00000000000000000000000000000000000000000000000000__ 7.0000000000000000 421s 8 +0x1.0000000000000p+3 +0b1.0000000000000000000000000000000000000000000000000000p+3 +0b1000.0000000000000000000000000000000000000000000000000___ 8.0000000000000000 421s 9 +0x1.2000000000000p+3 +0b1.0010000000000000000000000000000000000000000000000000p+3 +0b1001.0000000000000000000000000000000000000000000000000___ 9.0000000000000000 421s 10 +0x1.4000000000000p+3 +0b1.0100000000000000000000000000000000000000000000000000p+3 +0b1010.0000000000000000000000000000000000000000000000000___ 10.000000000000000 421s Dec4 Dec. Dec.4 421s 1 1.0000000000000000 1.0000000000000000e+0 1.0000000000000000e+0 421s 2 2.0000000000000000 2.0000000000000000e+0 2.0000000000000000e+0 421s 3 3.0000000000000000 3.0000000000000000e+0 3.0000000000000000e+0 421s 4 4.0000000000000000 4.0000000000000000e+0 4.0000000000000000e+0 421s 5 5.0000000000000000 5.0000000000000000e+0 5.0000000000000000e+0 421s 6 6.0000000000000000 6.0000000000000000e+0 6.0000000000000000e+0 421s 7 7.0000000000000000 7.0000000000000000e+0 7.0000000000000000e+0 421s 8 8.0000000000000000 8.0000000000000000e+0 8.0000000000000000e+0 421s 9 9.0000000000000000 9.0000000000000000e+0 9.0000000000000000e+0 421s 10 10.000000000000000 1.0000000000000000e+1 1.0000000000000000e+1 421s > 421s > (Ten4 <- mpfr(Ten, precBits=4)) 421s 'mpfrMatrix' of dim(.) = (10, 1) of precision 4 bits 421s x 421s 1 1.00 421s 2 2.00 421s 3 3.00 421s 4 4.00 421s 5 5.00 421s 6 6.00 421s 7 7.00 421s 8 8.00 421s 9 9.00 421s 10 10.0 421s > ten4 <- as.vector(Ten4) 421s > D4 <- mkDF(Ten4) # would be printing "x" --- because we added one-column matrices !! 421s > (d4 <- mkDF(ten4)) # printing fine ! 421s Hex Bin BinF Dec Dec4 Dec. Dec.4 421s 1 +0x1.0p+0 +0b1.000p+0 +0b___1.000 1.00 1.00 1.00e+0 1.00e+0 421s 2 +0x1.0p+1 +0b1.000p+1 +0b__10.00_ 2.00 2.00 2.00e+0 2.00e+0 421s 3 +0x1.8p+1 +0b1.100p+1 +0b__11.00_ 3.00 3.00 3.00e+0 3.00e+0 421s 4 +0x1.0p+2 +0b1.000p+2 +0b_100.0__ 4.00 4.00 4.00e+0 4.00e+0 421s 5 +0x1.4p+2 +0b1.010p+2 +0b_101.0__ 5.00 5.00 5.00e+0 5.00e+0 421s 6 +0x1.8p+2 +0b1.100p+2 +0b_110.0__ 6.00 6.00 6.00e+0 6.00e+0 421s 7 +0x1.cp+2 +0b1.110p+2 +0b_111.0__ 7.00 7.00 7.00e+0 7.00e+0 421s 8 +0x1.0p+3 +0b1.000p+3 +0b1000.___ 8.00 8.00 8.00e+0 8.00e+0 421s 9 +0x1.2p+3 +0b1.001p+3 +0b1001.___ 9.00 9.00 9.00e+0 9.00e+0 421s 10 +0x1.4p+3 +0b1.010p+3 +0b1010.___ 10.0 10.0 1.00e+1 1.00e+1 421s > stopifnot(identical(names(d4), names(D4)), 421s + identical(names(d4), nmsMkDF)) 421s > 421s > 421s > 421s > Two8 <- matrix(2^seq(-8, 8)) 421s > Two8.3 <- mpfr(Two8, precBits=3) 421s > ## formatBin 421s > stopifnot( 421s + identical(sapply(as(Two8.3, "mpfr")[-c(1:3, 15:17)], 421s + function(t83) formatBin(t83, scientific=FALSE)), 421s + c("+0b.____100", "+0b.___100", "+0b.__100", "+0b._100", "+0b.100", 421s + "+0b1.00","+0b10.0","+0b100.","+0b100_.","+0b100__.","+0b100___."))) 421s > ## formatDec --- these must be perfectly aligned on the "." ! 421s > formatDec(Two8.3, digits = 3) 421s [,1] 421s [1,] 0.00391 421s [2,] 0.00781 421s [3,] 0.0156 421s [4,] 0.0312 421s [5,] 0.0625 421s [6,] 0.125 421s [7,] 0.250 421s [8,] 0.500 421s [9,] 1.00 421s [10,] 2.00 421s [11,] 4.00 421s [12,] 8.00 421s [13,] 16.0 421s [14,] 32.0 421s [15,] 64.0 421s [16,] 128. 421s [17,] 256. 421s > formatDec(Two8.3, digits = 8) 421s [,1] 421s [1,] 0.0039062500 421s [2,] 0.0078125000 421s [3,] 0.015625000 421s [4,] 0.031250000 421s [5,] 0.062500000 421s [6,] 0.12500000 421s [7,] 0.25000000 421s [8,] 0.50000000 421s [9,] 1.0000000 421s [10,] 2.0000000 421s [11,] 4.0000000 421s [12,] 8.0000000 421s [13,] 16.000000 421s [14,] 32.000000 421s [15,] 64.000000 421s [16,] 128.00000 421s [17,] 256.00000 421s > stopifnot( 421s + identical(capture.output(formatDec(Two8.3, digits = 3))[2:4], 421s + c(" [1,] 0.00391", " [2,] 0.00781", " [3,] 0.0156 ")) 421s + , 421s + identical(capture.output(formatDec(Two8.3, digits = 8))[c(2:3,8,13,16)], 421s + c(" [1,] 0.0039062500", " [2,] 0.0078125000", " [7,] 0.25000000 ", 421s + "[12,] 8.0000000 ", "[15,] 64.000000 ")) 421s + ) 421s > 421s > 421s > 421s autopkgtest [19:59:04]: test run-unit-test: -----------------------] 422s run-unit-test PASS 422s autopkgtest [19:59:05]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 422s autopkgtest [19:59:05]: test pkg-r-autopkgtest: preparing testbed 530s autopkgtest [20:00:53]: testbed dpkg architecture: arm64 530s autopkgtest [20:00:53]: testbed apt version: 2.7.12 530s autopkgtest [20:00:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 532s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 532s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [6540 B] 532s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [51.4 kB] 532s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [3704 kB] 532s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [474 kB] 532s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 Packages [646 kB] 532s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 c-n-f Metadata [3144 B] 532s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 Packages [33.6 kB] 532s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted arm64 c-n-f Metadata [116 B] 532s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 Packages [4012 kB] 532s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 c-n-f Metadata [8528 B] 532s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 Packages [55.5 kB] 532s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse arm64 c-n-f Metadata [116 B] 538s Fetched 9112 kB in 3s (3273 kB/s) 538s Reading package lists... 543s Reading package lists... 544s Building dependency tree... 544s Reading state information... 544s Calculating upgrade... 545s The following packages will be REMOVED: 545s libglib2.0-0 libssl3 545s The following NEW packages will be installed: 545s libglib2.0-0t64 libssl3t64 xdg-user-dirs 545s The following packages have been kept back: 545s curl 545s The following packages will be upgraded: 545s gir1.2-glib-2.0 libglib2.0-data libtirpc-common openssl readline-common 545s 5 upgraded, 3 newly installed, 2 to remove and 1 not upgraded. 545s Need to get 4592 kB of archives. 545s After this operation, 211 kB of additional disk space will be used. 545s Get:1 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 gir1.2-glib-2.0 arm64 2.79.3-3ubuntu5 [182 kB] 545s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-0t64 arm64 2.79.3-3ubuntu5 [1527 kB] 546s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 openssl arm64 3.0.13-0ubuntu1 [983 kB] 546s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libssl3t64 arm64 3.0.13-0ubuntu1 [1770 kB] 546s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libglib2.0-data all 2.79.3-3ubuntu5 [46.6 kB] 546s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc-common all 1.3.4+ds-1.1 [8018 B] 546s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 readline-common all 8.2-3.1 [56.4 kB] 546s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-user-dirs arm64 0.18-1 [18.1 kB] 547s Fetched 4592 kB in 1s (6279 kB/s) 547s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 547s Preparing to unpack .../gir1.2-glib-2.0_2.79.3-3ubuntu5_arm64.deb ... 547s Unpacking gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 547s dpkg: libglib2.0-0:arm64: dependency problems, but removing anyway as you requested: 547s udisks2 depends on libglib2.0-0 (>= 2.77.0). 547s shared-mime-info depends on libglib2.0-0 (>= 2.75.3). 547s python3-gi depends on libglib2.0-0 (>= 2.77.0). 547s python3-dbus depends on libglib2.0-0 (>= 2.16.0). 547s netplan.io depends on libglib2.0-0 (>= 2.70.0). 547s netplan-generator depends on libglib2.0-0 (>= 2.70.0). 547s libxmlb2:arm64 depends on libglib2.0-0 (>= 2.54.0). 547s libvolume-key1:arm64 depends on libglib2.0-0 (>= 2.18.0). 547s libudisks2-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libqrtr-glib0:arm64 depends on libglib2.0-0 (>= 2.56). 547s libqmi-proxy depends on libglib2.0-0 (>= 2.30.0). 547s libqmi-glib5:arm64 depends on libglib2.0-0 (>= 2.54.0). 547s libpolkit-gobject-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 547s libpolkit-agent-1-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 547s libnetplan0:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libmm-glib0:arm64 depends on libglib2.0-0 (>= 2.62.0). 547s libmbim-proxy depends on libglib2.0-0 (>= 2.56). 547s libmbim-glib4:arm64 depends on libglib2.0-0 (>= 2.56). 547s libjson-glib-1.0-0:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libjcat1:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libgusb2:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libgudev-1.0-0:arm64 depends on libglib2.0-0 (>= 2.38.0). 547s libgirepository-1.0-1:arm64 depends on libglib2.0-0 (>= 2.79.0). 547s libfwupd2:arm64 depends on libglib2.0-0 (>= 2.79.0). 547s libblockdev3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-utils3:arm64 depends on libglib2.0-0 (>= 2.75.3). 547s libblockdev-swap3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-part3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-nvme3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-mdraid3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-loop3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-fs3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s libblockdev-crypto3:arm64 depends on libglib2.0-0 (>= 2.42.2). 547s fwupd depends on libglib2.0-0 (>= 2.79.0). 547s bolt depends on libglib2.0-0 (>= 2.56.0). 547s 547s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 547s Removing libglib2.0-0:arm64 (2.79.2-1~ubuntu1) ... 547s Selecting previously unselected package libglib2.0-0t64:arm64. 547s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75825 files and directories currently installed.) 547s Preparing to unpack .../libglib2.0-0t64_2.79.3-3ubuntu5_arm64.deb ... 547s libglib2.0-0t64.preinst: Removing /var/lib/dpkg/info/libglib2.0-0:arm64.postrm to avoid loss of /usr/share/glib-2.0/schemas/gschemas.compiled... 547s removed '/var/lib/dpkg/info/libglib2.0-0:arm64.postrm' 547s Unpacking libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 547s Preparing to unpack .../openssl_3.0.13-0ubuntu1_arm64.deb ... 547s Unpacking openssl (3.0.13-0ubuntu1) over (3.0.10-1ubuntu4) ... 550s dpkg: libssl3:arm64: dependency problems, but removing anyway as you requested: 550s wget depends on libssl3 (>= 3.0.0). 550s u-boot-tools depends on libssl3 (>= 3.0.0). 550s tnftp depends on libssl3 (>= 3.0.0). 550s tcpdump depends on libssl3 (>= 3.0.0). 550s systemd-resolved depends on libssl3 (>= 3.0.0). 550s systemd depends on libssl3 (>= 3.0.0). 550s sudo depends on libssl3 (>= 3.0.0). 550s sbsigntool depends on libssl3 (>= 3.0.0). 550s rsync depends on libssl3 (>= 3.0.0). 550s python3-cryptography depends on libssl3 (>= 3.0.0). 550s openssh-server depends on libssl3 (>= 3.0.10). 550s openssh-client depends on libssl3 (>= 3.0.10). 550s mtd-utils depends on libssl3 (>= 3.0.0). 550s mokutil depends on libssl3 (>= 3.0.0). 550s linux-headers-6.8.0-11-generic depends on libssl3 (>= 3.0.0). 550s libsystemd-shared:arm64 depends on libssl3 (>= 3.0.0). 550s libssh-4:arm64 depends on libssl3 (>= 3.0.0). 550s libsasl2-modules:arm64 depends on libssl3 (>= 3.0.0). 550s libsasl2-2:arm64 depends on libssl3 (>= 3.0.0). 550s libpython3.12-minimal:arm64 depends on libssl3 (>= 3.0.0). 550s libpython3.11-minimal:arm64 depends on libssl3 (>= 3.0.0). 550s libnvme1 depends on libssl3 (>= 3.0.0). 550s libkrb5-3:arm64 depends on libssl3 (>= 3.0.0). 550s libkmod2:arm64 depends on libssl3 (>= 3.0.0). 550s libfido2-1:arm64 depends on libssl3 (>= 3.0.0). 550s libcurl4:arm64 depends on libssl3 (>= 3.0.0). 550s libcryptsetup12:arm64 depends on libssl3 (>= 3.0.0). 550s kmod depends on libssl3 (>= 3.0.0). 550s dhcpcd-base depends on libssl3 (>= 3.0.0). 550s bind9-libs:arm64 depends on libssl3 (>= 3.0.0). 550s 550s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75850 files and directories currently installed.) 550s Removing libssl3:arm64 (3.0.10-1ubuntu4) ... 550s Selecting previously unselected package libssl3t64:arm64. 550s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75839 files and directories currently installed.) 550s Preparing to unpack .../libssl3t64_3.0.13-0ubuntu1_arm64.deb ... 550s Unpacking libssl3t64:arm64 (3.0.13-0ubuntu1) ... 550s Preparing to unpack .../libglib2.0-data_2.79.3-3ubuntu5_all.deb ... 550s Unpacking libglib2.0-data (2.79.3-3ubuntu5) over (2.79.2-1~ubuntu1) ... 550s Preparing to unpack .../libtirpc-common_1.3.4+ds-1.1_all.deb ... 550s Unpacking libtirpc-common (1.3.4+ds-1.1) over (1.3.4+ds-1build1) ... 550s Preparing to unpack .../readline-common_8.2-3.1_all.deb ... 550s Unpacking readline-common (8.2-3.1) over (8.2-3) ... 550s Selecting previously unselected package xdg-user-dirs. 550s Preparing to unpack .../xdg-user-dirs_0.18-1_arm64.deb ... 550s Unpacking xdg-user-dirs (0.18-1) ... 550s Setting up xdg-user-dirs (0.18-1) ... 550s Setting up libssl3t64:arm64 (3.0.13-0ubuntu1) ... 550s Setting up libtirpc-common (1.3.4+ds-1.1) ... 550s Setting up libglib2.0-0t64:arm64 (2.79.3-3ubuntu5) ... 550s No schema files found: doing nothing. 550s Setting up libglib2.0-data (2.79.3-3ubuntu5) ... 550s Setting up gir1.2-glib-2.0:arm64 (2.79.3-3ubuntu5) ... 550s Setting up openssl (3.0.13-0ubuntu1) ... 550s Setting up readline-common (8.2-3.1) ... 550s Processing triggers for man-db (2.12.0-3) ... 550s Processing triggers for install-info (7.1-3) ... 550s Processing triggers for libc-bin (2.39-0ubuntu2) ... 550s Reading package lists... 551s Building dependency tree... 551s Reading state information... 552s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 553s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 553s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 553s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 553s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 556s Reading package lists... 556s Reading package lists... 557s Building dependency tree... 557s Reading state information... 558s Calculating upgrade... 558s The following packages have been kept back: 558s curl 558s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 558s Reading package lists... 559s Building dependency tree... 559s Reading state information... 560s 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 565s Reading package lists... 566s Building dependency tree... 566s Reading state information... 566s Starting pkgProblemResolver with broken count: 0 567s Starting 2 pkgProblemResolver with broken count: 0 567s Done 568s The following additional packages will be installed: 569s build-essential cpp cpp-13 cpp-13-aarch64-linux-gnu cpp-aarch64-linux-gnu 569s curl dctrl-tools fontconfig fontconfig-config fonts-dejavu-core 569s fonts-dejavu-mono g++ g++-13 g++-13-aarch64-linux-gnu g++-aarch64-linux-gnu 569s gcc gcc-13 gcc-13-aarch64-linux-gnu gcc-aarch64-linux-gnu gfortran 569s gfortran-13 gfortran-13-aarch64-linux-gnu gfortran-aarch64-linux-gnu 569s icu-devtools libasan8 libatomic1 libblas-dev libblas3 libbz2-dev 569s libc-dev-bin libc6-dev libcairo2 libcc1-0 libcrypt-dev libcurl4t64 569s libdatrie1 libdeflate0 libfontconfig1 libgcc-13-dev libgfortran-13-dev 569s libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libhwasan0 libice6 569s libicu-dev libisl23 libitm1 libjbig0 libjpeg-dev libjpeg-turbo8 569s libjpeg-turbo8-dev libjpeg8 libjpeg8-dev liblapack-dev liblapack3 liblerc4 569s liblsan0 liblzma-dev libmpc3 libncurses-dev libnsl-dev libpango-1.0-0 569s libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpcre2-16-0 569s libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpixman-1-0 libpkgconf3 569s libpng-dev libpng16-16t64 libpsl5t64 libreadline-dev libreadline8t64 569s libsharpyuv0 libsm6 libstdc++-13-dev libtcl8.6 libthai-data libthai0 569s libtiff6 libtirpc-dev libtirpc3t64 libtk8.6 libtsan2 libubsan1 libwebp7 569s libxcb-render0 libxcb-shm0 libxft2 libxrender1 libxss1 libxt6t64 569s linux-libc-dev pkg-config pkg-r-autopkgtest pkgconf pkgconf-bin r-base-core 569s r-base-dev r-cran-gmp r-cran-mass r-cran-rmpfr r-cran-sfsmisc rpcsvc-proto 569s unzip x11-common xdg-utils zip zlib1g-dev 569s Suggested packages: 569s cpp-doc gcc-13-locales cpp-13-doc debtags gcc-13-doc gcc-multilib 569s manpages-dev autoconf automake libtool flex bison gdb gcc-doc 569s gdb-aarch64-linux-gnu gfortran-doc gfortran-13-doc libcoarrays-dev 569s liblapack-doc glibc-doc icu-doc liblzma-doc ncurses-doc readline-doc 569s libstdc++-13-doc tcl8.6 tk8.6 elpa-ess r-doc-info | r-doc-pdf r-mathlib 569s r-base-html texlive-base texlive-latex-base texlive-plain-generic 569s texlive-fonts-recommended texlive-fonts-extra texlive-extra-utils 569s texlive-latex-recommended texlive-latex-extra texinfo 569s Recommended packages: 569s bzip2-doc manpages manpages-dev libc-devtools libpng-tools r-recommended 569s r-doc-html r-cran-polynom r-cran-cluster r-cran-lattice r-cran-matrix 569s r-cran-nlme libfile-mimeinfo-perl libnet-dbus-perl libx11-protocol-perl 569s x11-utils x11-xserver-utils 569s The following packages will be REMOVED: 569s libcurl4 libpng16-16 libpsl5 libreadline8 libtirpc3 569s The following NEW packages will be installed: 569s autopkgtest-satdep build-essential cpp cpp-13 cpp-13-aarch64-linux-gnu 569s cpp-aarch64-linux-gnu dctrl-tools fontconfig fontconfig-config 569s fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-aarch64-linux-gnu 569s g++-aarch64-linux-gnu gcc gcc-13 gcc-13-aarch64-linux-gnu 569s gcc-aarch64-linux-gnu gfortran gfortran-13 gfortran-13-aarch64-linux-gnu 569s gfortran-aarch64-linux-gnu icu-devtools libasan8 libatomic1 libblas-dev 569s libblas3 libbz2-dev libc-dev-bin libc6-dev libcairo2 libcc1-0 libcrypt-dev 569s libcurl4t64 libdatrie1 libdeflate0 libfontconfig1 libgcc-13-dev 569s libgfortran-13-dev libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b 569s libhwasan0 libice6 libicu-dev libisl23 libitm1 libjbig0 libjpeg-dev 569s libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev liblapack-dev 569s liblapack3 liblerc4 liblsan0 liblzma-dev libmpc3 libncurses-dev libnsl-dev 569s libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils 569s libpaper1 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 569s libpixman-1-0 libpkgconf3 libpng-dev libpng16-16t64 libpsl5t64 569s libreadline-dev libreadline8t64 libsharpyuv0 libsm6 libstdc++-13-dev 569s libtcl8.6 libthai-data libthai0 libtiff6 libtirpc-dev libtirpc3t64 libtk8.6 569s libtsan2 libubsan1 libwebp7 libxcb-render0 libxcb-shm0 libxft2 libxrender1 569s libxss1 libxt6t64 linux-libc-dev pkg-config pkg-r-autopkgtest pkgconf 569s pkgconf-bin r-base-core r-base-dev r-cran-gmp r-cran-mass r-cran-rmpfr 569s r-cran-sfsmisc rpcsvc-proto unzip x11-common xdg-utils zip zlib1g-dev 569s The following packages will be upgraded: 569s curl 569s 1 upgraded, 115 newly installed, 5 to remove and 0 not upgraded. 569s Need to get 134 MB/134 MB of archives. 569s After this operation, 423 MB of additional disk space will be used. 569s Get:1 /tmp/autopkgtest.gNpW7B/2-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [736 B] 569s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpsl5t64 arm64 0.21.2-1.1 [57.4 kB] 569s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 curl arm64 8.5.0-2ubuntu7 [222 kB] 569s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libcurl4t64 arm64 8.5.0-2ubuntu7 [332 kB] 569s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpng16-16t64 arm64 1.6.43-3 [185 kB] 569s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libreadline8t64 arm64 8.2-3.1 [153 kB] 569s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.1 [83.5 kB] 569s Get:8 http://ftpmaster.internal/ubuntu noble/main arm64 libc-dev-bin arm64 2.39-0ubuntu2 [19.7 kB] 569s Get:9 http://ftpmaster.internal/ubuntu noble/main arm64 linux-libc-dev arm64 6.8.0-11.11 [1569 kB] 569s Get:10 http://ftpmaster.internal/ubuntu noble/main arm64 libcrypt-dev arm64 1:4.4.36-4 [136 kB] 569s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libtirpc-dev arm64 1.3.4+ds-1.1 [201 kB] 569s Get:12 http://ftpmaster.internal/ubuntu noble/main arm64 libnsl-dev arm64 1.3.0-3 [71.9 kB] 569s Get:13 http://ftpmaster.internal/ubuntu noble/main arm64 rpcsvc-proto arm64 1.4.2-0ubuntu6 [65.4 kB] 569s Get:14 http://ftpmaster.internal/ubuntu noble/main arm64 libc6-dev arm64 2.39-0ubuntu2 [1596 kB] 569s Get:15 http://ftpmaster.internal/ubuntu noble/main arm64 libisl23 arm64 0.26-3 [713 kB] 569s Get:16 http://ftpmaster.internal/ubuntu noble/main arm64 libmpc3 arm64 1.3.1-1 [55.3 kB] 569s Get:17 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [10.3 MB] 570s Get:18 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-13 arm64 13.2.0-17ubuntu2 [1028 B] 570s Get:19 http://ftpmaster.internal/ubuntu noble/main arm64 cpp-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [5316 B] 570s Get:20 http://ftpmaster.internal/ubuntu noble/main arm64 cpp arm64 4:13.2.0-7ubuntu1 [22.4 kB] 570s Get:21 http://ftpmaster.internal/ubuntu noble/main arm64 libcc1-0 arm64 14-20240303-1ubuntu1 [44.7 kB] 570s Get:22 http://ftpmaster.internal/ubuntu noble/main arm64 libgomp1 arm64 14-20240303-1ubuntu1 [144 kB] 570s Get:23 http://ftpmaster.internal/ubuntu noble/main arm64 libitm1 arm64 14-20240303-1ubuntu1 [27.7 kB] 570s Get:24 http://ftpmaster.internal/ubuntu noble/main arm64 libatomic1 arm64 14-20240303-1ubuntu1 [11.4 kB] 570s Get:25 http://ftpmaster.internal/ubuntu noble/main arm64 libasan8 arm64 14-20240303-1ubuntu1 [2919 kB] 570s Get:26 http://ftpmaster.internal/ubuntu noble/main arm64 liblsan0 arm64 14-20240303-1ubuntu1 [1282 kB] 570s Get:27 http://ftpmaster.internal/ubuntu noble/main arm64 libtsan2 arm64 14-20240303-1ubuntu1 [2687 kB] 570s Get:28 http://ftpmaster.internal/ubuntu noble/main arm64 libubsan1 arm64 14-20240303-1ubuntu1 [1151 kB] 570s Get:29 http://ftpmaster.internal/ubuntu noble/main arm64 libhwasan0 arm64 14-20240303-1ubuntu1 [1597 kB] 570s Get:30 http://ftpmaster.internal/ubuntu noble/main arm64 libgcc-13-dev arm64 13.2.0-17ubuntu2 [2464 kB] 570s Get:31 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [20.1 MB] 571s Get:32 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-13 arm64 13.2.0-17ubuntu2 [467 kB] 571s Get:33 http://ftpmaster.internal/ubuntu noble/main arm64 gcc-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [1198 B] 571s Get:34 http://ftpmaster.internal/ubuntu noble/main arm64 gcc arm64 4:13.2.0-7ubuntu1 [5018 B] 571s Get:35 http://ftpmaster.internal/ubuntu noble/main arm64 libstdc++-13-dev arm64 13.2.0-17ubuntu2 [2322 kB] 571s Get:36 http://ftpmaster.internal/ubuntu noble/main arm64 g++-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [11.7 MB] 571s Get:37 http://ftpmaster.internal/ubuntu noble/main arm64 g++-13 arm64 13.2.0-17ubuntu2 [14.4 kB] 571s Get:38 http://ftpmaster.internal/ubuntu noble/main arm64 g++-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [962 B] 571s Get:39 http://ftpmaster.internal/ubuntu noble/main arm64 g++ arm64 4:13.2.0-7ubuntu1 [1082 B] 571s Get:40 http://ftpmaster.internal/ubuntu noble/main arm64 build-essential arm64 12.10ubuntu1 [4932 B] 571s Get:41 http://ftpmaster.internal/ubuntu noble/main arm64 dctrl-tools arm64 2.24-3build2 [65.2 kB] 571s Get:42 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-mono all 2.37-8 [502 kB] 571s Get:43 http://ftpmaster.internal/ubuntu noble/main arm64 fonts-dejavu-core all 2.37-8 [835 kB] 571s Get:44 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig-config arm64 2.15.0-1ubuntu1 [37.0 kB] 571s Get:45 http://ftpmaster.internal/ubuntu noble/main arm64 libfontconfig1 arm64 2.15.0-1ubuntu1 [142 kB] 571s Get:46 http://ftpmaster.internal/ubuntu noble/main arm64 fontconfig arm64 2.15.0-1ubuntu1 [190 kB] 571s Get:47 http://ftpmaster.internal/ubuntu noble/main arm64 libgfortran5 arm64 14-20240303-1ubuntu1 [444 kB] 571s Get:48 http://ftpmaster.internal/ubuntu noble/main arm64 libgfortran-13-dev arm64 13.2.0-17ubuntu2 [478 kB] 571s Get:49 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-13-aarch64-linux-gnu arm64 13.2.0-17ubuntu2 [10.8 MB] 571s Get:50 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-13 arm64 13.2.0-17ubuntu2 [10.3 kB] 571s Get:51 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran-aarch64-linux-gnu arm64 4:13.2.0-7ubuntu1 [1022 B] 571s Get:52 http://ftpmaster.internal/ubuntu noble/main arm64 gfortran arm64 4:13.2.0-7ubuntu1 [1164 B] 571s Get:53 http://ftpmaster.internal/ubuntu noble/main arm64 icu-devtools arm64 74.2-1ubuntu1 [209 kB] 571s Get:54 http://ftpmaster.internal/ubuntu noble/main arm64 libblas3 arm64 3.12.0-3 [143 kB] 571s Get:55 http://ftpmaster.internal/ubuntu noble/main arm64 libblas-dev arm64 3.12.0-3 [111 kB] 571s Get:56 http://ftpmaster.internal/ubuntu noble/main arm64 libbz2-dev arm64 1.0.8-5ubuntu1 [35.8 kB] 571s Get:57 http://ftpmaster.internal/ubuntu noble/main arm64 libpixman-1-0 arm64 0.42.2-1 [193 kB] 571s Get:58 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-render0 arm64 1.15-1 [16.1 kB] 571s Get:59 http://ftpmaster.internal/ubuntu noble/main arm64 libxcb-shm0 arm64 1.15-1 [5780 B] 571s Get:60 http://ftpmaster.internal/ubuntu noble/main arm64 libxrender1 arm64 1:0.9.10-1.1 [19.1 kB] 572s Get:61 http://ftpmaster.internal/ubuntu noble/main arm64 libcairo2 arm64 1.18.0-1 [550 kB] 572s Get:62 http://ftpmaster.internal/ubuntu noble/main arm64 libdatrie1 arm64 0.2.13-3 [21.7 kB] 572s Get:63 http://ftpmaster.internal/ubuntu noble/main arm64 libdeflate0 arm64 1.19-1 [43.4 kB] 572s Get:64 http://ftpmaster.internal/ubuntu noble/main arm64 libgraphite2-3 arm64 1.3.14-2 [81.5 kB] 572s Get:65 http://ftpmaster.internal/ubuntu noble/main arm64 libharfbuzz0b arm64 8.3.0-2 [463 kB] 572s Get:66 http://ftpmaster.internal/ubuntu noble/main arm64 x11-common all 1:7.7+23ubuntu2 [23.4 kB] 572s Get:67 http://ftpmaster.internal/ubuntu noble/main arm64 libice6 arm64 2:1.0.10-1build2 [41.7 kB] 572s Get:68 http://ftpmaster.internal/ubuntu noble/main arm64 libicu-dev arm64 74.2-1ubuntu1 [11.9 MB] 572s Get:69 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-turbo8 arm64 2.1.5-2ubuntu1 [160 kB] 572s Get:70 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-turbo8-dev arm64 2.1.5-2ubuntu1 [304 kB] 572s Get:71 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg8 arm64 8c-2ubuntu11 [2148 B] 572s Get:72 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg8-dev arm64 8c-2ubuntu11 [1484 B] 572s Get:73 http://ftpmaster.internal/ubuntu noble/main arm64 libjpeg-dev arm64 8c-2ubuntu11 [1482 B] 572s Get:74 http://ftpmaster.internal/ubuntu noble/main arm64 liblapack3 arm64 3.12.0-3 [2241 kB] 572s Get:75 http://ftpmaster.internal/ubuntu noble/main arm64 liblapack-dev arm64 3.12.0-3 [4293 kB] 572s Get:76 http://ftpmaster.internal/ubuntu noble/main arm64 liblerc4 arm64 4.0.0+ds-4ubuntu1 [153 kB] 572s Get:77 http://ftpmaster.internal/ubuntu noble/main arm64 libncurses-dev arm64 6.4+20240113-1ubuntu1 [385 kB] 572s Get:78 http://ftpmaster.internal/ubuntu noble/main arm64 libthai-data all 0.1.29-2 [158 kB] 572s Get:79 http://ftpmaster.internal/ubuntu noble/main arm64 libthai0 arm64 0.1.29-2 [18.1 kB] 572s Get:80 http://ftpmaster.internal/ubuntu noble/main arm64 libpango-1.0-0 arm64 1.51.0+ds-4 [226 kB] 572s Get:81 http://ftpmaster.internal/ubuntu noble/main arm64 libpangoft2-1.0-0 arm64 1.51.0+ds-4 [41.2 kB] 572s Get:82 http://ftpmaster.internal/ubuntu noble/main arm64 libpangocairo-1.0-0 arm64 1.51.0+ds-4 [27.6 kB] 572s Get:83 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper1 arm64 1.1.29 [13.1 kB] 572s Get:84 http://ftpmaster.internal/ubuntu noble/main arm64 libpaper-utils arm64 1.1.29 [8480 B] 572s Get:85 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-16-0 arm64 10.42-4ubuntu1 [195 kB] 572s Get:86 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-32-0 arm64 10.42-4ubuntu1 [183 kB] 572s Get:87 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-posix3 arm64 10.42-4ubuntu1 [6654 B] 572s Get:88 http://ftpmaster.internal/ubuntu noble/main arm64 libpcre2-dev arm64 10.42-4ubuntu1 [679 kB] 572s Get:89 http://ftpmaster.internal/ubuntu noble/main arm64 libpkgconf3 arm64 1.8.1-2 [31.2 kB] 572s Get:90 http://ftpmaster.internal/ubuntu noble/main arm64 zlib1g-dev arm64 1:1.3.dfsg-3ubuntu1 [895 kB] 572s Get:91 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libpng-dev arm64 1.6.43-3 [267 kB] 572s Get:92 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libreadline-dev arm64 8.2-3.1 [177 kB] 573s Get:93 http://ftpmaster.internal/ubuntu noble/main arm64 libsharpyuv0 arm64 1.3.2-0.4 [14.4 kB] 573s Get:94 http://ftpmaster.internal/ubuntu noble/main arm64 libsm6 arm64 2:1.2.3-1build2 [16.1 kB] 573s Get:95 http://ftpmaster.internal/ubuntu noble/main arm64 libtcl8.6 arm64 8.6.13+dfsg-2 [980 kB] 573s Get:96 http://ftpmaster.internal/ubuntu noble/main arm64 libjbig0 arm64 2.1-6.1ubuntu1 [28.9 kB] 573s Get:97 http://ftpmaster.internal/ubuntu noble/main arm64 libwebp7 arm64 1.3.2-0.4 [191 kB] 573s Get:98 http://ftpmaster.internal/ubuntu noble/main arm64 libtiff6 arm64 4.5.1+git230720-3ubuntu1 [226 kB] 573s Get:99 http://ftpmaster.internal/ubuntu noble/main arm64 libxft2 arm64 2.3.6-1 [43.3 kB] 573s Get:100 http://ftpmaster.internal/ubuntu noble/main arm64 libxss1 arm64 1:1.2.3-1build2 [8252 B] 573s Get:101 http://ftpmaster.internal/ubuntu noble/main arm64 libtk8.6 arm64 8.6.13-2 [760 kB] 573s Get:102 http://ftpmaster.internal/ubuntu noble-proposed/main arm64 libxt6t64 arm64 1:1.2.1-1.2 [168 kB] 573s Get:103 http://ftpmaster.internal/ubuntu noble/main arm64 pkgconf-bin arm64 1.8.1-2 [20.4 kB] 573s Get:104 http://ftpmaster.internal/ubuntu noble/main arm64 pkgconf arm64 1.8.1-2 [16.7 kB] 573s Get:105 http://ftpmaster.internal/ubuntu noble/main arm64 pkg-config arm64 1.8.1-2 [7170 B] 573s Get:106 http://ftpmaster.internal/ubuntu noble/main arm64 zip arm64 3.0-13 [172 kB] 573s Get:107 http://ftpmaster.internal/ubuntu noble/main arm64 unzip arm64 6.0-28ubuntu3 [171 kB] 573s Get:108 http://ftpmaster.internal/ubuntu noble/main arm64 xdg-utils all 1.1.3-4.1ubuntu3 [62.0 kB] 573s Get:109 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 r-base-core arm64 4.3.3-2build1 [26.8 MB] 574s Get:110 http://ftpmaster.internal/ubuntu noble/main arm64 liblzma-dev arm64 5.4.5-0.3 [209 kB] 574s Get:111 http://ftpmaster.internal/ubuntu noble-proposed/universe arm64 r-base-dev all 4.3.3-2build1 [4334 B] 574s Get:112 http://ftpmaster.internal/ubuntu noble/universe arm64 pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 574s Get:113 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-gmp arm64 0.7-4-1 [299 kB] 574s Get:114 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-mass arm64 7.3-60.0.1-1 [1119 kB] 574s Get:115 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-rmpfr arm64 0.9-5-1 [1219 kB] 574s Get:116 http://ftpmaster.internal/ubuntu noble/universe arm64 r-cran-sfsmisc all 1.1-16-1 [651 kB] 575s Preconfiguring packages ... 575s Fetched 134 MB in 6s (23.4 MB/s) 575s dpkg: libpsl5:arm64: dependency problems, but removing anyway as you requested: 575s wget depends on libpsl5 (>= 0.16.0). 575s libcurl4:arm64 depends on libpsl5 (>= 0.16.0). 575s libcurl3-gnutls:arm64 depends on libpsl5 (>= 0.16.0). 575s 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75866 files and directories currently installed.) 576s Removing libpsl5:arm64 (0.21.2-1build1) ... 576s Selecting previously unselected package libpsl5t64:arm64. 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75861 files and directories currently installed.) 576s Preparing to unpack .../libpsl5t64_0.21.2-1.1_arm64.deb ... 576s Unpacking libpsl5t64:arm64 (0.21.2-1.1) ... 576s Preparing to unpack .../curl_8.5.0-2ubuntu7_arm64.deb ... 576s Unpacking curl (8.5.0-2ubuntu7) over (8.5.0-2ubuntu2) ... 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75867 files and directories currently installed.) 576s Removing libcurl4:arm64 (8.5.0-2ubuntu2) ... 576s Selecting previously unselected package libcurl4t64:arm64. 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75862 files and directories currently installed.) 576s Preparing to unpack .../libcurl4t64_8.5.0-2ubuntu7_arm64.deb ... 576s Unpacking libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 576s dpkg: libpng16-16:arm64: dependency problems, but removing anyway as you requested: 576s libplymouth5:arm64 depends on libpng16-16 (>= 1.6.2). 576s libfreetype6:arm64 depends on libpng16-16 (>= 1.6.2-1). 576s 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75868 files and directories currently installed.) 576s Removing libpng16-16:arm64 (1.6.43-1) ... 576s Selecting previously unselected package libpng16-16t64:arm64. 576s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75858 files and directories currently installed.) 576s Preparing to unpack .../libpng16-16t64_1.6.43-3_arm64.deb ... 576s Unpacking libpng16-16t64:arm64 (1.6.43-3) ... 577s dpkg: libreadline8:arm64: dependency problems, but removing anyway as you requested: 577s parted depends on libreadline8 (>= 6.0). 577s libpython3.12-stdlib:arm64 depends on libreadline8 (>= 7.0~beta). 577s libpython3.11-stdlib:arm64 depends on libreadline8 (>= 7.0~beta). 577s gpgsm depends on libreadline8 (>= 6.0). 577s gpgconf depends on libreadline8 (>= 6.0). 577s gpg depends on libreadline8 (>= 6.0). 577s gawk depends on libreadline8 (>= 6.0). 577s fdisk depends on libreadline8 (>= 6.0). 577s 577s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75869 files and directories currently installed.) 577s Removing libreadline8:arm64 (8.2-3) ... 577s Selecting previously unselected package libreadline8t64:arm64. 577s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75857 files and directories currently installed.) 577s Preparing to unpack .../libreadline8t64_8.2-3.1_arm64.deb ... 577s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' 577s Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' 577s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' 577s Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' 577s Unpacking libreadline8t64:arm64 (8.2-3.1) ... 577s dpkg: libtirpc3:arm64: dependency problems, but removing anyway as you requested: 577s lsof depends on libtirpc3 (>= 1.0.2). 577s libpython3.12-stdlib:arm64 depends on libtirpc3 (>= 1.0.2). 577s libpython3.11-stdlib:arm64 depends on libtirpc3 (>= 1.0.2). 577s libnsl2:arm64 depends on libtirpc3 (>= 1.0.2). 577s iproute2 depends on libtirpc3 (>= 1.0.2). 577s 577s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75877 files and directories currently installed.) 577s Removing libtirpc3:arm64 (1.3.4+ds-1build1) ... 577s Selecting previously unselected package libtirpc3t64:arm64. 577s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75871 files and directories currently installed.) 577s Preparing to unpack .../000-libtirpc3t64_1.3.4+ds-1.1_arm64.deb ... 577s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' 577s Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' 577s Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 577s Selecting previously unselected package libc-dev-bin. 577s Preparing to unpack .../001-libc-dev-bin_2.39-0ubuntu2_arm64.deb ... 577s Unpacking libc-dev-bin (2.39-0ubuntu2) ... 577s Selecting previously unselected package linux-libc-dev:arm64. 577s Preparing to unpack .../002-linux-libc-dev_6.8.0-11.11_arm64.deb ... 577s Unpacking linux-libc-dev:arm64 (6.8.0-11.11) ... 578s Selecting previously unselected package libcrypt-dev:arm64. 578s Preparing to unpack .../003-libcrypt-dev_1%3a4.4.36-4_arm64.deb ... 578s Unpacking libcrypt-dev:arm64 (1:4.4.36-4) ... 578s Selecting previously unselected package libtirpc-dev:arm64. 578s Preparing to unpack .../004-libtirpc-dev_1.3.4+ds-1.1_arm64.deb ... 578s Unpacking libtirpc-dev:arm64 (1.3.4+ds-1.1) ... 578s Selecting previously unselected package libnsl-dev:arm64. 578s Preparing to unpack .../005-libnsl-dev_1.3.0-3_arm64.deb ... 578s Unpacking libnsl-dev:arm64 (1.3.0-3) ... 578s Selecting previously unselected package rpcsvc-proto. 578s Preparing to unpack .../006-rpcsvc-proto_1.4.2-0ubuntu6_arm64.deb ... 578s Unpacking rpcsvc-proto (1.4.2-0ubuntu6) ... 578s Selecting previously unselected package libc6-dev:arm64. 578s Preparing to unpack .../007-libc6-dev_2.39-0ubuntu2_arm64.deb ... 578s Unpacking libc6-dev:arm64 (2.39-0ubuntu2) ... 579s Selecting previously unselected package libisl23:arm64. 579s Preparing to unpack .../008-libisl23_0.26-3_arm64.deb ... 579s Unpacking libisl23:arm64 (0.26-3) ... 579s Selecting previously unselected package libmpc3:arm64. 579s Preparing to unpack .../009-libmpc3_1.3.1-1_arm64.deb ... 579s Unpacking libmpc3:arm64 (1.3.1-1) ... 579s Selecting previously unselected package cpp-13-aarch64-linux-gnu. 579s Preparing to unpack .../010-cpp-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 579s Unpacking cpp-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 579s Selecting previously unselected package cpp-13. 579s Preparing to unpack .../011-cpp-13_13.2.0-17ubuntu2_arm64.deb ... 579s Unpacking cpp-13 (13.2.0-17ubuntu2) ... 579s Selecting previously unselected package cpp-aarch64-linux-gnu. 579s Preparing to unpack .../012-cpp-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 579s Unpacking cpp-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 579s Selecting previously unselected package cpp. 579s Preparing to unpack .../013-cpp_4%3a13.2.0-7ubuntu1_arm64.deb ... 579s Unpacking cpp (4:13.2.0-7ubuntu1) ... 579s Selecting previously unselected package libcc1-0:arm64. 579s Preparing to unpack .../014-libcc1-0_14-20240303-1ubuntu1_arm64.deb ... 579s Unpacking libcc1-0:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libgomp1:arm64. 580s Preparing to unpack .../015-libgomp1_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libgomp1:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libitm1:arm64. 580s Preparing to unpack .../016-libitm1_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libitm1:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libatomic1:arm64. 580s Preparing to unpack .../017-libatomic1_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libatomic1:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libasan8:arm64. 580s Preparing to unpack .../018-libasan8_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libasan8:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package liblsan0:arm64. 580s Preparing to unpack .../019-liblsan0_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking liblsan0:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libtsan2:arm64. 580s Preparing to unpack .../020-libtsan2_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libtsan2:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libubsan1:arm64. 580s Preparing to unpack .../021-libubsan1_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libubsan1:arm64 (14-20240303-1ubuntu1) ... 580s Selecting previously unselected package libhwasan0:arm64. 580s Preparing to unpack .../022-libhwasan0_14-20240303-1ubuntu1_arm64.deb ... 580s Unpacking libhwasan0:arm64 (14-20240303-1ubuntu1) ... 581s Selecting previously unselected package libgcc-13-dev:arm64. 581s Preparing to unpack .../023-libgcc-13-dev_13.2.0-17ubuntu2_arm64.deb ... 581s Unpacking libgcc-13-dev:arm64 (13.2.0-17ubuntu2) ... 581s Selecting previously unselected package gcc-13-aarch64-linux-gnu. 581s Preparing to unpack .../024-gcc-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 581s Unpacking gcc-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 582s Selecting previously unselected package gcc-13. 582s Preparing to unpack .../025-gcc-13_13.2.0-17ubuntu2_arm64.deb ... 582s Unpacking gcc-13 (13.2.0-17ubuntu2) ... 582s Selecting previously unselected package gcc-aarch64-linux-gnu. 582s Preparing to unpack .../026-gcc-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 582s Unpacking gcc-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 582s Selecting previously unselected package gcc. 582s Preparing to unpack .../027-gcc_4%3a13.2.0-7ubuntu1_arm64.deb ... 582s Unpacking gcc (4:13.2.0-7ubuntu1) ... 582s Selecting previously unselected package libstdc++-13-dev:arm64. 582s Preparing to unpack .../028-libstdc++-13-dev_13.2.0-17ubuntu2_arm64.deb ... 582s Unpacking libstdc++-13-dev:arm64 (13.2.0-17ubuntu2) ... 583s Selecting previously unselected package g++-13-aarch64-linux-gnu. 583s Preparing to unpack .../029-g++-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 583s Unpacking g++-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 583s Selecting previously unselected package g++-13. 583s Preparing to unpack .../030-g++-13_13.2.0-17ubuntu2_arm64.deb ... 583s Unpacking g++-13 (13.2.0-17ubuntu2) ... 583s Selecting previously unselected package g++-aarch64-linux-gnu. 583s Preparing to unpack .../031-g++-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 583s Unpacking g++-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 583s Selecting previously unselected package g++. 583s Preparing to unpack .../032-g++_4%3a13.2.0-7ubuntu1_arm64.deb ... 583s Unpacking g++ (4:13.2.0-7ubuntu1) ... 583s Selecting previously unselected package build-essential. 583s Preparing to unpack .../033-build-essential_12.10ubuntu1_arm64.deb ... 583s Unpacking build-essential (12.10ubuntu1) ... 583s Selecting previously unselected package dctrl-tools. 583s Preparing to unpack .../034-dctrl-tools_2.24-3build2_arm64.deb ... 583s Unpacking dctrl-tools (2.24-3build2) ... 583s Selecting previously unselected package fonts-dejavu-mono. 583s Preparing to unpack .../035-fonts-dejavu-mono_2.37-8_all.deb ... 583s Unpacking fonts-dejavu-mono (2.37-8) ... 584s Selecting previously unselected package fonts-dejavu-core. 584s Preparing to unpack .../036-fonts-dejavu-core_2.37-8_all.deb ... 584s Unpacking fonts-dejavu-core (2.37-8) ... 584s Selecting previously unselected package fontconfig-config. 584s Preparing to unpack .../037-fontconfig-config_2.15.0-1ubuntu1_arm64.deb ... 584s Unpacking fontconfig-config (2.15.0-1ubuntu1) ... 584s Selecting previously unselected package libfontconfig1:arm64. 584s Preparing to unpack .../038-libfontconfig1_2.15.0-1ubuntu1_arm64.deb ... 584s Unpacking libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 584s Selecting previously unselected package fontconfig. 584s Preparing to unpack .../039-fontconfig_2.15.0-1ubuntu1_arm64.deb ... 584s Unpacking fontconfig (2.15.0-1ubuntu1) ... 584s Selecting previously unselected package libgfortran5:arm64. 584s Preparing to unpack .../040-libgfortran5_14-20240303-1ubuntu1_arm64.deb ... 584s Unpacking libgfortran5:arm64 (14-20240303-1ubuntu1) ... 584s Selecting previously unselected package libgfortran-13-dev:arm64. 584s Preparing to unpack .../041-libgfortran-13-dev_13.2.0-17ubuntu2_arm64.deb ... 584s Unpacking libgfortran-13-dev:arm64 (13.2.0-17ubuntu2) ... 585s Selecting previously unselected package gfortran-13-aarch64-linux-gnu. 585s Preparing to unpack .../042-gfortran-13-aarch64-linux-gnu_13.2.0-17ubuntu2_arm64.deb ... 585s Unpacking gfortran-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 585s Selecting previously unselected package gfortran-13. 585s Preparing to unpack .../043-gfortran-13_13.2.0-17ubuntu2_arm64.deb ... 585s Unpacking gfortran-13 (13.2.0-17ubuntu2) ... 585s Selecting previously unselected package gfortran-aarch64-linux-gnu. 585s Preparing to unpack .../044-gfortran-aarch64-linux-gnu_4%3a13.2.0-7ubuntu1_arm64.deb ... 585s Unpacking gfortran-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 585s Selecting previously unselected package gfortran. 585s Preparing to unpack .../045-gfortran_4%3a13.2.0-7ubuntu1_arm64.deb ... 585s Unpacking gfortran (4:13.2.0-7ubuntu1) ... 585s Selecting previously unselected package icu-devtools. 585s Preparing to unpack .../046-icu-devtools_74.2-1ubuntu1_arm64.deb ... 585s Unpacking icu-devtools (74.2-1ubuntu1) ... 585s Selecting previously unselected package libblas3:arm64. 585s Preparing to unpack .../047-libblas3_3.12.0-3_arm64.deb ... 585s Unpacking libblas3:arm64 (3.12.0-3) ... 585s Selecting previously unselected package libblas-dev:arm64. 585s Preparing to unpack .../048-libblas-dev_3.12.0-3_arm64.deb ... 585s Unpacking libblas-dev:arm64 (3.12.0-3) ... 586s Selecting previously unselected package libbz2-dev:arm64. 586s Preparing to unpack .../049-libbz2-dev_1.0.8-5ubuntu1_arm64.deb ... 586s Unpacking libbz2-dev:arm64 (1.0.8-5ubuntu1) ... 586s Selecting previously unselected package libpixman-1-0:arm64. 586s Preparing to unpack .../050-libpixman-1-0_0.42.2-1_arm64.deb ... 586s Unpacking libpixman-1-0:arm64 (0.42.2-1) ... 586s Selecting previously unselected package libxcb-render0:arm64. 586s Preparing to unpack .../051-libxcb-render0_1.15-1_arm64.deb ... 586s Unpacking libxcb-render0:arm64 (1.15-1) ... 586s Selecting previously unselected package libxcb-shm0:arm64. 586s Preparing to unpack .../052-libxcb-shm0_1.15-1_arm64.deb ... 586s Unpacking libxcb-shm0:arm64 (1.15-1) ... 586s Selecting previously unselected package libxrender1:arm64. 586s Preparing to unpack .../053-libxrender1_1%3a0.9.10-1.1_arm64.deb ... 586s Unpacking libxrender1:arm64 (1:0.9.10-1.1) ... 586s Selecting previously unselected package libcairo2:arm64. 586s Preparing to unpack .../054-libcairo2_1.18.0-1_arm64.deb ... 586s Unpacking libcairo2:arm64 (1.18.0-1) ... 586s Selecting previously unselected package libdatrie1:arm64. 586s Preparing to unpack .../055-libdatrie1_0.2.13-3_arm64.deb ... 586s Unpacking libdatrie1:arm64 (0.2.13-3) ... 586s Selecting previously unselected package libdeflate0:arm64. 586s Preparing to unpack .../056-libdeflate0_1.19-1_arm64.deb ... 586s Unpacking libdeflate0:arm64 (1.19-1) ... 586s Selecting previously unselected package libgraphite2-3:arm64. 586s Preparing to unpack .../057-libgraphite2-3_1.3.14-2_arm64.deb ... 586s Unpacking libgraphite2-3:arm64 (1.3.14-2) ... 586s Selecting previously unselected package libharfbuzz0b:arm64. 586s Preparing to unpack .../058-libharfbuzz0b_8.3.0-2_arm64.deb ... 586s Unpacking libharfbuzz0b:arm64 (8.3.0-2) ... 586s Selecting previously unselected package x11-common. 586s Preparing to unpack .../059-x11-common_1%3a7.7+23ubuntu2_all.deb ... 586s Unpacking x11-common (1:7.7+23ubuntu2) ... 586s Selecting previously unselected package libice6:arm64. 586s Preparing to unpack .../060-libice6_2%3a1.0.10-1build2_arm64.deb ... 586s Unpacking libice6:arm64 (2:1.0.10-1build2) ... 586s Selecting previously unselected package libicu-dev:arm64. 586s Preparing to unpack .../061-libicu-dev_74.2-1ubuntu1_arm64.deb ... 586s Unpacking libicu-dev:arm64 (74.2-1ubuntu1) ... 587s Selecting previously unselected package libjpeg-turbo8:arm64. 587s Preparing to unpack .../062-libjpeg-turbo8_2.1.5-2ubuntu1_arm64.deb ... 587s Unpacking libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 587s Selecting previously unselected package libjpeg-turbo8-dev:arm64. 587s Preparing to unpack .../063-libjpeg-turbo8-dev_2.1.5-2ubuntu1_arm64.deb ... 587s Unpacking libjpeg-turbo8-dev:arm64 (2.1.5-2ubuntu1) ... 587s Selecting previously unselected package libjpeg8:arm64. 587s Preparing to unpack .../064-libjpeg8_8c-2ubuntu11_arm64.deb ... 587s Unpacking libjpeg8:arm64 (8c-2ubuntu11) ... 587s Selecting previously unselected package libjpeg8-dev:arm64. 588s Preparing to unpack .../065-libjpeg8-dev_8c-2ubuntu11_arm64.deb ... 588s Unpacking libjpeg8-dev:arm64 (8c-2ubuntu11) ... 588s Selecting previously unselected package libjpeg-dev:arm64. 588s Preparing to unpack .../066-libjpeg-dev_8c-2ubuntu11_arm64.deb ... 588s Unpacking libjpeg-dev:arm64 (8c-2ubuntu11) ... 588s Selecting previously unselected package liblapack3:arm64. 588s Preparing to unpack .../067-liblapack3_3.12.0-3_arm64.deb ... 588s Unpacking liblapack3:arm64 (3.12.0-3) ... 588s Selecting previously unselected package liblapack-dev:arm64. 588s Preparing to unpack .../068-liblapack-dev_3.12.0-3_arm64.deb ... 588s Unpacking liblapack-dev:arm64 (3.12.0-3) ... 588s Selecting previously unselected package liblerc4:arm64. 588s Preparing to unpack .../069-liblerc4_4.0.0+ds-4ubuntu1_arm64.deb ... 588s Unpacking liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 588s Selecting previously unselected package libncurses-dev:arm64. 588s Preparing to unpack .../070-libncurses-dev_6.4+20240113-1ubuntu1_arm64.deb ... 588s Unpacking libncurses-dev:arm64 (6.4+20240113-1ubuntu1) ... 588s Selecting previously unselected package libthai-data. 588s Preparing to unpack .../071-libthai-data_0.1.29-2_all.deb ... 588s Unpacking libthai-data (0.1.29-2) ... 588s Selecting previously unselected package libthai0:arm64. 588s Preparing to unpack .../072-libthai0_0.1.29-2_arm64.deb ... 588s Unpacking libthai0:arm64 (0.1.29-2) ... 588s Selecting previously unselected package libpango-1.0-0:arm64. 589s Preparing to unpack .../073-libpango-1.0-0_1.51.0+ds-4_arm64.deb ... 589s Unpacking libpango-1.0-0:arm64 (1.51.0+ds-4) ... 589s Selecting previously unselected package libpangoft2-1.0-0:arm64. 589s Preparing to unpack .../074-libpangoft2-1.0-0_1.51.0+ds-4_arm64.deb ... 589s Unpacking libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 589s Selecting previously unselected package libpangocairo-1.0-0:arm64. 589s Preparing to unpack .../075-libpangocairo-1.0-0_1.51.0+ds-4_arm64.deb ... 589s Unpacking libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 589s Selecting previously unselected package libpaper1:arm64. 589s Preparing to unpack .../076-libpaper1_1.1.29_arm64.deb ... 589s Unpacking libpaper1:arm64 (1.1.29) ... 589s Selecting previously unselected package libpaper-utils. 589s Preparing to unpack .../077-libpaper-utils_1.1.29_arm64.deb ... 589s Unpacking libpaper-utils (1.1.29) ... 589s Selecting previously unselected package libpcre2-16-0:arm64. 589s Preparing to unpack .../078-libpcre2-16-0_10.42-4ubuntu1_arm64.deb ... 589s Unpacking libpcre2-16-0:arm64 (10.42-4ubuntu1) ... 589s Selecting previously unselected package libpcre2-32-0:arm64. 589s Preparing to unpack .../079-libpcre2-32-0_10.42-4ubuntu1_arm64.deb ... 589s Unpacking libpcre2-32-0:arm64 (10.42-4ubuntu1) ... 589s Selecting previously unselected package libpcre2-posix3:arm64. 589s Preparing to unpack .../080-libpcre2-posix3_10.42-4ubuntu1_arm64.deb ... 589s Unpacking libpcre2-posix3:arm64 (10.42-4ubuntu1) ... 589s Selecting previously unselected package libpcre2-dev:arm64. 589s Preparing to unpack .../081-libpcre2-dev_10.42-4ubuntu1_arm64.deb ... 589s Unpacking libpcre2-dev:arm64 (10.42-4ubuntu1) ... 589s Selecting previously unselected package libpkgconf3:arm64. 589s Preparing to unpack .../082-libpkgconf3_1.8.1-2_arm64.deb ... 589s Unpacking libpkgconf3:arm64 (1.8.1-2) ... 589s Selecting previously unselected package zlib1g-dev:arm64. 589s Preparing to unpack .../083-zlib1g-dev_1%3a1.3.dfsg-3ubuntu1_arm64.deb ... 589s Unpacking zlib1g-dev:arm64 (1:1.3.dfsg-3ubuntu1) ... 589s Selecting previously unselected package libpng-dev:arm64. 589s Preparing to unpack .../084-libpng-dev_1.6.43-3_arm64.deb ... 589s Unpacking libpng-dev:arm64 (1.6.43-3) ... 589s Selecting previously unselected package libreadline-dev:arm64. 589s Preparing to unpack .../085-libreadline-dev_8.2-3.1_arm64.deb ... 589s Unpacking libreadline-dev:arm64 (8.2-3.1) ... 589s Selecting previously unselected package libsharpyuv0:arm64. 590s Preparing to unpack .../086-libsharpyuv0_1.3.2-0.4_arm64.deb ... 590s Unpacking libsharpyuv0:arm64 (1.3.2-0.4) ... 590s Selecting previously unselected package libsm6:arm64. 590s Preparing to unpack .../087-libsm6_2%3a1.2.3-1build2_arm64.deb ... 590s Unpacking libsm6:arm64 (2:1.2.3-1build2) ... 590s Selecting previously unselected package libtcl8.6:arm64. 590s Preparing to unpack .../088-libtcl8.6_8.6.13+dfsg-2_arm64.deb ... 590s Unpacking libtcl8.6:arm64 (8.6.13+dfsg-2) ... 590s Selecting previously unselected package libjbig0:arm64. 590s Preparing to unpack .../089-libjbig0_2.1-6.1ubuntu1_arm64.deb ... 590s Unpacking libjbig0:arm64 (2.1-6.1ubuntu1) ... 590s Selecting previously unselected package libwebp7:arm64. 590s Preparing to unpack .../090-libwebp7_1.3.2-0.4_arm64.deb ... 590s Unpacking libwebp7:arm64 (1.3.2-0.4) ... 590s Selecting previously unselected package libtiff6:arm64. 590s Preparing to unpack .../091-libtiff6_4.5.1+git230720-3ubuntu1_arm64.deb ... 590s Unpacking libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 590s Selecting previously unselected package libxft2:arm64. 590s Preparing to unpack .../092-libxft2_2.3.6-1_arm64.deb ... 590s Unpacking libxft2:arm64 (2.3.6-1) ... 590s Selecting previously unselected package libxss1:arm64. 590s Preparing to unpack .../093-libxss1_1%3a1.2.3-1build2_arm64.deb ... 590s Unpacking libxss1:arm64 (1:1.2.3-1build2) ... 590s Selecting previously unselected package libtk8.6:arm64. 590s Preparing to unpack .../094-libtk8.6_8.6.13-2_arm64.deb ... 590s Unpacking libtk8.6:arm64 (8.6.13-2) ... 590s Selecting previously unselected package libxt6t64:arm64. 590s Preparing to unpack .../095-libxt6t64_1%3a1.2.1-1.2_arm64.deb ... 590s Unpacking libxt6t64:arm64 (1:1.2.1-1.2) ... 590s Selecting previously unselected package pkgconf-bin. 591s Preparing to unpack .../096-pkgconf-bin_1.8.1-2_arm64.deb ... 591s Unpacking pkgconf-bin (1.8.1-2) ... 591s Selecting previously unselected package pkgconf:arm64. 591s Preparing to unpack .../097-pkgconf_1.8.1-2_arm64.deb ... 591s Unpacking pkgconf:arm64 (1.8.1-2) ... 591s Selecting previously unselected package pkg-config:arm64. 591s Preparing to unpack .../098-pkg-config_1.8.1-2_arm64.deb ... 591s Unpacking pkg-config:arm64 (1.8.1-2) ... 591s Selecting previously unselected package zip. 591s Preparing to unpack .../099-zip_3.0-13_arm64.deb ... 591s Unpacking zip (3.0-13) ... 591s Selecting previously unselected package unzip. 591s Preparing to unpack .../100-unzip_6.0-28ubuntu3_arm64.deb ... 591s Unpacking unzip (6.0-28ubuntu3) ... 591s Selecting previously unselected package xdg-utils. 591s Preparing to unpack .../101-xdg-utils_1.1.3-4.1ubuntu3_all.deb ... 591s Unpacking xdg-utils (1.1.3-4.1ubuntu3) ... 591s Selecting previously unselected package r-base-core. 591s Preparing to unpack .../102-r-base-core_4.3.3-2build1_arm64.deb ... 591s Unpacking r-base-core (4.3.3-2build1) ... 592s Selecting previously unselected package liblzma-dev:arm64. 592s Preparing to unpack .../103-liblzma-dev_5.4.5-0.3_arm64.deb ... 592s Unpacking liblzma-dev:arm64 (5.4.5-0.3) ... 592s Selecting previously unselected package r-base-dev. 592s Preparing to unpack .../104-r-base-dev_4.3.3-2build1_all.deb ... 592s Unpacking r-base-dev (4.3.3-2build1) ... 592s Selecting previously unselected package pkg-r-autopkgtest. 592s Preparing to unpack .../105-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 592s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 592s Selecting previously unselected package r-cran-gmp. 592s Preparing to unpack .../106-r-cran-gmp_0.7-4-1_arm64.deb ... 592s Unpacking r-cran-gmp (0.7-4-1) ... 592s Selecting previously unselected package r-cran-mass. 592s Preparing to unpack .../107-r-cran-mass_7.3-60.0.1-1_arm64.deb ... 592s Unpacking r-cran-mass (7.3-60.0.1-1) ... 592s Selecting previously unselected package r-cran-rmpfr. 592s Preparing to unpack .../108-r-cran-rmpfr_0.9-5-1_arm64.deb ... 592s Unpacking r-cran-rmpfr (0.9-5-1) ... 593s Selecting previously unselected package r-cran-sfsmisc. 593s Preparing to unpack .../109-r-cran-sfsmisc_1.1-16-1_all.deb ... 593s Unpacking r-cran-sfsmisc (1.1-16-1) ... 593s Selecting previously unselected package autopkgtest-satdep. 593s Preparing to unpack .../110-2-autopkgtest-satdep.deb ... 593s Unpacking autopkgtest-satdep (0) ... 593s Setting up libgraphite2-3:arm64 (1.3.14-2) ... 593s Setting up libpixman-1-0:arm64 (0.42.2-1) ... 593s Setting up libsharpyuv0:arm64 (1.3.2-0.4) ... 593s Setting up libpaper1:arm64 (1.1.29) ... 593s 593s Creating config file /etc/papersize with new version 593s Setting up liblerc4:arm64 (4.0.0+ds-4ubuntu1) ... 593s Setting up libxrender1:arm64 (1:0.9.10-1.1) ... 593s Setting up libdatrie1:arm64 (0.2.13-3) ... 593s Setting up libtirpc3t64:arm64 (1.3.4+ds-1.1) ... 593s Setting up libxcb-render0:arm64 (1.15-1) ... 593s Setting up unzip (6.0-28ubuntu3) ... 593s Setting up x11-common (1:7.7+23ubuntu2) ... 594s Setting up libpsl5t64:arm64 (0.21.2-1.1) ... 594s Setting up libdeflate0:arm64 (1.19-1) ... 594s Setting up linux-libc-dev:arm64 (6.8.0-11.11) ... 594s Setting up libxcb-shm0:arm64 (1.15-1) ... 594s Setting up libpaper-utils (1.1.29) ... 594s Setting up libgomp1:arm64 (14-20240303-1ubuntu1) ... 594s Setting up libjbig0:arm64 (2.1-6.1ubuntu1) ... 594s Setting up libpcre2-16-0:arm64 (10.42-4ubuntu1) ... 594s Setting up zip (3.0-13) ... 594s Setting up libpcre2-32-0:arm64 (10.42-4ubuntu1) ... 594s Setting up libblas3:arm64 (3.12.0-3) ... 594s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 594s Setting up libtirpc-dev:arm64 (1.3.4+ds-1.1) ... 594s Setting up libpkgconf3:arm64 (1.8.1-2) ... 594s Setting up rpcsvc-proto (1.4.2-0ubuntu6) ... 594s Setting up fonts-dejavu-mono (2.37-8) ... 594s Setting up libpng16-16t64:arm64 (1.6.43-3) ... 594s Setting up libmpc3:arm64 (1.3.1-1) ... 594s Setting up libatomic1:arm64 (14-20240303-1ubuntu1) ... 594s Setting up libtcl8.6:arm64 (8.6.13+dfsg-2) ... 594s Setting up icu-devtools (74.2-1ubuntu1) ... 594s Setting up fonts-dejavu-core (2.37-8) ... 594s Setting up pkgconf-bin (1.8.1-2) ... 594s Setting up libjpeg-turbo8:arm64 (2.1.5-2ubuntu1) ... 594s Setting up libgfortran5:arm64 (14-20240303-1ubuntu1) ... 594s Setting up libwebp7:arm64 (1.3.2-0.4) ... 594s Setting up libreadline8t64:arm64 (8.2-3.1) ... 595s Setting up liblzma-dev:arm64 (5.4.5-0.3) ... 595s Setting up libubsan1:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libpcre2-posix3:arm64 (10.42-4ubuntu1) ... 595s Setting up libnsl-dev:arm64 (1.3.0-3) ... 595s Setting up libhwasan0:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libcrypt-dev:arm64 (1:4.4.36-4) ... 595s Setting up libasan8:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libharfbuzz0b:arm64 (8.3.0-2) ... 595s Setting up libthai-data (0.1.29-2) ... 595s Setting up libxss1:arm64 (1:1.2.3-1build2) ... 595s Setting up libtsan2:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libisl23:arm64 (0.26-3) ... 595s Setting up libc-dev-bin (2.39-0ubuntu2) ... 595s Setting up xdg-utils (1.1.3-4.1ubuntu3) ... 595s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 595s Setting up libcc1-0:arm64 (14-20240303-1ubuntu1) ... 595s Setting up liblsan0:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libblas-dev:arm64 (3.12.0-3) ... 595s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so to provide /usr/lib/aarch64-linux-gnu/libblas.so (libblas.so-aarch64-linux-gnu) in auto mode 595s Setting up dctrl-tools (2.24-3build2) ... 595s Setting up libitm1:arm64 (14-20240303-1ubuntu1) ... 595s Setting up libjpeg8:arm64 (8c-2ubuntu11) ... 595s Setting up libice6:arm64 (2:1.0.10-1build2) ... 595s Setting up liblapack3:arm64 (3.12.0-3) ... 595s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 595s Setting up cpp-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 595s Setting up libcurl4t64:arm64 (8.5.0-2ubuntu7) ... 595s Setting up fontconfig-config (2.15.0-1ubuntu1) ... 595s Setting up pkgconf:arm64 (1.8.1-2) ... 595s Setting up libthai0:arm64 (0.1.29-2) ... 595s Setting up cpp-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 595s Setting up liblapack-dev:arm64 (3.12.0-3) ... 595s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so to provide /usr/lib/aarch64-linux-gnu/liblapack.so (liblapack.so-aarch64-linux-gnu) in auto mode 595s Setting up pkg-config:arm64 (1.8.1-2) ... 595s Setting up libgcc-13-dev:arm64 (13.2.0-17ubuntu2) ... 595s Setting up libtiff6:arm64 (4.5.1+git230720-3ubuntu1) ... 595s Setting up libc6-dev:arm64 (2.39-0ubuntu2) ... 595s Setting up curl (8.5.0-2ubuntu7) ... 595s Setting up libfontconfig1:arm64 (2.15.0-1ubuntu1) ... 595s Setting up libgfortran-13-dev:arm64 (13.2.0-17ubuntu2) ... 595s Setting up libsm6:arm64 (2:1.2.3-1build2) ... 595s Setting up libicu-dev:arm64 (74.2-1ubuntu1) ... 595s Setting up libstdc++-13-dev:arm64 (13.2.0-17ubuntu2) ... 595s Setting up libbz2-dev:arm64 (1.0.8-5ubuntu1) ... 595s Setting up fontconfig (2.15.0-1ubuntu1) ... 597s Regenerating fonts cache... done. 597s Setting up libjpeg-turbo8-dev:arm64 (2.1.5-2ubuntu1) ... 597s Setting up libxft2:arm64 (2.3.6-1) ... 597s Setting up libncurses-dev:arm64 (6.4+20240113-1ubuntu1) ... 597s Setting up libpcre2-dev:arm64 (10.42-4ubuntu1) ... 597s Setting up cpp-13 (13.2.0-17ubuntu2) ... 597s Setting up libtk8.6:arm64 (8.6.13-2) ... 597s Setting up libpango-1.0-0:arm64 (1.51.0+ds-4) ... 597s Setting up gcc-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 597s Setting up libreadline-dev:arm64 (8.2-3.1) ... 597s Setting up libcairo2:arm64 (1.18.0-1) ... 597s Setting up libxt6t64:arm64 (1:1.2.1-1.2) ... 597s Setting up gcc-13 (13.2.0-17ubuntu2) ... 597s Setting up zlib1g-dev:arm64 (1:1.3.dfsg-3ubuntu1) ... 597s Setting up cpp (4:13.2.0-7ubuntu1) ... 597s Setting up libpangoft2-1.0-0:arm64 (1.51.0+ds-4) ... 597s Setting up libjpeg8-dev:arm64 (8c-2ubuntu11) ... 597s Setting up libpangocairo-1.0-0:arm64 (1.51.0+ds-4) ... 597s Setting up g++-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 597s Setting up gcc-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 597s Setting up g++-13 (13.2.0-17ubuntu2) ... 597s Setting up libpng-dev:arm64 (1.6.43-3) ... 597s Setting up libjpeg-dev:arm64 (8c-2ubuntu11) ... 597s Setting up gfortran-13-aarch64-linux-gnu (13.2.0-17ubuntu2) ... 597s Setting up gcc (4:13.2.0-7ubuntu1) ... 597s Setting up gfortran-13 (13.2.0-17ubuntu2) ... 597s Setting up r-base-core (4.3.3-2build1) ... 598s 598s Creating config file /etc/R/Renviron with new version 598s Setting up g++-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 598s Setting up gfortran-aarch64-linux-gnu (4:13.2.0-7ubuntu1) ... 598s Setting up r-cran-gmp (0.7-4-1) ... 598s Setting up r-cran-sfsmisc (1.1-16-1) ... 598s Setting up r-cran-mass (7.3-60.0.1-1) ... 598s Setting up gfortran (4:13.2.0-7ubuntu1) ... 598s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 598s update-alternatives: warning: skip creation of /usr/share/man/man1/f95.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f95) doesn't exist 598s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 598s update-alternatives: warning: skip creation of /usr/share/man/man1/f77.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f77) doesn't exist 598s Setting up g++ (4:13.2.0-7ubuntu1) ... 598s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 598s Setting up build-essential (12.10ubuntu1) ... 598s Setting up r-cran-rmpfr (0.9-5-1) ... 598s Setting up r-base-dev (4.3.3-2build1) ... 598s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 598s Setting up autopkgtest-satdep (0) ... 598s Processing triggers for man-db (2.12.0-3) ... 599s Processing triggers for install-info (7.1-3) ... 599s Processing triggers for libc-bin (2.39-0ubuntu2) ... 609s (Reading database ... 81643 files and directories currently installed.) 609s Removing autopkgtest-satdep (0) ... 611s autopkgtest [20:02:14]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 611s autopkgtest [20:02:14]: test pkg-r-autopkgtest: [----------------------- 613s Test: Try to load the R library Rmpfr 613s Loading required package: gmp 613s 613s R version 4.3.3 (2024-02-29) -- "Angel Food Cake" 613s Copyright (C) 2024 The R Foundation for Statistical Computing 613s Platform: aarch64-unknown-linux-gnu (64-bit) 613s 613s R is free software and comes with ABSOLUTELY NO WARRANTY. 613s You are welcome to redistribute it under certain conditions. 613s Type 'license()' or 'licence()' for distribution details. 613s 613s R is a collaborative project with many contributors. 613s Type 'contributors()' for more information and 613s 'citation()' on how to cite R or R packages in publications. 613s 613s Type 'demo()' for some demos, 'help()' for on-line help, or 613s 'help.start()' for an HTML browser interface to help. 613s Type 'q()' to quit R. 613s 613s > library('Rmpfr') 613s 613s Attaching package: ‘gmp’ 613s 613s The following objects are masked from ‘package:base’: 613s 613s %*%, apply, crossprod, matrix, tcrossprod 613s 613s C code of R package 'Rmpfr': GMP using 64 bits per limb 613s 613s 613s Attaching package: ‘Rmpfr’ 613s 613s The following object is masked from ‘package:gmp’: 613s 613s outer 613s 613s The following objects are masked from ‘package:stats’: 613s 613s dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm 613s 613s > The following objects are masked from ‘package:base’: 613s 613s cbind, pmax, pmin, rbind 613s 613s 613s > 613s Other tests are currently unsupported! 613s They will be progressively added. 613s autopkgtest [20:02:16]: test pkg-r-autopkgtest: -----------------------] 614s pkg-r-autopkgtest PASS 614s autopkgtest [20:02:17]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 614s autopkgtest [20:02:17]: @@@@@@@@@@@@@@@@@@@@ summary 614s run-unit-test PASS 614s pkg-r-autopkgtest PASS 625s Creating nova instance adt-noble-arm64-r-cran-rmpfr-20240316-195203-juju-7f2275-prod-proposed-migration-environment-2 from image adt/ubuntu-noble-arm64-server-20240316.img (UUID 9d2e92bf-2787-45c2-ae22-99fb4bcc175e)... 625s Creating nova instance adt-noble-arm64-r-cran-rmpfr-20240316-195203-juju-7f2275-prod-proposed-migration-environment-2 from image adt/ubuntu-noble-arm64-server-20240316.img (UUID 9d2e92bf-2787-45c2-ae22-99fb4bcc175e)...