Diff of the two buildlogs: -- --- b1/build.log 2023-06-07 21:14:17.010292363 +0000 +++ b2/build.log 2023-06-08 00:57:58.323226427 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jun 7 07:58:18 -12 2023 -I: pbuilder-time-stamp: 1686167898 +I: Current time: Thu Jun 8 11:14:34 +14 2023 +I: pbuilder-time-stamp: 1686172474 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./octave-interval_3.2.1.orig.tar.gz] I: copying [./octave-interval_3.2.1-5.debian.tar.xz] I: Extracting source -gpgv: Signature made Mon Dec 5 09:44:54 2022 -12 +gpgv: Signature made Tue Dec 6 11:44:54 2022 +14 gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90 gpgv: issuer "rafael@debian.org" gpgv: Can't check signature: No public key @@ -33,135 +33,167 @@ dpkg-source: info: applying add-distclean-target.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/9505/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/D01_modify_environment starting +debug: Running on virt32c. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jun 8 11:14 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='c422fc3839994d998691d94c34d3efd7' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='9505' - PS1='# ' - PS2='> ' + INVOCATION_ID=c8ca341042ce49d3910ab66c4b8f1874 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=21859 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.qQLuL4vP/pbuilderrc_FpLT --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.qQLuL4vP/b1 --logfile b1/build.log octave-interval_3.2.1-5.dsc' - SUDO_GID='114' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.qQLuL4vP/pbuilderrc_Aa6O --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.qQLuL4vP/b2 --logfile b2/build.log --extrapackages usrmerge octave-interval_3.2.1-5.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux jtx1b 5.10.0-23-arm64 #1 SMP Debian 5.10.179-1 (2023-05-12) aarch64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-armmp-lpae #1 SMP Debian 5.10.179-1 (2023-05-12) armv7l GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/9505/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 Jun 8 11:14 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -742,7 +774,7 @@ Get: 529 http://deb.debian.org/debian bookworm/main armhf libgmpxx4ldbl armhf 2:6.2.1+dfsg1-1.1 [338 kB] Get: 530 http://deb.debian.org/debian bookworm/main armhf libgmp-dev armhf 2:6.2.1+dfsg1-1.1 [593 kB] Get: 531 http://deb.debian.org/debian bookworm/main armhf libmpfr-dev armhf 4.2.0-1 [223 kB] -Fetched 191 MB in 18s (10.9 MB/s) +Fetched 191 MB in 6s (33.2 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libfftw3-double3:armhf. (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 ... 19324 files and directories currently installed.) @@ -2941,8 +2973,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/octave-interval-3.2.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../octave-interval_3.2.1-5_source.changes +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/octave-interval-3.2.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../octave-interval_3.2.1-5_source.changes dpkg-buildpackage: info: source package octave-interval dpkg-buildpackage: info: source version 3.2.1-5 dpkg-buildpackage: info: source distribution unstable @@ -2959,7 +3002,7 @@ make[2]: Entering directory '/build/octave-interval-3.2.1/src' make[2]: -p: No such file or directory make[2]: -p: No such file or directory -/bin/sh: 1: -dM: not found +/bin/sh: line 1: -dM: command not found test ! -e crlibm/Makefile || make -C crlibm clean rm -f *.oct *.o rm -f config.log @@ -3013,8 +3056,8 @@ checking for mpfr_init2 in -lmpfr... yes checking for floor in -lm... yes checking how to run the C++ preprocessor... g++ -E -checking for grep that handles long lines and -e... /bin/grep -checking for egrep... /bin/grep -E +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes @@ -3044,19 +3087,19 @@ (cd crlibm && ./configure --disable-dependency-tracking --disable-sse2) [MKOCTFILE] crlibm_function.cc [MKOCTFILE] intervaltotext.cc - [MKOCTFILE] mpfr_function_d.cc g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security crlibm_function.cc -o crlibm_function.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security intervaltotext.cc -o /tmp/oct-jpfrt7.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_function_d.cc -o /tmp/oct-IokVoA.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security intervaltotext.cc -o /tmp/oct-p6J38C.o + [MKOCTFILE] mpfr_function_d.cc +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_function_d.cc -o /tmp/oct-56T8Pl.o checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes -checking for a race-free mkdir -p... /bin/mkdir -p +checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes -checking build system type... aarch64-unknown-linux-gnu -checking host system type... aarch64-unknown-linux-gnu +checking build system type... armv7l-unknown-linux-gnueabihf +checking host system type... armv7l-unknown-linux-gnueabihf checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes @@ -3081,8 +3124,8 @@ checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes -checking for grep that handles long lines and -e... /bin/grep -checking for egrep... /bin/grep -E +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E checking for an ANSI C-conforming const... yes checking for inline... inline checking for sqrt... no @@ -3100,25 +3143,26 @@ config.status: creating crlibm_config.h config.status: executing depfiles commands [MKOCTFILE] mpfr_linspace_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_linspace_d.cc -o /tmp/oct-SPKUcY.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_linspace_d.cc -o /tmp/oct-qrI29O.o [MKOCTFILE] mpfr_matrix_mul_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp mpfr_matrix_mul_d.cc -o /tmp/oct-fzKl58.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_function_d.oct /tmp/oct-IokVoA.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp mpfr_matrix_mul_d.cc -o /tmp/oct-5dLyyR.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_function_d.oct /tmp/oct-56T8Pl.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro [MKOCTFILE] mpfr_matrix_sqr_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp mpfr_matrix_sqr_d.cc -o /tmp/oct-IIQPZ9.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_linspace_d.oct /tmp/oct-SPKUcY.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp mpfr_matrix_sqr_d.cc -o /tmp/oct-NRX1cz.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o intervaltotext.oct /tmp/oct-p6J38C.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro [MKOCTFILE] mpfr_to_string_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_to_string_d.cc -o /tmp/oct-HtBRIz.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o intervaltotext.oct /tmp/oct-jpfrt7.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_to_string_d.cc -o /tmp/oct-PRvVuB.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_linspace_d.oct /tmp/oct-qrI29O.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro [MKOCTFILE] mpfr_vector_sum_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_vector_sum_d.cc -o /tmp/oct-jyrrbS.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp -o mpfr_matrix_mul_d.oct /tmp/oct-fzKl58.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_vector_sum_d.cc -o /tmp/oct-FKFvah.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp -o mpfr_matrix_mul_d.oct /tmp/oct-5dLyyR.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro [MKOCTFILE] mpfr_vector_dot_d.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_vector_dot_d.cc -o /tmp/oct-Bgne2B.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp -o mpfr_matrix_sqr_d.oct /tmp/oct-IIQPZ9.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security mpfr_vector_dot_d.cc -o /tmp/oct-pIpfRP.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fopenmp -o mpfr_matrix_sqr_d.oct /tmp/oct-NRX1cz.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro [MKOCTFILE] __setround__.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wno-unknown-pragmas __setround__.cc -o /tmp/oct-FZ4kqS.o -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_vector_sum_d.oct /tmp/oct-jyrrbS.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wno-unknown-pragmas __setround__.cc -o /tmp/oct-ytvk7f.o +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_vector_sum_d.oct /tmp/oct-FKFvah.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_to_string_d.oct /tmp/oct-PRvVuB.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro make -C crlibm CFLAGS+="-fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable" make[3]: Entering directory '/build/octave-interval-3.2.1/src/crlibm' make all-recursive @@ -3143,20 +3187,19 @@ gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o crlibm_private.o crlibm_private.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o triple-double.o triple-double.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o exp-td.o exp-td.c -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_to_string_d.oct /tmp/oct-HtBRIz.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o exp-td-standalone.o exp-td-standalone.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o expm1-standalone.o expm1-standalone.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o expm1.o expm1.c +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_vector_dot_d.oct /tmp/oct-pIpfRP.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o log.o log.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o log1p.o log1p.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o rem_pio2_accurate.o rem_pio2_accurate.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o trigo_fast.o trigo_fast.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o trigo_accurate.o trigo_accurate.c +g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wno-unknown-pragmas -o __setround__.oct /tmp/oct-ytvk7f.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o trigpi.o trigpi.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o asincos.o asincos.c -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wno-unknown-pragmas -o __setround__.oct /tmp/oct-FZ4kqS.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o pow.o pow.c -g++ -I/usr/include/octave-7.3.0/octave/.. -I/usr/include/octave-7.3.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -o mpfr_vector_dot_d.oct /tmp/oct-Bgne2B.o -lmpfr -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -Wl,-z,relro gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o atan_fast.o atan_fast.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o atan_accurate.o atan_accurate.c gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -std=c99 -Wall -O3 -frounding-math -g -O2 -ffile-prefix-map=/build/octave-interval-3.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wno-div-by-zero -Wno-unused-variable -Wno-unused-but-set-variable -c -o csh_fast.o csh_fast.c @@ -3334,8 +3377,8 @@ checking for mpfr_init2 in -lmpfr... yes checking for floor in -lm... yes checking how to run the C++ preprocessor... g++ -E -checking for grep that handles long lines and -e... /bin/grep -checking for egrep... /bin/grep -E +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes @@ -3407,16 +3450,6 @@ assert (M, zeros (2, 2, 2)); assert (R, ones (2, 2, 2)); 23 tests, 23 passed, 0 known failure, 0 skipped -[inst/verintlinineqs.m] ->>>>> /build/octave-interval-3.2.1/inst/verintlinineqs.m -***** test - A = [-2, -3; -2, -1]; - b = [-1500; -1000]; - [x, As] = verintlinineqs (A, b); - assert (x, [375; 250], 1e-9); - assert (all (x >= [375; 250])); - assert (all (all (isempty (As)))); -1 test, 1 passed, 0 known failure, 0 skipped [inst/interval_bitpack.m] >>>>> /build/octave-interval-3.2.1/inst/interval_bitpack.m ***** test "bare"; @@ -3440,140 +3473,251 @@ decoded = interval_bitpack (logical (b)); assert (eq (decoded, infsupdec (3, 4))); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/vereigback.m] ->>>>> /build/octave-interval-3.2.1/inst/vereigback.m +[inst/verintlinineqs.m] +>>>>> /build/octave-interval-3.2.1/inst/verintlinineqs.m ***** test - [lambda, X, ep] = vereigback (eye (2)); - assert (lambda, [1; 1]); - assert (X, eye (2)); - assert (ep, zeros (2, 1)); + A = [-2, -3; -2, -1]; + b = [-1500; -1000]; + [x, As] = verintlinineqs (A, b); + assert (x, [375; 250], 1e-9); + assert (all (x >= [375; 250])); + assert (all (all (isempty (As)))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/__split_interval_literals__.m] +>>>>> /build/octave-interval-3.2.1/inst/__split_interval_literals__.m +***** assert (__split_interval_literals__ (""), {""}); +***** assert (__split_interval_literals__ (","), {""}); +***** assert (__split_interval_literals__ ("1"), {"1"}); +***** assert (__split_interval_literals__ ("1?"), {"1?"}); +***** assert (__split_interval_literals__ ("1?u"), {"1?u"}); +***** assert (__split_interval_literals__ ("1?u3"), {"1?u3"}); +***** assert (__split_interval_literals__ ("[Empty]"), {"[Empty]"}); +***** assert (__split_interval_literals__ ("[Entire]"), {"[Entire]"}); +***** assert (__split_interval_literals__ ("[]"), {"[]"}); +***** assert (__split_interval_literals__ ("[,]"), {"[,]"}); +***** assert (__split_interval_literals__ ("[1]"), {"[1]"}); +***** assert (__split_interval_literals__ ("[1,2]"), {"[1,2]"}); +***** assert (__split_interval_literals__ ("1 2"), {"1", "2"}); +***** assert (__split_interval_literals__ ("1, , , , , , ,2"), {"1", "2"}); +***** assert (__split_interval_literals__ ("1;;2"), {"1"; ""; "2"}); +***** assert (__split_interval_literals__ ("1; ;2"), {"1"; ""; "2"}); +***** assert (__split_interval_literals__ ("[1,2] [3,4]"), {"[1,2]", "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2],[3,4]"), {"[1,2]", "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2], [3,4]"), {"[1,2]", "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2]\n[3,4]"), {"[1,2]"; "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2];[3,4]"), {"[1,2]"; "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2]; [3,4]"), {"[1,2]"; "[3,4]"}); +***** assert (__split_interval_literals__ (["[1,2]"; "[3,4]"]), {"[1,2]"; "[3,4]"}); +***** assert (__split_interval_literals__ ("1 [3,4]"), {"1", "[3,4]"}); +***** assert (__split_interval_literals__ ("1,[3,4]"), {"1", "[3,4]"}); +***** assert (__split_interval_literals__ ("1, [3,4]"), {"1", "[3,4]"}); +***** assert (__split_interval_literals__ ("1\n[3,4]"), {"1"; "[3,4]"}); +***** assert (__split_interval_literals__ ("1;[3,4]"), {"1"; "[3,4]"}); +***** assert (__split_interval_literals__ ("1; [3,4]"), {"1"; "[3,4]"}); +***** assert (__split_interval_literals__ (["1"; "[3,4]"]), {"1"; "[3,4]"}); +***** assert (__split_interval_literals__ ("[1,2] 3"), {"[1,2]", "3"}); +***** assert (__split_interval_literals__ ("[1,2],3"), {"[1,2]", "3"}); +***** assert (__split_interval_literals__ ("[1,2], 3"), {"[1,2]", "3"}); +***** assert (__split_interval_literals__ ("[1,2]\n3"), {"[1,2]"; "3"}); +***** assert (__split_interval_literals__ ("[1,2];3"), {"[1,2]"; "3"}); +***** assert (__split_interval_literals__ ("[1,2]; 3"), {"[1,2]"; "3"}); +***** assert (__split_interval_literals__ (["[1,2]"; "3"]), {"[1,2]"; "3"}); +***** assert (__split_interval_literals__ ("1 3"), {"1", "3"}); +***** assert (__split_interval_literals__ ("1,3"), {"1", "3"}); +***** assert (__split_interval_literals__ ("1, 3"), {"1", "3"}); +***** assert (__split_interval_literals__ ("1\n3"), {"1"; "3"}); +***** assert (__split_interval_literals__ ("1;3"), {"1"; "3"}); +***** assert (__split_interval_literals__ ("1; 3"), {"1"; "3"}); +***** assert (__split_interval_literals__ (["1"; "3"]), {"1"; "3"}); +***** assert (__split_interval_literals__ ("[1,2] [3,4] [5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2],[3,4],[5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2], [3,4], [5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2]\n[3,4];[5,6]"), {"[1,2]"; "[3,4]"; "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2];[3,4] [5,6]"), {"[1,2]", "[Empty]"; "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2] [3,4];[5,6]"), {"[1,2]", "[3,4]"; "[5,6]", "[Empty]"}); +***** assert (__split_interval_literals__ ("1 [3,4] [5,6]"), {"1", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("1,[3,4],[5,6]"), {"1", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("1, [3,4], [5,6]"), {"1", "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("1\n[3,4];[5,6]"), {"1"; "[3,4]"; "[5,6]"}); +***** assert (__split_interval_literals__ ("1;[3,4] [5,6]"), {"1", "[Empty]"; "[3,4]", "[5,6]"}); +***** assert (__split_interval_literals__ ("1 [3,4];[5,6]"), {"1", "[3,4]"; "[5,6]", "[Empty]"}); +***** assert (__split_interval_literals__ ("[1,2] 3 [5,6]"), {"[1,2]", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2],3,[5,6]"), {"[1,2]", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2], 3, [5,6]"), {"[1,2]", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2]\n3;[5,6]"), {"[1,2]"; "3"; "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2];3 [5,6]"), {"[1,2]", "[Empty]"; "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("[1,2] 3;[5,6]"), {"[1,2]", "3"; "[5,6]", "[Empty]"}); +***** assert (__split_interval_literals__ ("[1,2] [3,4] 5"), {"[1,2]", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("[1,2],[3,4],5"), {"[1,2]", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("[1,2], [3,4], 5"), {"[1,2]", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("[1,2]\n[3,4];5"), {"[1,2]"; "[3,4]"; "5"}); +***** assert (__split_interval_literals__ ("[1,2];[3,4] 5"), {"[1,2]", "[Empty]"; "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("[1,2] [3,4];5"), {"[1,2]", "[3,4]"; "5", "[Empty]"}); +***** assert (__split_interval_literals__ ("1 [3,4] 5"), {"1", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("1,[3,4],5"), {"1", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("1, [3,4], 5"), {"1", "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("1\n[3,4];5"), {"1"; "[3,4]"; "5"}); +***** assert (__split_interval_literals__ ("1;[3,4] 5"), {"1", "[Empty]"; "[3,4]", "5"}); +***** assert (__split_interval_literals__ ("1 [3,4];5"), {"1", "[3,4]"; "5", "[Empty]"}); +***** assert (__split_interval_literals__ ("1 3 [5,6]"), {"1", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("1,3,[5,6]"), {"1", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("1, 3, [5,6]"), {"1", "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("1\n3;[5,6]"), {"1"; "3"; "[5,6]"}); +***** assert (__split_interval_literals__ ("1;3 [5,6]"), {"1", "[Empty]"; "3", "[5,6]"}); +***** assert (__split_interval_literals__ ("1 3;[5,6]"), {"1", "3"; "[5,6]", "[Empty]"}); +***** assert (__split_interval_literals__ ("[1,2] 3 5"), {"[1,2]", "3", "5"}); +***** assert (__split_interval_literals__ ("[1,2],3,5"), {"[1,2]", "3", "5"}); +***** assert (__split_interval_literals__ ("[1,2], 3, 5"), {"[1,2]", "3", "5"}); +***** assert (__split_interval_literals__ ("[1,2]\n3;5"), {"[1,2]"; "3"; "5"}); +***** assert (__split_interval_literals__ ("[1,2];3 5"), {"[1,2]", "[Empty]"; "3", "5"}); +***** assert (__split_interval_literals__ ("[1,2] 3;5"), {"[1,2]", "3"; "5", "[Empty]"}); +***** assert (__split_interval_literals__ ("1 3 5"), {"1", "3", "5"}); +***** assert (__split_interval_literals__ ("1,3,5"), {"1", "3", "5"}); +***** assert (__split_interval_literals__ ("1, 3, 5"), {"1", "3", "5"}); +***** assert (__split_interval_literals__ ("1\n3;5"), {"1"; "3"; "5"}); +***** assert (__split_interval_literals__ ("1;3 5"), {"1", "[Empty]"; "3", "5"}); +***** assert (__split_interval_literals__ ("1 3;5"), {"1", "3"; "5", "[Empty]"}); +92 tests, 92 passed, 0 known failure, 0 skipped +[inst/entire.m] +>>>>> /build/octave-interval-3.2.1/inst/entire.m +***** assert (inf (entire ()), -inf); +***** assert (sup (entire ()), inf); +***** assert (decorationpart (entire ()), {"dac"}); +***** assert (inf (entire (5)), -inf (5)); +***** assert (sup (entire (5)), inf (5)); +***** assert (strcmp (decorationpart (entire (5)), "dac"), true (5)); +***** assert (inf (entire (5, 6)), -inf (5, 6)); +***** assert (sup (entire (5, 6)), inf (5, 6)); +***** assert (strcmp (decorationpart (entire (5, 6)), "dac"), true (5, 6)); +***** assert (inf (entire (5, 6, 7)), -inf (5, 6, 7)); +***** assert (sup (entire (5, 6, 7)), inf (5, 6, 7)); +***** assert (strcmp (decorationpart (entire (5, 6, 7)), "dac"), true (5, 6, 7)); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/@infsupdec/csc.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/csc.m +***** # from the documentation string +***** assert (isequal (csc (infsupdec (1)), infsupdec ("[0x1.303AA9620B223, 0x1.303AA9620B224]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/strictsubset.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/strictsubset.m +***** assert (strictsubset (infsupdec (1, 2), infsupdec (1, 3))); +***** assert (strictsubset (infsupdec (2, 3), infsupdec (1, 3))); +***** assert (not (strictsubset (infsupdec (1, 2), infsupdec (1, 2)))); +***** assert (not (strictsubset (infsupdec (1, 3), infsupdec (1, 2)))); +***** assert (strictsubset (infsupdec (), infsupdec (1, 3))); +***** assert (not (strictsubset (infsupdec (), infsupdec ()))); +***** assert (strictsubset (infsupdec (), infsupdec (-inf, inf))); +***** assert (strictsubset (infsupdec (0, inf), infsupdec (-inf, inf))); +***** assert (strictsubset (infsupdec (-inf, 0), infsupdec (-inf, inf))); +***** assert (not (strictsubset (infsupdec (-inf, inf), infsupdec (-inf, inf)))); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/@infsupdec/transpose.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/transpose.m +***** assert (isequal (transpose (infsupdec (magic (3))), infsupdec (magic (3).'))); +***** # from the documentation string +***** assert (isequal (transpose (infsupdec (zeros (1, 3), ones (1, 3))), infsupdec (zeros (3, 1), ones (3, 1)))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsupdec/expm1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/expm1.m +***** # from the documentation string +***** assert (isequal (expm1 (infsupdec (eps)), infsupdec ("[0x1p-52, 0x1.0000000000001p-52]"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/isempty.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/isempty.m +***** assert (isempty (infsupdec ())); +***** assert (not (isempty (infsupdec (1, 2)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - [lambda, X, ep] = vereigback ([2 1; 1 2]); - assert (lambda, [1; 3]); - assert (X, [-1 1; 1 1] ./ sqrt (2), eps); - assert (ep, zeros (2, 1)); + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.isEmpty; + for testcase = [testcases]' + assert (isequaln (... + isempty (testcase.in{1}), ... + testcase.out)); + endfor ***** test - [lambda, X, ep] = vereigback ([2 0 0; 0 3 4; 0 4 9]); - assert (lambda, [1; 2; 11]); - assert (ep, zeros (3, 1)); + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.isEmpty; + in1 = vertcat (vertcat (testcases.in){:, 1}); + out = vertcat (testcases.out); + assert (isequaln (isempty (in1), out)); ***** test - [lambda, X, ep] = vereigback ([1 2 3; 0 1 2; 1 1 1]); - assert (max (ep) < 1e-14); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/prepad.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/prepad.m -***** assert (prepad (infsup (2:4), 4, 1) == infsup (1:4)); -***** assert (prepad (infsup (0:2), 2, 1) == infsup (1:2)); -***** assert (prepad (infsup (0), 10, 0, 3) == infsup (zeros (1, 1, 10))) -***** assert (prepad (infsup (zeros (1, 2, 2)), 3) == infsup (zeros (1, 3, 2))); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/triu.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/triu.m -***** assert (triu (infsup (magic (10))) == triu (magic (10))); -***** assert (triu (infsup (magic (10)), 1) == triu (magic (10), 1)); -***** assert (triu (infsup (magic (10)), -1) == triu (magic (10), -1)); -***** assert (triu (infsup (magic (10)), 0, "pack") == triu (magic (10), 0, "pack")); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/mod.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mod.m -***** assert (mod (infsup (), infsup ()) == infsup ()); -***** assert (mod (infsup (0), infsup ()) == infsup ()); -***** assert (mod (infsup (), infsup (0)) == infsup ()); -***** assert (mod (infsup (0), infsup (0)) == infsup ()); -***** assert (mod (infsup (1), infsup (0)) == infsup ()); -***** assert (mod (infsup (0, 1), infsup (0)) == infsup ()); -***** assert (mod (infsup (1, 2), infsup (0)) == infsup ()); -***** assert (mod (infsup (0, inf), infsup (0)) == infsup ()); -***** assert (mod (infsup (1, inf), infsup (0)) == infsup ()); -***** assert (mod (infsup (realmax, inf), infsup (0)) == infsup ()); -***** assert (mod (infsup (0), infsup (1)) == infsup (0)); -***** assert (mod (infsup (0), infsup (0, 1)) == infsup (0)); -***** assert (mod (infsup (0), infsup (1, 2)) == infsup (0)); -***** assert (mod (infsup (0), infsup (0, inf)) == infsup (0)); -***** assert (mod (infsup (0), infsup (1, inf)) == infsup (0)); -***** assert (mod (infsup (0), infsup (realmax, inf)) == infsup (0)); -***** assert (mod (infsup (1), infsup (1)) == infsup (0)); -***** assert (mod (infsup (2), infsup (1)) == infsup (0)); -***** assert (mod (infsup (4), infsup (2)) == infsup (0)); -***** assert (mod (infsup (6), infsup (3)) == infsup (0)); -***** assert (mod (infsup (8), infsup (2)) == infsup (0)); -***** assert (mod (infsup (9), infsup (3)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax / 2)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax / 4)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax / 8)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax / 16)) == infsup (0)); -***** assert (mod (infsup (realmax), infsup (realmax / 32)) == infsup (0)); -***** assert (mod (infsup (0.1), infsup (0.1)) == infsup (0)); -***** assert (mod (infsup (0.1 * 2), infsup (0.1)) == infsup (0)); -***** assert (mod (infsup (0.1 * 4), infsup (0.1)) == infsup (0)); -***** assert (mod (infsup (pi), infsup (pi)) == infsup (0)); -***** assert (mod (infsup (pi), infsup (pi / 2)) == infsup (0)); -***** assert (mod (infsup (pi), infsup (pi / 4)) == infsup (0)); -***** assert (mod (infsup (pow2 (-1074)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (mod (infsup (pow2 (-1073)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (mod (infsup (pow2 (-1072)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (mod (infsup (1), infsup (2)) == infsup (1)); -***** assert (mod (infsup (0.5), infsup (1)) == infsup (0.5)); -***** assert (mod (infsup (pi), infsup (3.15)) == infsup (pi)); -***** assert (mod (infsup (1), infsup (2, 3)) == infsup (1)); -***** assert (mod (infsup (1), infsup (2, inf)) == infsup (1)); -***** assert (mod (infsup (0.5), infsup (1, 2)) == infsup (0.5)); -***** assert (mod (infsup (0.5), infsup (1, inf)) == infsup (0.5)); -***** assert (mod (infsup (pi), infsup (3.15)) == infsup (pi)); -***** assert (mod (infsup (pi), infsup (3.15, inf)) == infsup (pi)); -***** assert (mod (infsup (0, 1), infsup (0, 1)) == infsup (0, 1)); -***** assert (mod (infsup (0, 2), infsup (0, 1)) == infsup (0, 1)); -***** assert (mod (infsup (0, 1), infsup (0, 2)) == infsup (0, 1)); -***** assert (mod (infsup (0, realmax), infsup (0, realmax)) == infsup (0, realmax)); -***** assert (mod (infsup (realmax, inf), infsup (realmax, inf)) == infsup (0, inf)); -***** assert (mod (infsup (0, inf), infsup (0, inf)) == infsup (0, inf)); -***** assert (mod (infsup (0), infsup (1)) == infsup (0)); -***** assert (mod (infsup (1), infsup (1)) == infsup (0)); -***** assert (mod (infsup (0, 1), infsup (1)) == infsup (0, 1)); -***** assert (mod (infsup (1, 2), infsup (1)) == infsup (0, 1)); -***** assert (mod (infsup (0, inf), infsup (1)) == infsup (0, 1)); -***** assert (mod (infsup (1, inf), infsup (1)) == infsup (0, 1)); -***** assert (mod (infsup (realmax, inf), infsup (1)) == infsup (0, 1)); -***** assert (mod (infsup (1), infsup (1)) == infsup (0)); -***** assert (mod (infsup (1), infsup (0, 1)) == infsup (0, 0.5)); -***** assert (mod (infsup (1), infsup (1, 2)) == infsup (0, 1)); -***** assert (mod (infsup (1), infsup (0, inf)) == infsup (0, 1)); -***** assert (mod (infsup (1), infsup (1, inf)) == infsup (0, 1)); -***** assert (mod (infsup (1), infsup (2, inf)) == infsup (1)); -***** assert (mod (infsup (1), infsup (realmax, inf)) == infsup (1)); -66 tests, 66 passed, 0 known failure, 0 skipped -[inst/@infsup/power.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/power.m -***** # from the documentation string -***** assert (infsup (-5, 6) .^ infsup (2, 3) == infsup (-125, 216)); -***** assert (infsup (-10, 0) .^ infsup (0, 1:8) == infsup ([-1e1, -1e1, -1e3, -1e3, -1e5, -1e5, -1e7, -1e7], [1e0, 1e2, 1e2, 1e4, 1e4, 1e6, 1e6, 1e8])); -***** # correct use of signed zeros + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.isEmpty; + in1 = vertcat (vertcat (testcases.in){:, 1}); + out = vertcat (testcases.out); + # Reshape data + i = -1; + do + i = i + 1; + testsize = factor (numel (in1) + i); + until (numel (testsize) > 2) + in1 = reshape ([in1; in1(1:i)], testsize); + out = reshape ([out; out(1:i)], testsize); + assert (isequaln (isempty (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/setxor.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/setxor.m ***** test - x = power (infsup (0), infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + [z, z1, z2] = setxor (infsupdec (), infsupdec ()); + assert (isempty (z)); + assert (isempty (z1)); + assert (isempty (z2)); +***** test + [z, z1, z2] = setxor (infsupdec (-inf, inf), infsupdec ()); + assert (isentire (z)); + assert (isentire (z1)); + assert (isempty (z2)); +***** test + [z, z1, z2] = setxor (infsupdec (-inf, inf), infsupdec (2)); + assert (isentire (z)); + assert (z1 == infsupdec (-inf, 2)); + assert (z2 == infsupdec (2, inf)); +***** test + [z, z1, z2] = setxor (infsupdec (2, 3), infsupdec (2)); + assert (z == infsupdec (2, 3)); + assert (z1 == infsupdec ()); + assert (z2 == infsupdec (2, 3)); +***** test + [z, z1, z2] = setxor (infsupdec (2, 3), infsupdec (2, 2.5)); + assert (z == infsupdec (2.5, 3)); + assert (z1 == infsupdec ()); + assert (z2 == infsupdec (2.5, 3)); +***** test + # from the documentation string + [z, z1, z2] = setxor (infsupdec (1, 3), infsupdec (2, 4)); + assert (z == infsupdec (1, 4)); + assert (z1 == infsupdec (1, 2)); + assert (z2 == infsupdec (3, 4)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/interior.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/interior.m +***** assert (interior (infsupdec (1, 2), infsupdec (0, 3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.interior; for testcase = [testcases]' assert (isequaln (... - power (testcase.in{1}, 2), ... + interior (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.interior; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (power (in1, 2), out)); + assert (isequaln (interior (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.interior; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -3582,65 +3726,37 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (power (in1, 2), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/abs.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/abs.m -***** # Empty interval -***** assert (abs (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (abs (infsup (1)) == infsup (1)); -***** assert (abs (infsup (0)) == infsup (0)); -***** assert (abs (infsup (-1)) == infsup (1)); -***** assert (abs (infsup (realmax)) == infsup (realmax)); -***** assert (abs (infsup (realmin)) == infsup (realmin)); -***** assert (abs (infsup (-realmin)) == infsup (realmin)); -***** assert (abs (infsup (-realmax)) == infsup (realmax)); -***** # Bounded intervals -***** assert (abs (infsup (1, 2)) == infsup (1, 2)); -***** assert (abs (infsup (0, 1)) == infsup (0, 1)); -***** assert (abs (infsup (-1, 1)) == infsup (0, 1)); -***** assert (abs (infsup (-1, 0)) == infsup (0, 1)); -***** assert (abs (infsup (-2, -1)) == infsup (1, 2)); -***** # Unbounded intervals -***** assert (abs (infsup (0, inf)) == infsup (0, inf)); -***** assert (abs (infsup (-inf, inf)) == infsup (0, inf)); -***** assert (abs (infsup (-inf, 0)) == infsup (0, inf)); -***** assert (abs (infsup (1, inf)) == infsup (1, inf)); -***** assert (abs (infsup (-1, inf)) == infsup (0, inf)); -***** assert (abs (infsup (-inf, -1)) == infsup (1, inf)); -***** assert (abs (infsup (-inf, 1)) == infsup (0, inf)); + assert (isequaln (interior (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/max.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/max.m ***** # from the documentation string -***** assert (abs (infsup (2.5, 3.5)) == infsup (2.5, 3.5)); -***** assert (abs (infsup (-0.5, 5.5)) == infsup (0, 5.5)); -***** # correct use of signed zeros -***** assert (signbit (inf (abs (infsup (-1, 0))))); -***** test - x = abs (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (max (infsupdec (2, 3), infsupdec (1, 2)), infsupdec (2, 3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.abs; + testcases = testdata.NoSignal.infsupdec.max; for testcase = [testcases]' assert (isequaln (... - abs (testcase.in{1}), ... + max (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.abs; + testcases = testdata.NoSignal.infsupdec.max; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (abs (in1), out)); + assert (isequaln (max (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.abs; + testcases = testdata.NoSignal.infsupdec.max; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -3649,61 +3765,46 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (abs (in1), out)); -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/@infsup/absrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/absrev.m -***** # Empty interval -***** assert (absrev (infsup ()) == infsup ()); -***** assert (absrev (infsup (0, 1), infsup ()) == infsup ()); -***** assert (absrev (infsup (0, 1), infsup (7, 9)) == infsup ()); -***** assert (absrev (infsup (), infsup (0, 1)) == infsup ()); -***** assert (absrev (infsup (-2, -1)) == infsup ()); -***** # Singleton intervals -***** assert (absrev (infsup (1)) == infsup (-1, 1)); -***** assert (absrev (infsup (0)) == infsup (0)); -***** assert (absrev (infsup (-1)) == infsup ()); -***** assert (absrev (infsup (realmax)) == infsup (-realmax, realmax)); -***** assert (absrev (infsup (realmin)) == infsup (-realmin, realmin)); -***** assert (absrev (infsup (-realmin)) == infsup ()); -***** assert (absrev (infsup (-realmax)) == infsup ()); -***** # Bound intervals -***** assert (absrev (infsup (1, 2)) == infsup (-2, 2)); -***** assert (absrev (infsup (1, 2), infsup (0, 2)) == infsup (1, 2)); -***** assert (absrev (infsup (0, 1), infsup (-0.5, 2)) == infsup (-0.5, 1)); -***** assert (absrev (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (absrev (infsup (-1, 0)) == infsup (0)); -***** # Unbound intervals -***** assert (absrev (infsup (0, inf)) == infsup (-inf, inf)); -***** assert (absrev (infsup (-inf, inf)) == infsup (-inf, inf)); -***** assert (absrev (infsup (-inf, 0)) == infsup (0)); -***** assert (absrev (infsup (1, inf), infsup (-inf, 0)) == infsup (-inf, -1)); -***** assert (absrev (infsup (-1, inf)) == infsup (-inf, inf)); -***** assert (absrev (infsup (-inf, -1)) == infsup ()); -***** assert (absrev (infsup (-inf, 1)) == infsup (-1, 1)); + assert (isequaln (max (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/bitunpack.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/bitunpack.m +***** test + littleendian = bitunpack (uint16 (1))(1); + b = zeros (1, 136); + if (littleendian) + b([52, 63, 117, 127, 133]) = 1; + else + b([7, 12, 71, 77, 133]) = 1; + endif + assert (bitunpack (infsupdec (3, 4)), logical (b)); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/power.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/power.m ***** # from the documentation string -***** assert (absrev (infsup (-2, 1)) == infsup (-1, 1)); +***** assert (isequal (infsupdec (-5, 6) .^ infsupdec (2, 3), infsupdec (-125, 216, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Scalar evaluation with one argument - testcases = testdata.NoSignal.infsup.absRev; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.sqr; for testcase = [testcases]' assert (isequaln (... - absrev (testcase.in{1}), ... + power (testcase.in{1}, 2), ... testcase.out)); endfor ***** test - # Vector evaluation with one argument - testcases = testdata.NoSignal.infsup.absRev; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (absrev (in1), out)); + assert (isequaln (power (in1, 2), out)); ***** test - # N-dimensional array evaluation with one argument - testcases = testdata.NoSignal.infsup.absRev; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -3714,25 +3815,51 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (absrev (in1), out)); + assert (isequaln (power (in1, 2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/eq.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/eq.m +***** # Empty interval +***** assert (eq (infsupdec (), infsupdec ()) == true); +***** assert (eq (infsupdec (), infsupdec (1)) == false); +***** assert (eq (infsupdec (0), infsupdec ()) == false); +***** assert (eq (infsupdec (-inf, inf), infsupdec ()) == false); +***** # Singleton intervals +***** assert (eq (infsupdec (0), infsupdec (1)) == false); +***** assert (eq (infsupdec (0), infsupdec (0)) == true); +***** # Bounded intervals +***** assert (eq (infsupdec (1, 2), infsupdec (3, 4)) == false); +***** assert (eq (infsupdec (1, 2), infsupdec (2, 3)) == false); +***** assert (eq (infsupdec (1, 2), infsupdec (1.5, 2.5)) == false); +***** assert (eq (infsupdec (1, 2), infsupdec (1, 2)) == true); +***** # Unbounded intervals +***** assert (eq (infsupdec (0, inf), infsupdec (-inf, 0)) == false); +***** assert (eq (infsupdec (0, inf), infsupdec (0, inf)) == true); +***** assert (eq (infsupdec (-inf, 0), infsupdec (-inf, 0)) == true); +***** assert (eq (infsupdec (-inf, inf), infsupdec (42)) == false); +***** assert (eq (infsupdec (-inf, 0), infsupdec (-inf, inf)) == false); +***** assert (eq (infsupdec (-inf, inf), infsupdec (-inf, inf)) == true); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Scalar evaluation with two arguments - testcases = testdata.NoSignal.infsup.absRevBin; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.equal; for testcase = [testcases]' assert (isequaln (... - absrev (testcase.in{1}, testcase.in{2}), ... + eq (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Vector evaluation with two arguments - testcases = testdata.NoSignal.infsup.absRevBin; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.equal; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (absrev (in1, in2), out)); + assert (isequaln (eq (in1, in2), out)); ***** test - # N-dimensional array evaluation with two arguments - testcases = testdata.NoSignal.infsup.absRevBin; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.equal; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -3745,56 +3872,36 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (absrev (in1, in2), out)); -31 tests, 31 passed, 0 known failure, 0 skipped -[inst/@infsup/end.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/end.m -***** assert (infsup (magic (3))(end) == 2); -***** assert (infsup (magic (3))(end, 2) == 9); -***** assert (infsup (magic (3))(2, end) == 7); -***** assert (infsup ([1 2; 3 4; 5 6])(end:-1:1, :) == [5 6; 3 4; 1 2]); -***** assert (reshape (infsup (1:24), 2, 3, 4)(end, end) == 24) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/chol.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/chol.m -***** assert (chol (infsup (pascal (10))) == chol (pascal (10))); -***** assert (chol (infsupdec (pascal (10))) == chol (pascal (10))); -***** test - A = infsup ([2, 1; 1, 1]); - R = chol (A); - assert (ismember ([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)], R)); - assert (wid (R) < 1e-15); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/atan.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/atan.m + assert (isequaln (eq (in1, in2), out)); +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/@infsupdec/rdivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rdivide.m ***** # from the documentation string -***** assert (atan (infsup (1)) == "[0x1.921FB54442D18p-1, 0x1.921FB54442D19p-1]"); -***** # correct use of signed zeros -***** test - x = atan (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (infsupdec (2, 3) ./ infsupdec (1, 2), infsupdec (1, 3))); +***** assert (1 ./ infsupdec (1, 4) == infsupdec (0.25, 1)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.atan; + testcases = testdata.NoSignal.infsupdec.div; for testcase = [testcases]' assert (isequaln (... - atan (testcase.in{1}), ... + rdivide (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.atan; + testcases = testdata.NoSignal.infsupdec.div; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (atan (in1), out)); + assert (isequaln (rdivide (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.atan; + testcases = testdata.NoSignal.infsupdec.div; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -3803,59 +3910,26 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atan (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/fprintf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fprintf.m -***** xtest - assert (evalc ("n = fprintf ('%g', infsup ('pi'));"), "3.14159 3.1416"); - assert (n, 14); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/subsref.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/subsref.m -***** assert (infsup (magic (3))([1, 2, 3]) == magic (3)([1, 2, 3])); -***** test - x = infsup (magic (3), magic (3) + 1); - assert (x(1) == infsup (8, 9)); -***** test - x = infsup (magic (3), magic (3) + 1); - assert (x(:, 2) == infsup ([1; 5; 9], [2; 6; 10])); -***** assert (infsup (3).inf, 3); -***** test - x = infsup (magic (3), magic (3) + 1); - assert (x.inf, magic (3)); -***** assert (reshape (infsup (1:16), 2, 2, 2, 2)(2, 7) == infsup (14)) -***** assert (reshape (infsup (1:16), 2, 2, 2, 2)(:, 2, 2, 2) == infsup ([15; 16])) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/sech.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sech.m -***** # from the documentation string -***** assert (sech (infsup (1)) == "[0x1.4BCDC50ED6BE7p-1, 0x1.4BCDC50ED6BE8p-1]"); -***** # correct use of signed zeros -***** test - x = sech (infsup (0, inf)); - assert (signbit (inf (x))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (rdivide (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sech; + testcases = testdata.NoSignal.infsupdec.recip; for testcase = [testcases]' assert (isequaln (... - sech (testcase.in{1}), ... + rdivide (1, testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sech; + testcases = testdata.NoSignal.infsupdec.recip; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sech (in1), out)); + assert (isequaln (rdivide (1, in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sech; + testcases = testdata.NoSignal.infsupdec.recip; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -3866,36 +3940,38 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sech (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/pow10.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/pow10.m + assert (isequaln (rdivide (1, in1), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsupdec/gammaln.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gammaln.m +***** assert (isequal (gammaln (infsupdec (-inf, inf)), infsupdec ("[-0x1.F19B9BCC38A42p-4, +Inf]_trv"))); ***** # from the documentation string - assert (pow10 (infsup (5)) == infsup (100000)); -***** # correct use of signed zeros -***** test - x = pow10 (infsup (-inf, -realmax)); - assert (signbit (inf (x))); +***** assert (isequal (gammaln (infsupdec (1.5)), infsupdec ("[-0x1.EEB95B094C192p-4, -0x1.EEB95B094C191p-4]_com"))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsupdec/uminus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/uminus.m +***** # from the documentation string +***** assert (isequal (-infsupdec (2, 3), infsupdec (-3, -2))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.exp10; + testcases = testdata.NoSignal.infsupdec.neg; for testcase = [testcases]' assert (isequaln (... - pow10 (testcase.in{1}), ... + uminus (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.exp10; + testcases = testdata.NoSignal.infsupdec.neg; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (pow10 (in1), out)); + assert (isequaln (uminus (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.exp10; + testcases = testdata.NoSignal.infsup.neg; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -3906,45 +3982,35 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow10 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/postpad.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/postpad.m -***** assert (postpad (infsup (1:3), 4, 4) == infsup (1:4)); -***** assert (postpad (infsup (1:3), 2, 4) == infsup (1:2)); -***** assert (postpad (infsup (0), 10, 0, 3) == infsup (zeros (1, 1, 10))) -***** assert (postpad (infsup (zeros (1, 2, 2)), 3) == infsup (zeros (1, 3, 2))); + assert (isequaln (uminus (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/csch.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/csch.m -***** # from the documentation string -***** assert (csch (infsup (1)) == "[0x1.B3AB8A78B90Cp-1, 0x1.B3AB8A78B90C1p-1]"); -***** # correct use of signed zeros -***** test - x = csch (infsup (0, inf)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +[inst/@infsupdec/precedes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/precedes.m +***** assert (precedes (infsupdec (1, 2), infsupdec (2, 3))); +***** assert (not (precedes (infsupdec (1, 2.1), infsupdec (1.9, 3)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.csch; + testcases = testdata.NoSignal.infsupdec.precedes; for testcase = [testcases]' assert (isequaln (... - csch (testcase.in{1}), ... + precedes (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.csch; + testcases = testdata.NoSignal.infsupdec.precedes; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (csch (in1), out)); + assert (isequaln (precedes (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.csch; + testcases = testdata.NoSignal.infsupdec.precedes; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -3953,36 +4019,35 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (csch (in1), out)); + assert (isequaln (precedes (in1, in2), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/cancelminus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cancelminus.m +[inst/@infsupdec/cosrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cosrev.m ***** # from the documentation string -***** assert (cancelminus (infsup (2, 3), infsup (1, 1.5)) == infsup (1, 1.5)); +***** assert (isequal (cosrev (0, infsupdec (6, 9)), infsupdec ("[0x1.F6A7A2955385Ep2, 0x1.F6A7A2955386p2]_trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cancelMinus; + testcases = testdata.NoSignal.infsupdec.cosRev; for testcase = [testcases]' assert (isequaln (... - cancelminus (testcase.in{1}, testcase.in{2}), ... + cosrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cancelMinus; + testcases = testdata.NoSignal.infsupdec.cosRev; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cancelminus (in1, in2), out)); + assert (isequaln (cosrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cancelMinus; + testcases = testdata.NoSignal.infsupdec.cosRev; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -3991,35 +4056,26 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cancelminus (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/max.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/max.m -***** # from the documentation string -***** assert (max (infsup (2, 3), infsup (1, 2)) == infsup (2, 3)); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (cosrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.max; + testcases = testdata.NoSignal.infsupdec.cosRevBin; for testcase = [testcases]' assert (isequaln (... - max (testcase.in{1}, testcase.in{2}), ... + cosrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.max; + testcases = testdata.NoSignal.infsupdec.cosRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (max (in1, in2), out)); + assert (isequaln (cosrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.max; + testcases = testdata.NoSignal.infsupdec.cosRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -4032,35 +4088,66 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (max (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/isentire.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/isentire.m -***** assert (isentire (entire ())); -***** assert (isentire (intervalpart (entire ()))); -***** assert (not (isentire (empty ()))); -***** assert (not (isentire (intervalpart (empty ())))); -***** warning assert (not (isentire (infsupdec (2, 1)))); + assert (isequaln (cosrev (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/rsqrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rsqrt.m +***** # from the documentation string +***** assert (isequal (rsqrt (infsupdec (-6, 4)), infsupdec (.5, inf, "trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/prod.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/prod.m +***** # from the documentation string +***** assert (prod (infsupdec (1 : 4)) == 24); +***** assert (prod (infsupdec ([])) == 1); +***** assert (isequal (prod (infsupdec (magic (3))), infsupdec ([96, 45, 84]))); +***** assert (isequal (prod (infsupdec (magic (3)), 2), infsupdec ([48; 105; 72]))); +***** assert (isequal (prod (infsupdec (magic (3)), 3), infsupdec (magic (3)))); +***** assert (isequal (prod (prod (reshape (infsup (1:24), 1, 2, 3, 4))), infsup (reshape ([720, 665280, 13366080, 96909120], 1, 1, 1, 4)))); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cbrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cbrt.m +***** # from the documentation string +***** assert (isequal (cbrt (infsupdec (-27, 27)), infsupdec (-3, 3))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/diag.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/diag.m +***** assert (diag (infsupdec (-inf, inf)) == "[Entire]"); +***** assert (diag (infsupdec ()) == "[Empty]"); +***** assert (numel (diag (infsupdec ([]))), 0); +***** assert (isequal (diag (infsupdec (magic (3))), infsupdec ([8; 5; 2]))); +***** assert (isequal (diag (infsupdec ([8 5 3])), infsupdec ([8 0 0; 0 5 0; 0 0 3]))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/coth.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/coth.m +***** # from the documentation string +***** assert (isequal (coth (infsupdec (1)), infsupdec ("[0x1.50231499B6B1D, 0x1.50231499B6B1E]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/fix.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/fix.m +***** # from the documentation string +***** assert (isequal (fix (infsupdec (2.5, 3.5)), infsupdec (2, 3, "def"))); +***** assert (isequal (fix (infsupdec (-0.5, 5)), infsupdec (0, 5, "def"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.isEntire; + testcases = testdata.NoSignal.infsupdec.trunc; for testcase = [testcases]' assert (isequaln (... - isentire (testcase.in{1}), ... + fix (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.isEntire; + testcases = testdata.NoSignal.infsupdec.trunc; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (isentire (in1), out)); + assert (isequaln (fix (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isEntire; + testcases = testdata.NoSignal.infsupdec.trunc; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4071,24 +4158,106 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (isentire (in1), out)); + assert (isequaln (fix (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mod.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mod.m +***** assert (isequal (mod (infsupdec (), infsupdec ()), infsupdec ())); +***** assert (isequal (mod (infsupdec (0), infsupdec ()), infsupdec ())); +***** assert (isequal (mod (infsupdec (), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (0), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (1), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (1, 2), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (0, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (1, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (mod (infsupdec (0), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (0, 1)), infsupdec (0, "trv"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (1, 2)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (0, inf)), infsupdec (0, "trv"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (1, inf)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (realmax, inf)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (2), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (4), infsupdec (2)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (6), infsupdec (3)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (8), infsupdec (2)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (9), infsupdec (3)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 2)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 4)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 8)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 16)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 32)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0.1), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0.1 * 2), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0.1 * 4), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (pi)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (pi / 2)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (pi / 4)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pow2 (-1074)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pow2 (-1073)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (pow2 (-1072)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (2)), infsupdec (1))); +***** assert (isequal (mod (infsupdec (0.5), infsupdec (1)), infsupdec (0.5))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); +***** assert (isequal (mod (infsupdec (1), infsupdec (2, 3)), infsupdec (1))); +***** assert (isequal (mod (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); +***** assert (isequal (mod (infsupdec (0.5), infsupdec (1, 2)), infsupdec (0.5))); +***** assert (isequal (mod (infsupdec (0.5), infsupdec (1, inf)), infsupdec (0.5, "dac"))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); +***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15, inf)), infsupdec (pi, "dac"))); +***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); +***** assert (isequal (mod (infsupdec (0, 2), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); +***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0, 2)), infsupdec (0, 1, "trv"))); +***** assert (isequal (mod (infsupdec (0, realmax), infsupdec (0, realmax)), infsupdec (0, realmax, "trv"))); +***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (realmax, inf)), infsupdec (0, inf, "def"))); +***** assert (isequal (mod (infsupdec (0, inf), infsupdec (0, inf)), infsupdec (0, inf, "trv"))); +***** assert (isequal (mod (infsupdec (0), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (0, 1), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (1, 2), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (0, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (1, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (0, 1)), infsupdec (0, 0.5, "trv"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (1, 2)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (0, inf)), infsupdec (0, 1, "trv"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (1, inf)), infsupdec (0, 1, "def"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); +***** assert (isequal (mod (infsupdec (1), infsupdec (realmax, inf)), infsupdec (1, "dac"))); +66 tests, 66 passed, 0 known failure, 0 skipped +[inst/@infsupdec/floor.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/floor.m +***** # from the documentation string +***** assert (isequal (floor (infsupdec (2.5, 3.5)), infsupdec (2, 3, "def"))); +***** assert (isequal (floor (infsupdec (-0.5, 5)), infsupdec (-1, 5, "def"))); +***** warning + _ = @infsupdec; + assert (isequal (... + floor (_ ("jansen")), nai)) #ghtwish +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.isEntire; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.floor; for testcase = [testcases]' assert (isequaln (... - isentire (testcase.in{1}), ... + floor (testcase.in{1}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.isEntire; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.floor; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (isentire (in1), out)); + assert (isequaln (floor (in1), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isEntire; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.floor; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4099,69 +4268,33 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (isentire (in1), out)); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/@infsup/linspace.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/linspace.m -***** assert (isequal (linspace (infsup (0), infsup (10), 9), infsup (linspace (0, 10, 9)))); -***** # correct use of signed zeros -***** test - x = linspace (infsup (0), infsup (0)); - assert (all (signbit (inf (x)))); - assert (all (not (signbit (sup (x))))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/length.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/length.m -***** assert (length (infsup ([])), 0); -***** assert (length (infsup (0)), 1); -***** assert (length (infsup (zeros (3, 1))), 3); -***** assert (length (infsup (zeros (1, 4))), 4); -***** assert (length (infsup (zeros (3, 4))), 4); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/mulrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mulrev.m -***** #IEEE Std 1788-2015 mulRevToPair examples -***** test - [u, v] = mulrev (infsup (0), infsup (1, 2)); - assert (isempty (u) & isempty (v)); -***** test - [u, v] = mulrev (infsup (0), infsup (0, 1)); - assert (isentire (u) & isempty (v)); -***** test - [u, v] = mulrev (infsup (1), infsup (1, 2)); - assert (eq (u, infsup (1, 2)) & isempty (v)); -***** test - [u, v] = mulrev (infsup (1, inf), infsup (1)); - assert (eq (u, infsup (0, 1)) & isempty (v)); -***** test - [u, v] = mulrev (infsup (-1, 1), infsup (1, 2)); - assert (eq (u, infsup (-inf, -1)) & eq (v, infsup (1, inf))); -***** test - [u, v] = mulrev (infsup (-inf, inf), infsup (1)); - assert (eq (u, infsup (-inf, 0)) & eq (v, infsup (0, inf))); + assert (isequaln (floor (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/log.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log.m +***** # from the documentation string +***** assert (isequal (log (infsupdec (2)), infsupdec ("[0x1.62E42FEFA39EFp-1, 0x1.62E42FEFA39Fp-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair1; + testcases = testdata.NoSignal.infsupdec.log; for testcase = [testcases]' assert (isequaln (... - nthargout (1, 2, @mulrev, testcase.in{1}, testcase.in{2}), ... + log (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair1; + testcases = testdata.NoSignal.infsupdec.log; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); + assert (isequaln (log (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair1; + testcases = testdata.NoSignal.infsup.log; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4170,29 +4303,56 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); + assert (isequaln (log (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/roundb.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/roundb.m +***** # Empty interval +***** assert (isequal (roundb (infsupdec ()), infsupdec ())); +***** # Singleton intervals +***** assert (isequal (roundb (infsupdec (0)), infsupdec (0))); +***** assert (isequal (roundb (infsupdec (0.5)), infsupdec (0, "dac"))); +***** assert (isequal (roundb (infsupdec (0.25)), infsupdec (0))); +***** assert (isequal (roundb (infsupdec (0.75)), infsupdec (1))); +***** assert (isequal (roundb (infsupdec (1.5)), infsupdec (2, "dac"))); +***** assert (isequal (roundb (infsupdec (-0.5)), infsupdec (0, "dac"))); +***** assert (isequal (roundb (infsupdec (-1.5)), infsupdec (-2, "dac"))); +***** # Bounded intervals +***** assert (isequal (roundb (infsupdec (-0.5, 0)), infsupdec (0, "dac"))); +***** assert (isequal (roundb (infsupdec (0, 0.5)), infsupdec (0, "dac"))); +***** assert (isequal (roundb (infsupdec (0.25, 0.5)), infsupdec (0, "dac"))); +***** assert (isequal (roundb (infsupdec (-1, 0)), infsupdec (-1, 0, "def"))); +***** assert (isequal (roundb (infsupdec (-1, 1)), infsupdec (-1, 1, "def"))); +***** assert (isequal (roundb (infsupdec (-realmin, realmin)), infsupdec (0))); +***** assert (isequal (roundb (infsupdec (-realmax, realmax)), infsupdec (-realmax, realmax, "def"))); +***** # Unbounded intervals +***** assert (isequal (roundb (infsupdec (-realmin, inf)), infsupdec (0, inf, "def"))); +***** assert (isequal (roundb (infsupdec (-realmax, inf)), infsupdec (-realmax, inf, "def"))); +***** assert (isequal (roundb (infsupdec (-inf, realmin)), infsupdec (-inf, 0, "def"))); +***** assert (isequal (roundb (infsupdec (-inf, realmax)), infsupdec (-inf, realmax, "def"))); +***** assert (isequal (roundb (infsupdec (-inf, inf)), infsupdec (-inf, inf, "def"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair2; + testcases = testdata.NoSignal.infsupdec.roundTiesToEven; for testcase = [testcases]' assert (isequaln (... - nthargout (2, @mulrev, testcase.in{1}, testcase.in{2}), ... + roundb (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair2; + testcases = testdata.NoSignal.infsupdec.roundTiesToEven; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); + assert (isequaln (roundb (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mulRevToPair2; + testcases = testdata.NoSignal.infsup.roundTiesToEven; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4201,27 +4361,48 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); + assert (isequaln (roundb (in1), out)); +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mldivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mldivide.m +***** # unique solution +***** assert (isequal (infsupdec ([1, 0; 0, 2]) \ [2, 0; 0, 4], infsupdec ([2, 0; 0 2], "trv"))); +***** # no solution +***** assert (all (isempty (infsupdec ([1, 0; 2, 0]) \ [3; 0]))); +***** # many solutions +***** assert (isequal (infsupdec ([1, 0; 2, 0]) \ [4; 8], infsupdec ([4; -inf], [4; inf], "trv"))); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsupdec/gamma.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gamma.m +***** # from the documentation string +***** assert (isequal (gamma (infsupdec (1.5)), infsupdec ("[0x1.C5BF891B4EF6Ap-1, 0x1.C5BF891B4EF6Bp-1]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/minus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/minus.m +***** # from the documentation string +***** assert (isequal (infsupdec (2, 3) - infsupdec (1, 2), infsupdec (0, 2))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mulRev; + testcases = testdata.NoSignal.infsupdec.sub; for testcase = [testcases]' assert (isequaln (... - mulrev (testcase.in{1}, testcase.in{2}), ... + minus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mulRev; + testcases = testdata.NoSignal.infsupdec.sub; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (mulrev (in1, in2), out)); + assert (isequaln (minus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mulRev; + testcases = testdata.NoSignal.infsupdec.sub; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -4234,29 +4415,35 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mulrev (in1, in2), out)); + assert (isequaln (minus (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/disjoint.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/disjoint.m +***** assert (disjoint (infsupdec (3, 4), infsupdec (5, 6))); +***** assert (not (disjoint (infsupdec (3, 4), infsupdec (4, 5)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mulRevTen; + testcases = testdata.NoSignal.infsupdec.disjoint; for testcase = [testcases]' assert (isequaln (... - mulrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + disjoint (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mulRevTen; + testcases = testdata.NoSignal.infsupdec.disjoint; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (mulrev (in1, in2, in3), out)); + assert (isequaln (disjoint (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mulRevTen; + testcases = testdata.NoSignal.infsupdec.disjoint; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4266,39 +4453,36 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mulrev (in1, in2, in3), out)); -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/@infsup/asinh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/asinh.m -***** # from the documentation string -***** assert (asinh (infsup (1)) == "[0x1.C34366179D426p-1, 0x1.C34366179D427p-1]"); -***** # correct use of signed zeros -***** test - x = asinh (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (disjoint (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/inf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/inf.m +***** assert (inf (infsupdec (2.5, 3.5)), 2.5); +***** assert (inf (infsupdec ()), +inf); +***** assert (inf (infsupdec ("[nai]")), nan); +***** warning id=interval:UndefinedOperation + assert (inf (infsupdec (2, 1)), nan); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.asinh; + testcases = testdata.NoSignal.infsupdec.inf; for testcase = [testcases]' assert (isequaln (... - asinh (testcase.in{1}), ... + inf (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.asinh; + testcases = testdata.NoSignal.infsupdec.inf; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (asinh (in1), out)); + assert (isequaln (inf (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.asinh; + testcases = testdata.NoSignal.infsup.inf; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4309,69 +4493,32 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (asinh (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/erf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/erf.m -***** # from the documentation string -***** assert (erf (infsup (1)) == "[0x1.AF767A741088Ap-1, 0x1.AF767A741088Bp-1]"); -***** # correct use of signed zeros -***** test - x = erf (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/bitunpack.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/bitunpack.m -***** test; - littleendian = bitunpack (uint16 (1))(1); - b = zeros (1, 128); - if (littleendian) - b([52, 63, 117, 127]) = 1; - else - b([7, 12, 71, 77]) = 1; - endif - assert (bitunpack (infsup (3, 4)), logical (b)); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/gammaln.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/gammaln.m -***** assert (gammaln (infsup (-inf, inf)) == "[-0x1.F19B9BCC38A42p-4, +Inf]"); -***** # from the documentation string -***** assert (gammaln (infsup (1.5)) == "[-0x1.EEB95B094C192p-4, -0x1.EEB95B094C191p-4]"); -***** # correct use of signed zeros -***** test - x = gammaln (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = gammaln (infsup (2)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/cot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cot.m + assert (isequaln (inf (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/acosh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/acosh.m ***** # from the documentation string -***** assert (cot (infsup (1)) == "[0x1.48C05D04E1CFDp-1, 0x1.48C05D04E1CFEp-1]"); +***** assert (isequal (acosh (infsupdec (2)), infsupdec ("[0x1.5124271980434, 0x1.5124271980435]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cot; + testcases = testdata.NoSignal.infsupdec.acosh; for testcase = [testcases]' assert (isequaln (... - cot (testcase.in{1}), ... + acosh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cot; + testcases = testdata.NoSignal.infsupdec.acosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cot (in1), out)); + assert (isequaln (acosh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cot; + testcases = testdata.NoSignal.infsup.acosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4382,45 +4529,42 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cot (in1), out)); + assert (isequaln (acosh (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/polyval.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/polyval.m -***** assert (polyval (infsup (42), 0) == 42); -***** assert (polyval (infsup ([42 42]), 0) == 42); -***** assert (polyval (infsup ([42 42]), 1) == 84); -***** assert (polyval (infsup ([42 42]), -1) == 0); -***** assert (polyval (infsup ([-42 42 42]), .5) == -42*0.5^2 + 42*0.5 + 42); -***** assert (polyval (infsup (vec (pascal (3))), 0.1) == "[0X6.502E9A7231A08P+0, 0X6.502E9A7231A0CP+0]"); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/rad.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/rad.m -***** test; - [m, r] = rad (infsup (2.5, 3.5)); - assert (m, 3); - assert (r, .5); -***** # from the documentation string -***** assert (rad (infsup (2.5, 3.5)), .5); +[inst/@infsupdec/intervalpart.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/intervalpart.m +***** warning id=interval:IntvlPartOfNaI + assert (intervalpart (nai ()) == infsup ()); +***** assert (intervalpart (infsupdec (2, 3)) == infsup (2, 3)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.rad; + testcases = testdata.NoSignal.infsupdec.intervalPart; for testcase = [testcases]' assert (isequaln (... - rad (testcase.in{1}), ... + intervalpart (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.rad; + testcases = testdata.NoSignal.infsupdec.intervalPart; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (rad (in1), out)); + assert (isequaln (intervalpart (in1), out)); +***** warning + testcases = testdata.IntvlPartOfNaI.infsupdec.intervalPart; + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + intervalpart (testcase.in{1}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:IntvlPartOfNaI"); + endfor ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.rad; + testcases = testdata.NoSignal.infsupdec.intervalPart; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4431,25 +4575,109 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rad (in1), out)); + assert (isequaln (intervalpart (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/det.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/det.m +***** # from the documentation string +***** assert (det (infsupdec (magic (3))) == -360); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/rem.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rem.m +***** assert (isequal (rem (infsupdec (), infsupdec ()), infsupdec ())); +***** assert (isequal (rem (infsupdec (0), infsupdec ()), infsupdec ())); +***** assert (isequal (rem (infsupdec (), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (0), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (1), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (1, 2), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (0, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (1, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (0)), infsupdec ())); +***** assert (isequal (rem (infsupdec (0), infsupdec (1)), infsupdec (0))); +***** assert (isequal (rem (infsupdec (0), infsupdec (0, 1)), infsupdec (0, "trv"))); +***** assert (isequal (rem (infsupdec (0), infsupdec (1, 2)), infsupdec (0))); +***** assert (isequal (rem (infsupdec (0), infsupdec (0, inf)), infsupdec (0, "trv"))); +***** assert (isequal (rem (infsupdec (0), infsupdec (1, inf)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (0), infsupdec (realmax, inf)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (2), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (4), infsupdec (2)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (6), infsupdec (3)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (8), infsupdec (2)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (9), infsupdec (3)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 2)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 4)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 8)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 16)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 32)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (0.1), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (0.1 * 2), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (0.1 * 4), infsupdec (0.1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (pi)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (pi / 2)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (pi / 4)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pow2 (-1074)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pow2 (-1073)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (pow2 (-1072)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (2)), infsupdec (1))); +***** assert (isequal (rem (infsupdec (0.5), infsupdec (1)), infsupdec (0.5))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); +***** assert (isequal (rem (infsupdec (1), infsupdec (2, 3)), infsupdec (1))); +***** assert (isequal (rem (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); +***** assert (isequal (rem (infsupdec (0.5), infsupdec (1, 2)), infsupdec (0.5))); +***** assert (isequal (rem (infsupdec (0.5), infsupdec (1, inf)), infsupdec (0.5, "dac"))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); +***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15, inf)), infsupdec (pi, "dac"))); +***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); +***** assert (isequal (rem (infsupdec (0, 2), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); +***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0, 2)), infsupdec (0, 1, "trv"))); +***** assert (isequal (rem (infsupdec (0, realmax), infsupdec (0, realmax)), infsupdec (0, realmax, "trv"))); +***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (realmax, inf)), infsupdec (0, inf, "def"))); +***** assert (isequal (rem (infsupdec (0, inf), infsupdec (0, inf)), infsupdec (0, inf, "trv"))); +***** assert (isequal (rem (infsupdec (0), infsupdec (1)), infsupdec (0))); +***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (0, 1), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (1, 2), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (0, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (1, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (1)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (0, 1)), infsupdec (0, 0.5, "trv"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (1, 2)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (0, inf)), infsupdec (0, 1, "trv"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (1, inf)), infsupdec (0, 1, "def"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); +***** assert (isequal (rem (infsupdec (1), infsupdec (realmax, inf)), infsupdec (1, "dac"))); +66 tests, 66 passed, 0 known failure, 0 skipped +[inst/@infsupdec/intersect.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/intersect.m +***** # from the documentation string +***** assert (isequal (intersect (infsupdec (1, 3), infsupdec (2, 4)), infsupdec (2, 3, "trv"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.rad; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.intersection; for testcase = [testcases]' assert (isequaln (... - rad (testcase.in{1}), ... + intersect (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.rad; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.intersection; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (rad (in1), out)); + assert (isequaln (intersect (in1, in2), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.rad; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.intersection; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4458,35 +4686,35 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rad (in1), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/le.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/le.m -***** assert (le (infsup (1, 3), infsup (3))); + assert (isequaln (intersect (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/log10.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log10.m +***** # from the documentation string +***** assert (isequal (log10 (infsupdec (2)), infsupdec ("[0x1.34413509F79FEp-2, 0x1.34413509F79FFp-2]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.less; + testcases = testdata.NoSignal.infsupdec.log10; for testcase = [testcases]' assert (isequaln (... - le (testcase.in{1}, testcase.in{2}), ... + log10 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.less; + testcases = testdata.NoSignal.infsupdec.log10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (le (in1, in2), out)); + assert (isequaln (log10 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.less; + testcases = testdata.NoSignal.infsup.log10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4495,73 +4723,36 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (le (in1, in2), out)); + assert (isequaln (log10 (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/erfc.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/erfc.m +[inst/@infsupdec/sign.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sign.m ***** # from the documentation string -***** assert (erfc (infsup (1)) == "[0x1.4226162FBDDD4p-3, 0x1.4226162FBDDD5p-3]"); -***** # correct use of signed zeros -***** test - x = erfc (infsup (realmax)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/round.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/round.m -***** # Empty interval -***** assert (round (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (round (infsup (0)) == infsup (0)); -***** assert (round (infsup (0.5)) == infsup (1)); -***** assert (round (infsup (0.25)) == infsup (0)); -***** assert (round (infsup (0.75)) == infsup (1)); -***** assert (round (infsup (-0.5)) == infsup (-1)); -***** # Bounded intervals -***** assert (round (infsup (-0.5, 0)) == infsup (-1, 0)); -***** assert (round (infsup (0, 0.5)) == infsup (0, 1)); -***** assert (round (infsup (0.25, 0.5)) == infsup (0, 1)); -***** assert (round (infsup (-1, 0)) == infsup (-1, 0)); -***** assert (round (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (round (infsup (-realmin, realmin)) == infsup (0)); -***** assert (round (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); -***** # Unbounded intervals -***** assert (round (infsup (-realmin, inf)) == infsup (0, inf)); -***** assert (round (infsup (-realmax, inf)) == infsup (-realmax, inf)); -***** assert (round (infsup (-inf, realmin)) == infsup (-inf, 0)); -***** assert (round (infsup (-inf, realmax)) == infsup (-inf, realmax)); -***** assert (round (infsup (-inf, inf)) == infsup (-inf, inf)); -***** # correct use of signed zeros -***** test - x = round (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = round (infsup (-0.25, 0.25)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (sign (infsupdec (2, 3)), infsupdec (1))); +***** assert (isequal (sign (infsupdec (0)), infsupdec (0, "dac"))); +***** assert (isequal (sign (infsupdec (0, 5)), infsupdec (0, 1, "def"))); +***** assert (isequal (sign (infsupdec (-17)), infsupdec (-1))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.roundTiesToAway; + testcases = testdata.NoSignal.infsupdec.sign; for testcase = [testcases]' assert (isequaln (... - round (testcase.in{1}), ... + sign (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.roundTiesToAway; + testcases = testdata.NoSignal.infsupdec.sign; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (round (in1), out)); + assert (isequaln (sign (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.roundTiesToAway; + testcases = testdata.NoSignal.infsup.sign; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4572,59 +4763,42 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (round (in1), out)); -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/@infsup/inv.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/inv.m -***** # from the wiki -***** test - A = infsup ([1, 2, 3; 4, 0, 0; 0, 0, 1]); - A (2, 3) = "[0, 6]"; - B = inv (A); - assert (inf (B) == [0, .25, -1.5; .5, -.125, -1.5; 0, 0, 1]); - assert (sup (B) == [0, .25, 0; .5, -.125, -.75; 0, 0, 1]); -***** # from the documentation string -***** assert (inv (infsup ([2, 1, 1; 0, 1, 0; 1, 0, 0])) == [0, 0, 1; 0, 1, 0; 1, -1, -2]); -***** assert (inv (infsup ([1, 2, 3; 4, 0, 6; 0, 0, 1])) == [0, .25, -1.5; .5, -.125, -.75; 0, 0, 1]); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/dilog.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/dilog.m -***** assert (dilog (infsup (-inf, inf)) == "[-Inf, +0x1.3BD3CC9BE45DFp1]"); + assert (isequaln (sign (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/atan2rev2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2rev2.m ***** # from the documentation string -***** assert (dilog (infsup (1)) == "[0x1.A51A6625307D3, 0x1.A51A6625307D4]"); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/pow.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/pow.m +***** assert (isequal (atan2rev2 (infsupdec (1, 2), infsupdec ("pi") / 4), infsupdec ("[0x1.FFFFFFFFFFFFEp-1, 0x1.0000000000001p1]_trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mince.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mince.m +***** assert (isequal (mince (infsupdec (0, 10), 10), infsupdec (0 : 9, 1 : 10, "trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/atanh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atanh.m ***** # from the documentation string -***** assert (pow (infsup (5, 6), infsup (2, 3)) == infsup (25, 216)); -***** # correct use of signed zeros -***** test - x = pow (infsup (0), infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (atanh (infsupdec (.5)), infsupdec ("[0x1.193EA7AAD030Ap-1, 0x1.193EA7AAD030Bp-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.pow; + testcases = testdata.NoSignal.infsupdec.atanh; for testcase = [testcases]' assert (isequaln (... - pow (testcase.in{1}, testcase.in{2}), ... + atanh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.pow; + testcases = testdata.NoSignal.infsupdec.atanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pow (in1, in2), out)); + assert (isequaln (atanh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pow; + testcases = testdata.NoSignal.infsup.atanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4633,39 +4807,33 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/log.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/log.m + assert (isequaln (atanh (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/asin.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/asin.m ***** # from the documentation string -***** assert (log (infsup (2)) == "[0x1.62E42FEFA39EFp-1, 0x1.62E42FEFA39Fp-1]"); -***** # correct use of signed zeros -***** test - x = log (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (asin (infsupdec (.5)), infsupdec ("[0x1.0C152382D7365p-1, 0x1.0C152382D7366p-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.log; + testcases = testdata.NoSignal.infsupdec.asin; for testcase = [testcases]' assert (isequaln (... - log (testcase.in{1}), ... + asin (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.log; + testcases = testdata.NoSignal.infsupdec.asin; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (log (in1), out)); + assert (isequaln (asin (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log; + testcases = testdata.NoSignal.infsup.asin; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4676,40 +4844,37 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/atan2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2.m -***** test "from the documentation string"; -***** assert (atan2 (infsup (1), infsup (-1)) == "[0x1.2D97C7F3321D2p1, 0x1.2D97C7F3321D3p1]"); -***** # correct use of signed zeros -***** test - x = atan2 (0, infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (asin (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/polyval.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/polyval.m +***** assert (isequal (polyval (infsupdec (3, "trv"), 0), infsupdec (3, "trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/realsqrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/realsqrt.m +***** # from the documentation string +***** assert (isequal (realsqrt (infsupdec (-6, 4)), infsupdec (0, 2, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.atan2; + testcases = testdata.NoSignal.infsupdec.sqrt; for testcase = [testcases]' assert (isequaln (... - atan2 (testcase.in{1}, testcase.in{2}), ... + realsqrt (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.atan2; + testcases = testdata.NoSignal.infsupdec.sqrt; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (atan2 (in1, in2), out)); + assert (isequaln (realsqrt (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.atan2; + testcases = testdata.NoSignal.infsup.sqrt; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4718,54 +4883,46 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atan2 (in1, in2), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/strictsubset.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/strictsubset.m -***** assert (strictsubset (infsup (1, 2), infsup (1, 3))); -***** assert (strictsubset (infsup (2, 3), infsup (1, 3))); -***** assert (not (strictsubset (infsup (1, 2), infsup (1, 2)))); -***** assert (not (strictsubset (infsup (1, 3), infsup (1, 2)))); -***** assert (strictsubset (infsup (), infsup (1, 3))); -***** assert (not (strictsubset (infsup (), infsup ()))); -***** assert (strictsubset (infsup (), infsup (-inf, inf))); -***** assert (strictsubset (infsup (0, inf), infsup (-inf, inf))); -***** assert (strictsubset (infsup (-inf, 0), infsup (-inf, inf))); -***** assert (not (strictsubset (infsup (-inf, inf), infsup (-inf, inf)))); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/@infsup/issingleton.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/issingleton.m -***** assert (issingleton (infsup (0))); -***** assert (issingleton (infsupdec (0))); -***** assert (not (issingleton (entire ()))); -***** assert (not (issingleton (intervalpart (entire ())))); -***** assert (not (issingleton (empty ()))); -***** assert (not (issingleton (intervalpart (empty ())))); -***** warning assert (not (issingleton (infsupdec (2, 1)))); + assert (isequaln (realsqrt (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/decorationpart.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/decorationpart.m +***** assert (decorationpart (infsupdec (3, 4)), {"com"}); +***** assert (decorationpart (infsupdec (3, inf)), {"dac"}); +***** assert (decorationpart (infsupdec ("[3, 4]_def")), {"def"}); +***** assert (decorationpart (infsupdec ()), {"trv"}); +***** assert (decorationpart (nai), {"ill"}); +***** assert (decorationpart (nai, "uint8") ... + < decorationpart (infsupdec ("[3, 4]_trv"), "uint8")); +***** assert (decorationpart (infsupdec ("[3, 4]_trv"), "uint8") ... + < decorationpart (infsupdec ("[3, 4]_def"), "uint8")); +***** assert (decorationpart (infsupdec ("[3, 4]_def"), "uint8") ... + < decorationpart (infsupdec ("[3, 4]_dac"), "uint8")); +***** assert (decorationpart (infsupdec ("[3, 4]_dac"), "uint8") ... + < decorationpart (infsupdec ("[3, 4]_com"), "uint8")); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.isSingleton; + testcases = testdata.NoSignal.infsupdec.decorationPart; for testcase = [testcases]' assert (isequaln (... - issingleton (testcase.in{1}), ... - testcase.out)); + decorationpart (testcase.in{1}), ... + {testcase.out})); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.isSingleton; + testcases = testdata.NoSignal.infsupdec.decorationPart; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); - assert (isequaln (issingleton (in1), out)); + out = {testcases.out}'; + assert (isequaln (decorationpart (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isSingleton; + testcases = testdata.NoSignal.infsupdec.decorationPart; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); + out = {testcases.out}'; # Reshape data i = -1; do @@ -4774,24 +4931,32 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (issingleton (in1), out)); + assert (isequaln (decorationpart (in1), out)); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sinh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sinh.m +***** # from the documentation string +***** assert (isequal (sinh (infsupdec (1)), infsupdec ("[0x1.2CD9FC44EB982, 0x1.2CD9FC44EB983]"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.isSingleton; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.sinh; for testcase = [testcases]' assert (isequaln (... - issingleton (testcase.in{1}), ... + sinh (testcase.in{1}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.isSingleton; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.sinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (issingleton (in1), out)); + assert (isequaln (sinh (in1), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isSingleton; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.sinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4802,34 +4967,32 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (issingleton (in1), out)); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/@infsup/newdec.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/newdec.m + assert (isequaln (sinh (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/tanrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tanrev.m ***** # from the documentation string -***** assert (isequal (newdec (infsup (2, 3)), infsupdec (2, 3))); -***** assert (isequal (newdec (infsupdec (2, 3)), infsupdec (2, 3))); -***** assert (isequal (newdec (infsupdec (1, "trv")), infsupdec (1, "trv"))); +***** assert (isequal (tanrev (infsupdec (0), infsupdec (2, 4)), infsupdec ("pi", "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.newDec; + testcases = testdata.NoSignal.infsupdec.tanRev; for testcase = [testcases]' assert (isequaln (... - newdec (testcase.in{1}), ... + tanrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.newDec; + testcases = testdata.NoSignal.infsupdec.tanRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (newdec (in1), out)); + assert (isequaln (tanrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.newDec; + testcases = testdata.NoSignal.infsupdec.tanRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -4840,38 +5003,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (newdec (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/log2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/log2.m -***** # from the documentation string -***** assert (log2 (infsup (2)) == 1); -***** # correct use of signed zeros -***** test - x = log2 (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (tanrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.log2; + testcases = testdata.NoSignal.infsupdec.tanRevBin; for testcase = [testcases]' assert (isequaln (... - log2 (testcase.in{1}), ... + tanrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.log2; + testcases = testdata.NoSignal.infsupdec.tanRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (log2 (in1), out)); + assert (isequaln (tanrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log2; + testcases = testdata.NoSignal.infsupdec.tanRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4880,49 +5032,35 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log2 (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/norm.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/norm.m -***** test - A = infsup ("0 [Empty] [0, 1] 1"); - assert (isequal (norm (A, 0, "cols"), infsup ("0 [Empty] [0, 1] 1"))); -***** assert (norm (infsup (magic (3)), inf, 1) == 45); -***** assert (norm (infsup (-magic (3), magic (3)), inf, 1) == "[0, 45]"); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/plus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/plus.m + assert (isequaln (tanrev (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sin.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sin.m ***** # from the documentation string -***** assert (infsup (2, 3) + infsup (1, 2) == infsup (3, 5)); -***** # correct use of signed zeros -***** test - x = plus (infsup (0), infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (sin (infsupdec (1)), infsupdec ("[0x1.AED548F090CEEp-1, 0x1.AED548F090CEFp-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.add; + testcases = testdata.NoSignal.infsupdec.sin; for testcase = [testcases]' assert (isequaln (... - plus (testcase.in{1}, testcase.in{2}), ... + sin (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.add; + testcases = testdata.NoSignal.infsupdec.sin; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (plus (in1, in2), out)); + assert (isequaln (sin (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.add; + testcases = testdata.NoSignal.infsup.sin; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4931,40 +5069,36 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (plus (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/uminus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/uminus.m + assert (isequaln (sin (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/min.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/min.m ***** # from the documentation string -***** assert (-infsup (2, 3) == infsup (-3, -2)); -***** # correct use of signed zeros -***** test - x = uminus (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (min (infsupdec (2, 3), infsupdec (1, 2)), infsupdec (1, 2))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.neg; + testcases = testdata.NoSignal.infsupdec.min; for testcase = [testcases]' assert (isequaln (... - uminus (testcase.in{1}), ... + min (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.neg; + testcases = testdata.NoSignal.infsupdec.min; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (uminus (in1), out)); + assert (isequaln (min (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.neg; + testcases = testdata.NoSignal.infsupdec.min; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -4973,18 +5107,70 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (uminus (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/pownrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/pownrev.m -***** assert (pownrev (infsup (25, 36), infsup (0, inf), 2) == infsup (5, 6)); + assert (isequaln (min (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/dot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/dot.m +***** # matrix × matrix +***** assert (isequal (dot (infsupdec (magic (3)), magic (3)), infsupdec([89, 107, 89]))); +***** assert (isequal (dot (infsupdec (magic (3)), magic (3), 1), infsupdec([89, 107, 89]))); +***** assert (isequal (dot (infsupdec (magic (3)), magic (3), 2), infsupdec([101; 83; 101]))); +***** # matrix × vector +***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3]), infsupdec([28; 34; 28]))); +***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3], 1), infsupdec([15, 30, 45]))); +***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3], 2), infsupdec([28; 34; 28]))); +***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3]), infsupdec([26, 38, 26]))); +***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3], 1), infsupdec([26, 38, 26]))); +***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3], 2), infsupdec([15; 30; 45]))); +***** # matrix × scalar +***** assert (isequal (dot (infsupdec (magic (3)), 42), infsupdec([630, 630, 630]))); +***** assert (isequal (dot (infsupdec (magic (3)), 42, 1), infsupdec([630, 630, 630]))); +***** assert (isequal (dot (infsupdec (magic (3)), 42, 2), infsupdec([630; 630; 630]))); +***** # vector x vector +***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6]), infsupdec(32))); +***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6], 1), infsupdec([4, 10, 18]))); +***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6], 2), infsupdec(32))); +***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6]), infsupdec(32))); +***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6], 1), infsupdec(32))); +***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6], 2), infsupdec([4; 10; 18]))); +***** # vector × scalar +***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42), infsupdec(252))); +***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42, 1), infsupdec([42, 84, 126]))); +***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42, 2), infsupdec(252))); +***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42), infsupdec(252))); +***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42, 1), infsupdec(252))); +***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42, 2), infsupdec([42; 84; 126]))); +***** # empty matrix x empty matrix +***** assert (isequal (dot (infsupdec (ones (0, 2)), infsupdec (ones (0, 2))), infsupdec ([0, 0]))); +***** # N-dimensional arrays +***** test + x = infsupdec (reshape (1:24, 2, 3, 4)); + y = infsupdec (2.*ones (2, 3, 4)); + assert (isequal (dot (x, y, 3), infsupdec ([80, 96, 112; 88, 104, 120]))) +***** test + x = infsupdec (ones (2, 2, 2, 2)); + y = infsupdec (1); + assert (size (dot (x, y)), [1, 2, 2, 2]); + assert (size (dot (x, y, 1)), [1, 2, 2, 2]); + assert (size (dot (x, y, 2)), [2, 1, 2, 2]); + assert (size (dot (x, y, 3)), [2, 2, 1, 2]); + assert (size (dot (x, y, 4)), [2, 2, 2]); + assert (size (dot (x, y, 5)), [2, 2, 2, 2]); +***** # from the documentation string +***** assert (isequal (dot ([infsupdec(1), 2, 3], [infsupdec(2), 3, 4]), infsupdec (20))); +***** assert (isequal (dot (infsupdec ([realmax; realmin; realmax]), [1; -1; -1], 1), infsupdec (-realmin))); +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/@infsupdec/pownrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pownrev.m +***** assert (isequal (pownrev (infsupdec (25, 36), infsupdec (0, inf), 2), infsupdec (5, 6, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.pownRev; + testcases = testdata.NoSignal.infsupdec.pownRev; for testcase = [testcases]' assert (isequaln (... pownrev (testcase.in{1}, testcase.in{2}), ... @@ -4992,14 +5178,14 @@ endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.pownRev; + testcases = testdata.NoSignal.infsupdec.pownRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); assert (isequaln (pownrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pownRev; + testcases = testdata.NoSignal.infsupdec.pownRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5015,7 +5201,7 @@ assert (isequaln (pownrev (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.pownRevBin; + testcases = testdata.NoSignal.infsupdec.pownRevBin; for testcase = [testcases]' assert (isequaln (... pownrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... @@ -5023,7 +5209,7 @@ endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.pownRevBin; + testcases = testdata.NoSignal.infsupdec.pownRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); in3 = vertcat (vertcat (testcases.in){:, 3}); @@ -5031,7 +5217,7 @@ assert (isequaln (pownrev (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pownRevBin; + testcases = testdata.NoSignal.infsupdec.pownRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); in3 = vertcat (vertcat (testcases.in){:, 3}); @@ -5048,32 +5234,33 @@ out = reshape ([out; out(1:i)], testsize); assert (isequaln (pownrev (in1, in2, in3), out)); 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/sqrrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sqrrev.m -***** # from the documentation string -***** assert (sqrrev (infsup (-2, 1)) == infsup (-1, 1)); +[inst/@infsupdec/overlap.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/overlap.m +***** assert (overlap (infsupdec (1, 2), infsupdec (3, 4)), "before"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sqrRev; + testcases = testdata.NoSignal.infsupdec.overlap; for testcase = [testcases]' assert (isequaln (... - sqrrev (testcase.in{1}), ... + overlap (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sqrRev; + testcases = testdata.NoSignal.infsupdec.overlap; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); - assert (isequaln (sqrrev (in1), out)); + in2 = vertcat (vertcat (testcases.in){:, 2}); + out = {testcases.out}'; + assert (isequaln (overlap (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqrRev; + testcases = testdata.NoSignal.infsupdec.overlap; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); + in2 = vertcat (vertcat (testcases.in){:, 2}); + out = {testcases.out}'; # Reshape data i = -1; do @@ -5081,26 +5268,51 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sqrrev (in1), out)); + assert (isequaln (overlap (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mtimes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mtimes.m +***** assert (isequal (infsupdec ([1, 2; 7, 15], [2, 2; 7.5, 15], {"com", "def"; "dac", "com"}) * infsupdec ([3, 3; 0, 1], [3, 3.25; 0, 2]), infsupdec ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375], {"def", "def"; "dac", "dac"}))); +***** # from the documentation string +***** assert (isequal (infsupdec ([1, 2; 7, 15], [2, 2; 7.5, 15]) * infsupdec ([3, 3; 0, 1], [3, 3.25; 0, 2]), infsupdec ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375]))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsupdec/powrev2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/powrev2.m +***** # from the documentation string +***** assert (isequal (powrev2 (infsupdec (2, 5), infsupdec (3, 6)), infsupdec ("[0x1.5D7E8F22BA886p-1, 0x1.4AE00D1CFDEB5p1]_trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sec.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sec.m +***** # from the documentation string +***** assert (isequal (sec (infsupdec (1)), infsupdec ("[0x1.D9CF0F125CC29, 0x1.D9CF0F125CC2A]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/strictprecedes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/strictprecedes.m +***** assert (strictprecedes (infsupdec (1, 1.9), infsupdec (2.1, 3))); +***** assert (not (strictprecedes (infsupdec (1, 2), infsupdec (2, 3)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sqrRevBin; + testcases = testdata.NoSignal.infsupdec.strictPrecedes; for testcase = [testcases]' assert (isequaln (... - sqrrev (testcase.in{1}, testcase.in{2}), ... + strictprecedes (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sqrRevBin; + testcases = testdata.NoSignal.infsupdec.strictPrecedes; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sqrrev (in1, in2), out)); + assert (isequaln (strictprecedes (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqrRevBin; + testcases = testdata.NoSignal.infsupdec.strictPrecedes; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5113,87 +5325,33 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sqrrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/gamma.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/gamma.m -***** # from the documentation string -***** assert (gamma (infsup (1.5)) == "[0x1.C5BF891B4EF6Ap-1, 0x1.C5BF891B4EF6Bp-1]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/plot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/plot.m -***** # this test is rather pointless -***** test - clf - plot (empty ()); - close -warning: using the gnuplot graphics toolkit is discouraged - -The gnuplot graphics toolkit is not actively maintained and has a number -of limitations that are unlikely to be fixed. Communication with gnuplot -uses a one-directional pipe and limited information is passed back to the -Octave interpreter so most changes made interactively in the plot window -will not be reflected in the graphics properties managed by Octave. For -example, if the plot window is closed with a mouse click, Octave will not -be notified and will not update its internal list of open figure windows. -The qt toolkit is recommended instead. -Fontconfig error: No writable cache directories -***** demo - clf - hold on - plot (infsup (0), infsup (0)); - plot (infsup (1, 2), infsup (0)); - plot (infsup (0), infsup (1, 2)); - plot (infsup (1, 2), infsup (1, 2)); - axis ([-.5, 2.5, -.5, 2.5]); - hold off -***** demo - clf - plot (infsup (-rand (50, 1), +rand (50, 1))); -***** demo - clf - hold on - axis off - range = infsup (0, 9); - x = linspace (inf (range), sup (range), 250); - X = mince (range, 9); - f = @ (x) 0.5 * sin (x) .* x .^ 2; - y = f (x); - Y = f (X); - plot (range, f (range), [42 161 152]/255); - plot (X, Y, [238 232 213]/255, [88 110 117]/255); - plot (x, y, '-', 'color', [220 50 47]/255, 'linewidth', 2); - hold off -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/cosrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cosrev.m + assert (isequaln (strictprecedes (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/pown.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pown.m ***** # from the documentation string -***** assert (cosrev (0, infsup (6, 9)) == "[0x1.F6A7A2955385Ep2, 0x1.F6A7A2955386p2]"); -***** # correct use of signed zeros -***** test - x = cosrev (infsup (1), infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (pown (infsupdec (5, 6), 2), infsupdec (25, 36))); +***** assert (pown (infsupdec (-2, 1), 2) == infsupdec (0, 4)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cosRev; + testcases = testdata.NoSignal.infsupdec.sqr; for testcase = [testcases]' assert (isequaln (... - cosrev (testcase.in{1}), ... + pown (testcase.in{1}, 2), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cosRev; + testcases = testdata.NoSignal.infsupdec.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cosrev (in1), out)); + assert (isequaln (pown (in1, 2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cosRev; + testcases = testdata.NoSignal.infsupdec.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -5204,25 +5362,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosrev (in1), out)); + assert (isequaln (pown (in1, 2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cosRevBin; + testcases = testdata.NoSignal.infsupdec.pown; for testcase = [testcases]' assert (isequaln (... - cosrev (testcase.in{1}, testcase.in{2}), ... + pown (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cosRevBin; + testcases = testdata.NoSignal.infsupdec.pown; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cosrev (in1, in2), out)); + assert (isequaln (pown (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cosRevBin; + testcases = testdata.NoSignal.infsupdec.pown; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5235,51 +5393,38 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosrev (in1, in2), out)); + assert (isequaln (pown (in1, in2), out)); 8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/sumabs.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sumabs.m +[inst/@infsupdec/erf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/erf.m ***** # from the documentation string -***** assert (sumabs ([infsup(1), pow2(-1074), -1]) == infsup (2, 2+eps*2)); -***** assert (sumabs (infsup ([])) == 0); -***** # correct use of signed zeros -***** test - x = sumabs (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/minus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/minus.m +***** assert (erf (infsupdec (1)) == "[0x1.AF767A741088Ap-1, 0x1.AF767A741088Bp-1]"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/atan.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan.m ***** # from the documentation string -***** assert (infsup (2, 3) - infsup (1, 2) == infsup (0, 2)); -***** # correct use of signed zeros -***** test - x = minus (infsup (0), infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (atan (infsupdec (1)), infsupdec ("[0x1.921FB54442D18p-1, 0x1.921FB54442D19p-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sub; + testcases = testdata.NoSignal.infsupdec.atan; for testcase = [testcases]' assert (isequaln (... - minus (testcase.in{1}, testcase.in{2}), ... + atan (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sub; + testcases = testdata.NoSignal.infsupdec.atan; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (minus (in1, in2), out)); + assert (isequaln (atan (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sub; + testcases = testdata.NoSignal.infsup.atan; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -5288,34 +5433,33 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (minus (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/tanrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/tanrev.m + assert (isequaln (atan (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/coshrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/coshrev.m ***** # from the documentation string -***** assert (tanrev (infsup (0), infsup (2, 4)) == infsup ("pi")); +***** assert (isequal (coshrev (infsupdec (-2, 1)), infsupdec (0, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.tanRev; + testcases = testdata.NoSignal.infsupdec.coshRev; for testcase = [testcases]' assert (isequaln (... - tanrev (testcase.in{1}), ... + coshrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.tanRev; + testcases = testdata.NoSignal.infsupdec.coshRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (tanrev (in1), out)); + assert (isequaln (coshrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tanRev; + testcases = testdata.NoSignal.infsupdec.coshRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -5326,25 +5470,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanrev (in1), out)); + assert (isequaln (coshrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.tanRevBin; + testcases = testdata.NoSignal.infsupdec.coshRevBin; for testcase = [testcases]' assert (isequaln (... - tanrev (testcase.in{1}, testcase.in{2}), ... + coshrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.tanRevBin; + testcases = testdata.NoSignal.infsupdec.coshRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (tanrev (in1, in2), out)); + assert (isequaln (coshrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tanRevBin; + testcases = testdata.NoSignal.infsupdec.coshRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5357,158 +5501,37 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanrev (in1, in2), out)); + assert (isequaln (coshrev (in1, in2), out)); 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/ge.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ge.m -***** assert (ge (infsup (2, 3), infsup (1, 3))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/fix.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fix.m -***** # Empty interval -***** assert (fix (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (fix (infsup (0)) == infsup (0)); -***** assert (fix (infsup (1)) == infsup (1)); -***** assert (fix (infsup (1+eps)) == infsup (1)); -***** assert (fix (infsup (-1)) == infsup (-1)); -***** assert (fix (infsup (0.5)) == infsup (0)); -***** assert (fix (infsup (-0.5)) == infsup (0)); -***** # Bounded intervals -***** assert (fix (infsup (-0.5, 0)) == infsup (0)); -***** assert (fix (infsup (0, 0.5)) == infsup (0)); -***** assert (fix (infsup (0.25, 0.5)) == infsup (0)); -***** assert (fix (infsup (-1, 0)) == infsup (-1, 0)); -***** assert (fix (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (fix (infsup (-realmin, realmin)) == infsup (0)); -***** assert (fix (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); -***** # Unbounded intervals -***** assert (fix (infsup (-realmin, inf)) == infsup (0, inf)); -***** assert (fix (infsup (-realmax, inf)) == infsup (-realmax, inf)); -***** assert (fix (infsup (-inf, realmin)) == infsup (-inf, 0)); -***** assert (fix (infsup (-inf, realmax)) == infsup (-inf, realmax)); -***** assert (fix (infsup (-inf, inf)) == infsup (-inf, inf)); -***** # from the documentation string -***** assert (fix (infsup (2.5, 3.5)) == infsup (2, 3)); -***** assert (fix (infsup (-0.5, 5)) == infsup (0, 5)); -***** # correct use of signed zeros -***** test - x = fix (infsup (0.5)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = fix (infsup (-0.5)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = fix (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); -***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsup.trunc; - for testcase = [testcases]' - assert (isequaln (... - fix (testcase.in{1}), ... - testcase.out)); - endfor -***** test - # Vector evaluation - testcases = testdata.NoSignal.infsup.trunc; - in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); - assert (isequaln (fix (in1), out)); -***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.trunc; - in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); - # Reshape data - i = -1; - do - i = i + 1; - testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) - in1 = reshape ([in1; in1(1:i)], testsize); - out = reshape ([out; out(1:i)], testsize); - assert (isequaln (fix (in1), out)); -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/@infsup/sum.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sum.m -***** # from the documentation string -***** assert (sum ([infsup(1), pow2(-1074), -1]) == infsup (pow2 (-1074))); -***** assert (sum (infsup ([])) == 0); -***** # correct use of signed zeros -***** test - x = sum (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** # N-dimensional arrays -***** assert (sum (infsup (ones (1, 1, 10))) == infsup (10)); -***** assert (sum (infsup (ones (1, 1, 10))) == infsup (10)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/isscalar.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/isscalar.m -***** assert (not (isscalar (infsup ([])))); -***** assert (isscalar (infsup (0))); -***** assert (not (isscalar (infsup (zeros (1, 2))))); -***** assert (not (isscalar (infsup (zeros (2, 1))))); -***** assert (not (isscalar (infsup (zeros (5))))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/horzcat.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/horzcat.m -***** assert (horzcat (infsup (1), infsup (2)) == infsup (horzcat (1, 2))); -***** test - # from the documentation string - a = infsup (2, 5); - assert (horzcat (a, a, a) == infsup ([2, 2, 2], [5, 5, 5])); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/rsqrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/rsqrt.m -***** # from the documentation string -***** assert (rsqrt (infsup (-6, 4)) == infsup (.5, inf)); -***** # correct use of signed zeros -***** test - x = rsqrt (infsup (0, inf)); - assert (signbit (inf (x))); +[inst/@infsupdec/reshape.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/reshape.m +***** assert (isequal (reshape (infsupdec (1 : 6), 2, 3), infsupdec (reshape (1 : 6, 2, 3)))); +***** assert (isequal (reshape (infsupdec (1 : 24), 2, [], 4), infsupdec (reshape (1 : 24, 2, 3, 4)))); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/prod.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/prod.m +[inst/@infsupdec/sqrrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sqrrev.m ***** # from the documentation string -***** assert (prod (infsup (1 : 4)) == 24); -***** assert (prod (infsup ([])) == 1); -***** assert (prod (infsup (magic (3))) == [96, 45, 84]); -***** assert (prod (infsup (magic (3)), 2) == [48; 105; 72]); -***** assert (prod (infsup (magic (3)), 3) == magic (3)); -***** assert (prod (prod (reshape (infsup (1:24), 1, 2, 3, 4))) == reshape ([720, 665280, 13366080, 96909120], 1, 1, 1, 4)) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/mig.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mig.m -***** assert (mig (infsup (-1, 2)), 0); -***** assert (mig (infsup (-42, -23)), 23); +***** assert (isequal (sqrrev (infsupdec (-2, 1)), infsupdec (-1, 1, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mig; + testcases = testdata.NoSignal.infsupdec.sqrRev; for testcase = [testcases]' assert (isequaln (... - mig (testcase.in{1}), ... + sqrrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mig; + testcases = testdata.NoSignal.infsupdec.sqrRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (mig (in1), out)); + assert (isequaln (sqrrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mig; + testcases = testdata.NoSignal.infsupdec.sqrRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -5519,25 +5542,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mig (in1), out)); + assert (isequaln (sqrrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mig; + testcases = testdata.NoSignal.infsupdec.sqrRevBin; for testcase = [testcases]' assert (isequaln (... - mig (testcase.in{1}), ... + sqrrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mig; + testcases = testdata.NoSignal.infsupdec.sqrRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (mig (in1), out)); + assert (isequaln (sqrrev (in1, in2), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mig; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.sqrRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -5546,64 +5571,85 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mig (in1), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/factorial.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/factorial.m + assert (isequaln (sqrrev (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/log1p.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log1p.m ***** # from the documentation string -***** assert (factorial (infsup (6)) == 720); -***** assert (factorial (infsup (0)) == 1); -***** assert (factorial (infsup ("[0, 1.99]")) == 1); -***** assert (factorial (infsup ("[0, 2]")) == "[1, 2]"); -***** assert (factorial (infsup ("[1.4, 1.6]")) == "[Empty]"); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/mince.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mince.m -***** assert (isequal (mince (infsup (0, 10), 10), infsup (0 : 9, 1 : 10))); +***** assert (isequal (log1p (infsupdec (eps)), infsupdec ("[0x1.FFFFFFFFFFFFFp-53, 0x1p-52]"))); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/fma.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fma.m +[inst/@infsupdec/subsasgn.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subsasgn.m +***** test + A = infsupdec (magic (3)); + A(4, 4) = 42; + assert (inf (A), [magic(3),[0;0;0];0,0,0,42]); + assert (sup (A), [magic(3),[0;0;0];0,0,0,42]); + assert (decorationpart (A), {"com", "com", "com", "com"; "com", "com", "com", "com"; "com", "com", "com", "com"; "com", "com", "com", "com"}); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/prepad.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/prepad.m +***** assert (isequal (prepad (infsupdec (2:4), 4, 1), infsupdec (1:4))); +***** assert (isequal (prepad (infsupdec (0:2), 2, 1), infsupdec (1:2))); +***** assert (isequal (prepad (infsupdec (0), 10, 0, 3), infsupdec (zeros (1, 1, 10)))); +***** assert (isequal (prepad (infsupdec (zeros (1, 2, 2)), 3), infsupdec (zeros (1, 3, 2)))); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/setdiff.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/setdiff.m +***** assert (isempty (setdiff (infsupdec (), infsupdec (1, 4)))); +***** assert (setdiff (infsupdec (1, 3), infsupdec ()) == infsupdec (1, 3)); +***** assert (isempty (setdiff (infsupdec (1, 3), infsupdec (-inf, inf)))); +***** assert (isempty (setdiff (infsupdec (1, 3), infsupdec (1, 4)))); +***** assert (setdiff (infsupdec (-inf, inf), infsupdec (1, 4)) == infsupdec (-inf, inf)); ***** # from the documentation string -***** assert (fma (infsup (1+eps), infsup (7), infsup ("0.1")) == "[0x1.C666666666668p2, 0x1.C666666666669p2]"); -***** # correct use of signed zeros +***** assert (setdiff (infsupdec (1, 3), infsupdec (2, 4)) == infsupdec (1, 2)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mulrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mulrev.m +***** # IEEE Std 1788-2015 mulRevToPair examples ***** test - x = fma (infsup (0), 0, 0); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + [u, v] = mulrev (infsupdec (0), infsupdec (1, 2)); + assert (isempty (u) & isempty (v)); ***** test - x = fma (infsup (1), 0, 0); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + [u, v] = mulrev (infsupdec (0), infsupdec (0, 1)); + assert (isentire (u) & isempty (v)); ***** test - x = fma (infsup (1), 1, -1); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + [u, v] = mulrev (infsupdec (1), infsupdec (1, 2)); + assert (isequal (u, infsupdec (1, 2)) & isempty (v)); +***** test + [u, v] = mulrev (infsupdec (1, inf), infsupdec (1)); + assert (isequal (u, infsupdec (0, 1, "dac")) & isempty (v)); +***** test + [u, v] = mulrev (infsupdec (-1, 1), infsupdec (1, 2)); + assert (isequal (u, infsupdec (-inf, -1, "trv")) & isequal (v, infsupdec (1, inf, "trv"))); +***** test + [u, v] = mulrev (infsupdec (-inf, inf), infsupdec (1)); + assert (isequal (u, infsupdec (-inf, 0, "trv")) & isequal (v, infsupdec (0, inf, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.fma; + testcases = testdata.NoSignal.infsupdec.mulRevToPair1; for testcase = [testcases]' assert (isequaln (... - fma (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + nthargout (1, 2, @mulrev, testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.fma; + testcases = testdata.NoSignal.infsupdec.mulRevToPair1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (fma (in1, in2, in3), out)); + assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.fma; + testcases = testdata.NoSignal.infsupdec.mulRevToPair1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -5613,45 +5659,28 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (fma (in1, in2, in3), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/diag.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/diag.m -***** assert (diag (infsup (-inf, inf)) == "[Entire]"); -***** assert (diag (infsup ()) == "[Empty]"); -***** assert (numel (diag (infsup ([]))), 0); -***** assert (isequal (diag (infsup (magic (3))), infsup ([8; 5; 2]))); -***** assert (isequal (diag (infsup ([8 5 3])), infsup ([8 0 0; 0 5 0; 0 0 3]))); -***** assert (isequal (diag (infsup (1:2), 2, 3), infsup ([1 0 0; 0 2 0]))); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/pown.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/pown.m -***** # from the documentation string -***** assert (pown (infsup (5, 6), 2) == infsup (25, 36)); -***** assert (pown (infsup (-2, 1), 2) == infsup (0, 4)); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.mulRevToPair2; for testcase = [testcases]' assert (isequaln (... - pown (testcase.in{1}, 2), ... + nthargout (2, @mulrev, testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.mulRevToPair2; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pown (in1, 2), out)); + assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsupdec.mulRevToPair2; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -5660,26 +5689,27 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pown (in1, 2), out)); + assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.pown; + testcases = testdata.NoSignal.infsupdec.mulRev; for testcase = [testcases]' assert (isequaln (... - pown (testcase.in{1}, testcase.in{2}), ... + mulrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.pown; + testcases = testdata.NoSignal.infsupdec.mulRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pown (in1, in2), out)); + assert (isequaln (mulrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pown; + testcases = testdata.NoSignal.infsupdec.mulRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5692,98 +5722,30 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pown (in1, in2), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/overlap.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/overlap.m -***** test - [s, n] = overlap (infsup (), infsup ()); - assert (s, "bothEmpty"); - assert (n, uint16 (32768)); -***** test - [s, n] = overlap (infsup (), infsup (0)); - assert (s, "firstEmpty"); - assert (n, uint16 (16384)); -***** test - [s, n] = overlap (infsup (0), infsup ()); - assert (s, "secondEmpty"); - assert (n, uint16 (8192)); -***** test - [s, n] = overlap (infsup (1, 2), infsup (3, 4)); - assert (s, "before"); - assert (n, uint16 (4096)); -***** test - [s, n] = overlap (infsup (1, 2), infsup (2, 3)); - assert (s, "meets"); - assert (n, uint16 (2048)); -***** test - [s, n] = overlap (infsup (1, 3), infsup (2, 4)); - assert (s, "overlaps"); - assert (n, uint16 (1024)); -***** test - [s, n] = overlap (infsup (1, 2), infsup (1, 3)); - assert (s, "starts"); - assert (n, uint16 (512)); -***** test - [s, n] = overlap (infsup (2, 3), infsup (1, 4)); - assert (s, "containedBy"); - assert (n, uint16 (256)); -***** test - [s, n] = overlap (infsup (2, 3), infsup (1, 3)); - assert (s, "finishes"); - assert (n, uint16 (128)); -***** test - [s, n] = overlap (infsup (1, 2), infsup (1, 2)); - assert (s, "equals"); - assert (n, uint16 (64)); -***** test - [s, n] = overlap (infsup (1, 3), infsup (2, 3)); - assert (s, "finishedBy"); - assert (n, uint16 (32)); -***** test - [s, n] = overlap (infsup (1, 4), infsup (2, 3)); - assert (s, "contains"); - assert (n, uint16 (16)); -***** test - [s, n] = overlap (infsup (1, 3), infsup (1, 2)); - assert (s, "startedBy"); - assert (n, uint16 (8)); -***** test - [s, n] = overlap (infsup (2, 4), infsup (1, 3)); - assert (s, "overlappedBy"); - assert (n, uint16 (4)); -***** test - [s, n] = overlap (infsup (2, 3), infsup (1, 2)); - assert (s, "metBy"); - assert (n, uint16 (2)); -***** test - [s, n] = overlap (infsup (3, 4), infsup (1, 2)); - assert (s, "after"); - assert (n, uint16 (1)); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (mulrev (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.overlap; + testcases = testdata.NoSignal.infsupdec.mulRevTen; for testcase = [testcases]' assert (isequaln (... - overlap (testcase.in{1}, testcase.in{2}), ... + mulrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.overlap; + testcases = testdata.NoSignal.infsupdec.mulRevTen; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - out = {testcases.out}'; - assert (isequaln (overlap (in1, in2), out)); + in3 = vertcat (vertcat (testcases.in){:, 3}); + out = vertcat (testcases.out); + assert (isequaln (mulrev (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.overlap; + testcases = testdata.NoSignal.infsupdec.mulRevTen; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - out = {testcases.out}'; + in3 = vertcat (vertcat (testcases.in){:, 3}); + out = vertcat (testcases.out); # Reshape data i = -1; do @@ -5792,57 +5754,54 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (overlap (in1, in2), out)); -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/@infsup/gauss.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/gauss.m -***** # from the documentation string -***** assert (gauss (infsup ([1, 0; 0, 2]), [2, 0; 0, 4]) == [2, 0; 0, 2]); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/numel.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/numel.m -***** assert (numel (infsup ([])), 0); -***** assert (numel (infsup (0)), 1); -***** assert (numel (infsup (zeros (3, 1))), 3); -***** assert (numel (infsup (zeros (1, 4))), 4); -***** assert (numel (infsup (zeros (3, 4))), 12); -***** assert (numel (infsup (ones (2, 3)), 3:5), 3); -***** assert (numel (infsup (ones (2, 3)), ":", 2), 2); -***** assert (numel (infsup (ones (2, 3)), 2, ":"), 3); -***** # numel is called implicitly during this subsref expression (see bug #53375) -***** assert (infsup ()(:).inf, inf); -***** error numel (1, infsup(1)); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/@infsup/atanh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/atanh.m -***** # from the documentation string -***** assert (atanh (infsup (.5)) == "[0x1.193EA7AAD030Ap-1, 0x1.193EA7AAD030Bp-1]"); -***** # correct use of signed zeros -***** test - x = atanh (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (mulrev (in1, in2, in3), out)); +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/@infsupdec/round.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/round.m +***** # Empty interval +***** assert (isequal (round (infsupdec ()), infsupdec ())); +***** # Singleton intervals +***** assert (isequal (round (infsupdec (0)), infsupdec (0))); +***** assert (isequal (round (infsupdec (0.5)), infsupdec (1, "dac"))); +***** assert (isequal (round (infsupdec (0.25)), infsupdec (0))); +***** assert (isequal (round (infsupdec (0.75)), infsupdec (1))); +***** assert (isequal (round (infsupdec (-0.5)), infsupdec (-1, "dac"))); +***** # Bounded intervals +***** assert (isequal (round (infsupdec (-0.5, 0)), infsupdec (-1, 0, "def"))); +***** assert (isequal (round (infsupdec (0, 0.5)), infsupdec (0, 1, "def"))); +***** assert (isequal (round (infsupdec (0.25, 0.5)), infsupdec (0, 1, "def"))); +***** assert (isequal (round (infsupdec (-1, 0)), infsupdec (-1, 0, "def"))); +***** assert (isequal (round (infsupdec (-1, 1)), infsupdec (-1, 1, "def"))); +***** assert (isequal (round (infsupdec (-realmin, realmin)), infsupdec (0))); +***** assert (isequal (round (infsupdec (-realmax, realmax)), infsupdec (-realmax, realmax, "def"))); +***** # Unbounded intervals +***** assert (isequal (round (infsupdec (-realmin, inf)), infsupdec (0, inf, "def"))); +***** assert (isequal (round (infsupdec (-realmax, inf)), infsupdec (-realmax, inf, "def"))); +***** assert (isequal (round (infsupdec (-inf, realmin)), infsupdec (-inf, 0, "def"))); +***** assert (isequal (round (infsupdec (-inf, realmax)), infsupdec (-inf, realmax, "def"))); +***** assert (isequal (round (infsupdec (-inf, inf)), infsupdec (-inf, inf, "def"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.atanh; + testcases = testdata.NoSignal.infsupdec.roundTiesToAway; for testcase = [testcases]' assert (isequaln (... - atanh (testcase.in{1}), ... + round (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.atanh; + testcases = testdata.NoSignal.infsupdec.roundTiesToAway; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (atanh (in1), out)); + assert (isequaln (round (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.atanh; + testcases = testdata.NoSignal.infsup.roundTiesToAway; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -5853,33 +5812,35 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atanh (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/coth.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/coth.m + assert (isequaln (round (in1), out)); +21 tests, 21 passed, 0 known failure, 0 skipped +[inst/@infsupdec/plus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/plus.m ***** # from the documentation string -***** assert (coth (infsup (1)) == "[0x1.50231499B6B1D, 0x1.50231499B6B1E]"); +***** assert (isequal (infsupdec (2, 3) + infsupdec (1, 2), infsupdec (3, 5))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.coth; + testcases = testdata.NoSignal.infsupdec.add; for testcase = [testcases]' assert (isequaln (... - coth (testcase.in{1}), ... + plus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.coth; + testcases = testdata.NoSignal.infsupdec.add; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (coth (in1), out)); + assert (isequaln (plus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.coth; + testcases = testdata.NoSignal.infsupdec.add; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -5888,34 +5849,39 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (coth (in1), out)); + assert (isequaln (plus (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/union.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/union.m +[inst/@infsupdec/linspace.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/linspace.m +***** assert (isequal (linspace (infsupdec (0), infsupdec (10), 9), infsupdec (linspace (0, 10, 9)))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cancelminus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cancelminus.m ***** # from the documentation string -***** assert (union (infsup (1, 3), infsup (2, 4)) == infsup (1, 4)); +***** assert (isequal (cancelminus (infsupdec (2, 3), infsupdec (1, 1.5)), infsupdec (1, 1.5, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.convexHull; + testcases = testdata.NoSignal.infsupdec.cancelMinus; for testcase = [testcases]' assert (isequaln (... - union (testcase.in{1}, testcase.in{2}), ... + cancelminus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.convexHull; + testcases = testdata.NoSignal.infsupdec.cancelMinus; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (union (in1, in2), out)); + assert (isequaln (cancelminus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.convexHull; + testcases = testdata.NoSignal.infsupdec.cancelMinus; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -5928,210 +5894,34 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (union (in1, in2), out)); + assert (isequaln (cancelminus (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/iscolumn.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/iscolumn.m -***** assert (not (iscolumn (infsup ([])))); -***** assert (iscolumn (infsup (0))); -***** assert (not (iscolumn (infsup (zeros (1, 2))))); -***** assert (iscolumn (infsup (zeros (2, 1)))); -***** assert (not (iscolumn (infsup (zeros (5))))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/ne.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ne.m -***** assert (ne (infsup (1, 2), infsup (1, 3))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/lu.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/lu.m -***** test - [l, u] = lu (infsup (magic (3))); - assert (l == infsup ({1, 0, 0; .375, 1, 0; .5, "68/37", 1}));, ... - assert (subset (u, infsup ({8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F2298375Bp3"}, ... - {8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F22983759p3"}))); -***** test - A = magic (3); - A([1, 5, 9]) = 0; - [l, u, p] = lu (infsup (A)); - assert (p, [0, 0, 1; 1, 0, 0; 0, 1, 0]); - assert (l == infsup ({1, 0, 0; "4/3", 1, 0; 0, "1/9", 1})); - assert (subset (u, infsup ({3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAACp3"; 0, 0, "0x1.C25ED097B425Ep2"}, ... - {3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAAAp3"; 0, 0, "0x1.C25ED097B426p2"}))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/display.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/display.m -***** # Test for the display function are also largely done with the help of the -***** # doctest package. -***** xtest - assert (evalc ("display (infsup ())"), "[Empty]\n\n"); - assert (evalc ("display (infsupdec ())"), "[Empty]_trv\n\n"); -***** test - assert (evalc ("a = infsup ()"), "a = [Empty]\n"); - assert (evalc ("b = infsupdec ()"), "b = [Empty]_trv\n"); -***** xtest - assert (evalc ("a = infsup (); display (a)"), "a = [Empty]\n"); - assert (evalc ("b = infsupdec (); display (b)"), "b = [Empty]_trv\n"); -***** xtest - if (ispc ()) - assert (evalc ("display (infsup (magic (3)))"), ... - ["3x3 interval matrix\n", ... - "\n", ... - " [8] [1] [6]\n", ... - " [3] [5] [7]\n", ... - " [4] [9] [2]\n", ... - "\n"]); - else - assert (evalc ("display (infsup (magic (3)))"), ... - ["3×3 interval matrix\n", ... - "\n", ... - " [8] [1] [6]\n", ... - " [3] [5] [7]\n", ... - " [4] [9] [2]\n", ... - "\n"]); - endif -***** test - if (ispc ()) - assert (evalc ("infsup (magic (3))"), ... - ["ans = 3x3 interval matrix\n", ... - "\n", ... - " [8] [1] [6]\n", ... - " [3] [5] [7]\n", ... - " [4] [9] [2]\n", ... - "\n"]); - else - assert (evalc ("infsup (magic (3))"), ... - ["ans = 3×3 interval matrix\n", ... - "\n", ... - " [8] [1] [6]\n", ... - " [3] [5] [7]\n", ... - " [4] [9] [2]\n", ... - "\n"]); - endif -***** test - if (ispc ()) - assert (evalc ("infsup ('pi')"), "ans = [3.1415, 3.1416]\n"); - else - assert (evalc ("infsup ('pi')"), "ans ⊂ [3.1415, 3.1416]\n"); - endif -***** test - if (ispc ()) - assert (evalc ("infsup (1:3)"), ... - ["ans = 1x3 interval vector\n", ... - "\n", ... - " [1] [2] [3]\n", ... - "\n"]); - else - assert (evalc ("infsup (1:3)"), ... - ["ans = 1×3 interval vector\n", ... - "\n", ... - " [1] [2] [3]\n", ... - "\n"]); - endif -***** test - if (ispc ()) - assert (evalc ("infsup (ones(2, 2, 2))"), ... - ["ans = 2x2x2 interval array\n", ... - "\n", ... - "ans(:,:,1) =\n", ... - "\n", ... - " [1] [1]\n", ... - " [1] [1]\n", ... - "\n", ... - "ans(:,:,2) =\n", ... - "\n", ... - " [1] [1]\n", ... - " [1] [1]\n", ... - "\n"]); - else - assert (evalc ("infsup (ones(2, 2, 2))"), ... - ["ans = 2×2×2 interval array\n", ... - "\n", ... - "ans(:,:,1) =\n", ... - "\n", ... - " [1] [1]\n", ... - " [1] [1]\n", ... - "\n", ... - "ans(:,:,2) =\n", ... - "\n", ... - " [1] [1]\n", ... - " [1] [1]\n", ... - "\n"]); - endif -warning: test: file /build/octave-interval-3.2.1/inst/@infsup/display.m leaked global variables: current_print_indent_level -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/vertcat.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/vertcat.m -***** assert (vertcat (infsup (1), infsup (2)) == infsup (vertcat (1, 2))); -***** test - # from the documentation string - a = infsup (2, 5); - assert (vertcat (a, a, a) == infsup ([2; 2; 2], [5; 5; 5])); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/bisect.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/bisect.m -***** test - # from the documentation string - [a, b] = bisect (infsup (2, 32)); - assert (a == infsup (2, 8)); - assert (b == infsup (8, 32)); -***** test - [a, b] = bisect (infsup (-inf, inf)); - assert (a == infsup (-inf, 0)); - assert (b == infsup (0, inf)); -***** test - [a, b] = bisect (infsup (0)); - assert (a == 0); - assert (b == 0); -***** test - [a, b] = bisect (infsup ()); - assert (isempty (a)); - assert (isempty (b)); -***** test - [a, b] = bisect (infsup (0, inf)); - assert (a == infsup (0, pow2 (-25))); - assert (b == infsup (pow2 (-25), inf)); -***** test - [a, b] = bisect (infsup (-inf, 0)); - assert (a == infsup (-inf, -pow2 (-25))); - assert (b == infsup (-pow2 (-25), 0)); -***** # correct use of signed zeros -***** test - [a, b] = bisect (infsup (0)); - assert (signbit (inf (a))); - assert (signbit (inf (b))); - assert (not (signbit (sup (a)))); - assert (not (signbit (sup (b)))); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/log10.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/log10.m -***** # from the documentation string -***** assert (log10 (infsup (2)) == "[0x1.34413509F79FEp-2, 0x1.34413509F79FFp-2]"); -***** # correct use of signed zeros -***** test - x = log10 (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +[inst/@infsupdec/le.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/le.m +***** assert (le (infsupdec (1, 3), infsupdec (3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.log10; + testcases = testdata.NoSignal.infsupdec.less; for testcase = [testcases]' assert (isequaln (... - log10 (testcase.in{1}), ... + le (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.log10; + testcases = testdata.NoSignal.infsupdec.less; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (log10 (in1), out)); + assert (isequaln (le (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log10; + testcases = testdata.NoSignal.infsupdec.less; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -6140,145 +5930,57 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log10 (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/qr.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/qr.m -***** test - A = infsup ([1 2 3; 4 5 6]); - [Q, R] = qr (A); - assert (all (all (subset (A, Q * R)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-14); -***** test - A = infsup ([1 2; 3 4; 5 6]); - [Q, R] = qr (A); - assert (all (all (subset (A, Q * R)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q (:, [1 2])))) < 1e-14); -***** test - A = infsup ([1 2 3; 4 9 6; 9 8 7]); - [Q, R] = qr (A); - assert (all (all (subset (A, Q * R)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-13); -***** test - for n = 3 : 2 : 10 - A = infsup (magic (n)); - [Q, R] = qr (A); - assert (all (all (subset (A, Q * R)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-10); - endfor -***** test - A = infsup (magic (3)) + "[2, 2.2]"; - [Q, R] = qr (A); - assert (all (all (subset (A, Q * R)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1.5); -***** function result = is_permutation_matrix (P) - result = isequal (P, eye (length (P))) || ... - isequal (typeinfo (P), "permutation matrix"); -***** endfunction -***** test - A = infsup ([1 2 3; 4 5 6]); - [Q, R, P] = qr (A); - assert (all (all (subset (A, Q * R * P)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-14); - assert (is_permutation_matrix (P)); -***** test - A = infsup ([1 2; 3 4; 5 6]); - [Q, R, P] = qr (A); - assert (all (all (subset (A, Q * R * P)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q (:, [1 2])))) < 1e-14); - assert (is_permutation_matrix (P)); -***** test - A = infsup ([1 2 3; 4 9 6; 9 8 7]); - [Q, R, P] = qr (A); - assert (all (all (subset (A, Q * R * P)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-13); - assert (is_permutation_matrix (P)); -***** test - for n = 3 : 2 : 10 - A = infsup (magic (n)); - [Q, R, P] = qr (A); - assert (all (all (subset (A, Q * R * P)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1e-10); - assert (is_permutation_matrix (P)); - endfor -***** test - A = infsup (magic (3)) + "[2, 2.2]"; - [Q, R, P] = qr (A); - assert (all (all (subset (A, Q * R * P)))); - assert (all (all (subset (eye (length (Q)), Q' * Q)))); - assert (max (max (wid (Q))) < 1.5); - assert (is_permutation_matrix (P)); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/@infsup/fminsearch.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fminsearch.m -***** test - sqr = @(x) x .^ 2; - [x, y] = fminsearch (sqr, infsup (-inf, inf)); - assert (y == 0); -***** demo - clf - hold on - draw = @(x) plot (x(1), x(2), [238 232 213]/255, [88 110 117]/255); - f = @(x) (x(1) - 2) .^ 2 - x(2) .^ 2; - fminsearch (f, infsup ("[1, 3] [0, 1]"), ... - optimset ('OutputFcn', draw)); - hold off -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/size.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/size.m -***** assert (size (infsup (zeros (3, 4))), [3 4]); -***** assert (size (infsup (zeros (2, 3, 4))), [2, 3, 4]); -***** test - [x y z] = size (infsup (magic (3))); - assert (x, 3); - assert (y, 3); - assert (z, 1); -***** assert (ismatrix (infsup ([]))); -***** assert (ismatrix (infsup (0))); -***** assert (ismatrix (infsup (zeros (3, 1)))); -***** assert (ismatrix (infsup (zeros (1, 4)))); -***** assert (ismatrix (infsup (zeros (3, 4)))); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/transpose.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/transpose.m -***** assert (transpose (infsup (magic (3))) == infsup (magic (3).')); + assert (isequaln (le (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sech.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sech.m ***** # from the documentation string -***** assert (transpose (infsup (zeros (1, 3), ones (1, 3))) == infsup (zeros (3, 1), ones (3, 1))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/cos.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cos.m +***** assert (isequal (sech (infsupdec (1)), infsupdec ("[0x1.4BCDC50ED6BE7p-1, 0x1.4BCDC50ED6BE8p-1]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/psi.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/psi.m +***** assert (isempty (psi (infsupdec (0)))); +***** assert (isempty (psi (infsupdec (-1)))); +***** assert (isempty (psi (infsupdec (-2)))); +***** assert (isempty (psi (infsupdec (-3)))); +***** assert (isequal (psi (infsupdec (pow2 (-1074), inf)), infsupdec ("[Entire]_dac"))); +***** assert (isequal (psi (infsupdec (0, inf)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-inf, -43.23)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-1, 0)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-2, -1)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-eps, eps)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-1-eps, -1+eps)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (psi (infsupdec (-4.1, -3.9)), infsupdec ("[Entire]_trv"))); ***** # from the documentation string -***** assert (cos (infsup (1)) == "[0x1.14A280FB5068Bp-1, 0x1.14A280FB5068Cp-1]"); +***** assert (isequal (psi (infsupdec (1)), infsupdec ("[-0x1.2788CFC6FB619p-1, -0x1.2788CFC6FB618p-1]_com"))); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/@infsupdec/isnai.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/isnai.m +***** assert (isnai (infsupdec ("[nai]"))); +***** assert (not (isnai (infsupdec (2, 3)))); +***** warning assert (isnai (infsupdec ("happy 42 hacking")), logical ([1 0 1])); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cos; + testcases = testdata.NoSignal.infsupdec.isNaI; for testcase = [testcases]' assert (isequaln (... - cos (testcase.in{1}), ... + isnai (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cos; + testcases = testdata.NoSignal.infsupdec.isNaI; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cos (in1), out)); + assert (isequaln (isnai (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cos; + testcases = testdata.NoSignal.infsupdec.isNaI; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -6289,61 +5991,75 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cos (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/sinrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sinrev.m + assert (isequaln (isnai (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsupdec/fma.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/fma.m ***** # from the documentation string -***** assert (sinrev (infsup (-1), infsup (0, 6)) == "[0x1.2D97C7F3321D2p2, 0x1.2D97C7F3321D3p2]"); +***** assert (isequal (fma (infsupdec (1+eps), infsupdec (7), infsupdec ("0.1")), infsupdec ("[0x1.C666666666668p2, 0x1.C666666666669p2]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sinRev; + testcases = testdata.NoSignal.infsupdec.fma; for testcase = [testcases]' assert (isequaln (... - sinrev (testcase.in{1}), ... + fma (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sinRev; + testcases = testdata.NoSignal.infsupdec.fma; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (sinrev (in1), out)); + assert (isequaln (fma (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sinRev; + testcases = testdata.NoSignal.infsupdec.fma; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) + until (numel (testsize) > 2 | i == numel (in1)) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinrev (in1), out)); + assert (isequaln (fma (in1, in2, in3), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/union.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/union.m +***** # from the documentation string +***** assert (isequal (union (infsupdec (1, 3), infsupdec (2, 4)), infsupdec (1, 4, "trv"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sinRevBin; + testcases = testdata.NoSignal.infsupdec.convexHull; for testcase = [testcases]' assert (isequaln (... - sinrev (testcase.in{1}, testcase.in{2}), ... + union (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sinRevBin; + testcases = testdata.NoSignal.infsupdec.convexHull; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sinrev (in1, in2), out)); + assert (isequaln (union (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sinRevBin; + testcases = testdata.NoSignal.infsupdec.convexHull; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -6356,63 +6072,35 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/cat.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cat.m -***** assert (size (cat (1, infsup ([]), infsup ([]))), [0 0]); -***** assert (cat (1, infsup (1), infsup (2)) == infsup (cat (1, 1, 2))); -***** assert (cat (2, infsup (1), infsup (2)) == infsup (cat (2, 1, 2))); -***** assert (cat (5, infsup (1), infsup (2)) == infsup (cat (5, 1, 2))); -***** assert (cat (1, infsup (zeros (2, 2, 2)), infsup (ones (2, 2, 2))) == infsup (cat (1, zeros (2, 2, 2), ones (2, 2, 2)))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/acos.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/acos.m -***** # Empty interval -***** assert (acos (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (acos (infsup (-1)) == infsup ("pi")); -***** assert (subset (acos (infsup (-.5)), union ((infsup ("pi") / 2), infsup ("pi")))); -***** assert (acos (infsup (0)) == infsup ("pi") / 2); -***** assert (subset (acos (infsup (.5)), union ((infsup ("pi") / 2), infsup (0)))); -***** assert (acos (infsup (1)) == infsup (0)); -***** # Bounded intervals -***** assert (acos (infsup (-1, 0)) == union ((infsup ("pi") / 2), infsup ("pi"))); -***** assert (acos (infsup (0, 1)) == union ((infsup ("pi") / 2), infsup (0))); -***** assert (acos (infsup (-1, 1)) == infsup (0, "pi")); -***** assert (acos (infsup (-2, 2)) == infsup (0, "pi")); -***** # Unbounded intervals -***** assert (acos (infsup (0, inf)) == union ((infsup ("pi") / 2), infsup (0))); -***** assert (acos (infsup (-inf, 0)) == union ((infsup ("pi") / 2), infsup ("pi"))); -***** assert (acos (infsup (-inf, inf)) == infsup (0, "pi")); + assert (isequaln (union (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/pow.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow.m ***** # from the documentation string -***** assert (acos (infsup (.5)) == "[0x1.0C152382D7365, 0x1.0C152382D7366]"); -***** # correct use of signed zeros -***** test - x = acos (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (pow (infsupdec (5, 6), infsupdec (2, 3)), infsupdec (25, 216))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.acos; + testcases = testdata.NoSignal.infsupdec.pow; for testcase = [testcases]' assert (isequaln (... - acos (testcase.in{1}), ... + pow (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.acos; + testcases = testdata.NoSignal.infsupdec.pow; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (acos (in1), out)); + assert (isequaln (pow (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.acos; + testcases = testdata.NoSignal.infsupdec.pow; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -6421,482 +6109,45 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (acos (in1), out)); -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/@infsup/infsup.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/infsup.m -***** # Empty intervals -***** test - x = infsup (); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[ ]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[\t]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[empty]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[EMPTY]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("[ empty ]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** test - x = infsup ("\t[\t Empty\t]\t"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** # Entire interval -***** test - x = infsup ("[,]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[entire]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[ENTIRE]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[ entire ]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup (" [Entire \t] "); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[-inf,+inf]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[-infinity, +infinity]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[-INF, +INFinitY]"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** # double boundaries -***** test - x = infsup (0); - assert (inf (x), 0); - assert (sup (x), 0); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = infsup (2, 3); - assert (inf (x), 2); - assert (sup (x), 3); -***** test - x = infsup (-inf, 0.1); - assert (inf (x), -inf); - assert (sup (x), 0.1); -***** test - x = infsup (-inf, +inf); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** # NaN values -***** warning id=interval:UndefinedOperation - x = infsup (nan); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (nan, 2); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (3, nan); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** # illegal numeric boundaries -***** warning id=interval:UndefinedOperation - x = infsup (+inf, -inf); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (+inf, +inf); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (-inf, -inf); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (3, 2); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup (3, -inf); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** # double matrix -***** test - x = infsup (magic (4)); - assert (inf (x), magic (4)); - assert (sup (x), magic (4)); -***** test - x = infsup (magic (3), magic (3) + 1); - assert (inf (x), magic (3)); - assert (sup (x), magic (3) + 1); -***** warning id=interval:UndefinedOperation - x = infsup (nan (3)); - assert (inf (x), +inf (3)); - assert (sup (x), -inf (3)); -***** test - x = infsup (-inf (3), +inf (3)); - assert (inf (x), -inf (3)); - assert (sup (x), +inf (3)); -***** # decimal boundaries -***** test - x = infsup ("0.1"); - assert (inf (x), 0.1 - eps / 16); - assert (sup (x), 0.1); -***** test - x = infsup ("0.1e1"); - assert (inf (x), 1); - assert (sup (x), 1); -***** # hexadecimal boundaries -***** test - x = infsup ("0xff"); - assert (inf (x), 255); - assert (sup (x), 255); -***** test - x = infsup ("0xff.1"); - assert (inf (x), 255.0625); - assert (sup (x), 255.0625); -***** test - x = infsup ("0xff.1p-1"); - assert (inf (x), 127.53125); - assert (sup (x), 127.53125); -***** # named constants -***** test - x = infsup ("pi"); - assert (inf (x), pi); - assert (sup (x), pi + 2 * eps); -***** test - x = infsup ("e"); - assert (inf (x), e); - assert (sup (x), e + eps); -***** # uncertain form -***** test - x = infsup ("32?"); - assert (inf (x), 31.5); - assert (sup (x), 32.5); -***** test - x = infsup ("32?8"); - assert (inf (x), 24); - assert (sup (x), 40); -***** test - x = infsup ("32?u"); - assert (inf (x), 32); - assert (sup (x), 32.5); -***** test - x = infsup ("32?d"); - assert (inf (x), 31.5); - assert (sup (x), 32); -***** test - x = infsup ("32??"); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("32??d"); - assert (inf (x), -inf); - assert (sup (x), 32); -***** test - x = infsup ("32??u"); - assert (inf (x), 32); - assert (sup (x), +inf); -***** test - x = infsup ("32?e5"); - assert (inf (x), 3150000); - assert (sup (x), 3250000); -***** # rational form -***** test - x = infsup ("6/9"); - assert (inf (x), 2 / 3); - assert (sup (x), 2 / 3 + eps / 2); -***** test - x = infsup ("6e1/9"); - assert (inf (x), 20 / 3 - eps * 2); - assert (sup (x), 20 / 3); -***** test - x = infsup ("6/9e1"); - assert (inf (x), 2 / 30); - assert (sup (x), 2 / 30 + eps / 16); -***** test - x = infsup ("-6/9"); - assert (inf (x), -(2 / 3 + eps / 2)); - assert (sup (x), -2 / 3); -***** test - x = infsup ("6/-9"); - assert (inf (x), -(2 / 3 + eps / 2)); - assert (sup (x), -2 / 3); -***** test - x = infsup ("-6/-9"); - assert (inf (x), 2 / 3); - assert (sup (x), 2 / 3 + eps / 2); -***** test - x = infsup ("6.6/9.9"); - assert (inf (x), 2 / 3); - assert (sup (x), 2 / 3 + eps / 2); -***** # inf-sup interval literal -***** test - x = infsup ("[2, 3]"); - assert (inf (x), 2); - assert (sup (x), 3); -***** test - x = infsup ("[0.1]"); - assert (inf (x), 0.1 - eps / 16); - assert (sup (x), 0.1); -***** test - x = infsup ("[0xff, 0xff.1]"); - assert (inf (x), 255); - assert (sup (x), 255.0625); -***** test - x = infsup ("[e, pi]"); - assert (inf (x), e); - assert (sup (x), pi + 2 * eps); -***** test - x = infsup ("[6/9, 6e1/9]"); - assert (inf (x), 2 / 3); - assert (sup (x), 20 / 3); -***** # corner cases -***** test - x = infsup (","); - assert (inf (x), -inf); - assert (sup (x), +inf); -***** test - x = infsup ("[, 3]"); - assert (inf (x), -inf); - assert (sup (x), 3); -***** test - x = infsup ("", "3"); - assert (inf (x), -inf); - assert (sup (x), 3); -***** test - x = infsup ("[2, ]"); - assert (inf (x), 2); - assert (sup (x), inf); -***** test - x = infsup ("2", ""); - assert (inf (x), 2); - assert (sup (x), inf); -***** # decimal vector -***** test - x = infsup (["0.1"; "0.2"; "0.3"]); - assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); - assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); -***** test - x = infsup ("0.1; 0.2; 0.3"); - assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); - assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); -***** test - x = infsup ("0.1\n0.2\n0.3"); - assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); - assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); -***** # cell array with mixed boundaries -***** test - x = infsup ({"0.1", 42; "e", "3.2/8"}, {"0xffp2", "42e1"; "pi", 2}); - assert (inf (x), [0.1 - eps / 16, 42; e, 0.4 - eps / 4]); - assert (sup (x), [1020, 420; pi + 2 * eps, 2]); -***** test - x = infsup ({"[2, 3]", "3/4", "[Entire]", "42?3", 1, "0xf"}); - assert (inf (x), [2, 0.75, -inf, 39, 1, 15]); - assert (sup (x), [3, 0.75, +inf, 45, 1, 15]); -***** # broadcasting -***** test - x = infsup (magic (3), 10); - assert (inf (x), magic (3)); - assert (sup (x), 10 .* ones (3)); -***** test - x = infsup (zeros (1, 20), ones (20, 1)); - assert (inf (x), zeros (20, 20)); - assert (sup (x), ones (20, 20)); -***** # nai -***** warning id=interval:UndefinedOperation - x = infsup ("[nai]"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup ("Ausgeschnitzel"); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** # interval literals vs. two arguments -***** warning id=interval:UndefinedOperation - x = infsup ("[empty]", 42); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** warning id=interval:UndefinedOperation - x = infsup ("0?", 42); - assert (inf (x), +inf); - assert (sup (x), -inf); -***** # extraction of single errors -***** warning id=interval:UndefinedOperation - x = infsup ("0 1 2 [xxx] 3 4"); - assert (inf (x), [0 1 2 +inf 3 4]); - assert (sup (x), [0 1 2 -inf 3 4]); -***** warning id=interval:UndefinedOperation - x = infsup ({1 2; 3 "[xxx]"}); - assert (inf (x), [1 2; 3 +inf]); - assert (sup (x), [1 2; 3 -inf]); -***** # complex values -***** warning id=interval:InvalidOperand - x = infsup ([1 2 3+i 4+0i]); - assert (inf (x), [1 2 +inf 4]); - assert (sup (x), [1 2 -inf 4]); -***** # inaccurate conversion -***** warning id=interval:PossiblyUndefinedOperation - x = infsup ("1.000000000000000000002", "1.000000000000000000001"); - assert (inf (x), 1); - assert (sup (x), 1 + eps); -***** test - n = uint64(2 ^ 53); - x = infsup (n, n + 1); - assert (inf (x), double (n)); - assert (sup (x), double (n + 2)); -***** test - n = uint64(2 ^ 53); - x = infsup ({n}, n + 1); - assert (inf (x), double (n)); - assert (sup (x), double (n + 2)); -***** test - n = uint64(2 ^ 53); - x = infsup (n + 1, n + 1); - assert (inf (x), double (n)); - assert (sup (x), double (n + 2)); -***** test - n = uint64(2 ^ 54); - x = infsup (n, n + 1); - assert (inf (x), double (n)); - assert (sup (x), double (n + 4)); -***** warning id=interval:PossiblyUndefinedOperation - n = uint64(2 ^ 54); - x = infsup (n + 1, n + 2); - assert (inf (x), double (n)); - assert (sup (x), double (n + 4)); -***** warning id=interval:PossiblyUndefinedOperation - x = infsup ("pi", "3.141592653589793"); - assert (inf (x), pi); - assert (sup (x), pi); -***** warning id=interval:PossiblyUndefinedOperation - x = infsup ("pi", "3.1415926535897932"); - assert (inf (x), pi); - assert (sup (x), pi + 2 * eps); -***** # isexact flag -***** test - [~, isexact] = infsup (); - assert (isexact); -***** test - [~, isexact] = infsup (0); - assert (isexact); -***** test - [~, isexact] = infsup ("1 2 3"); - assert (isexact, true); -***** test - [~, isexact] = infsup ("1 2 3.1"); - assert (isexact, false); -***** warning - [~, isexact] = infsup ("[nai]"); - assert (not (isexact)); -***** # overflow flag -***** test - [~, ~, overflow] = infsup (); - assert (not (overflow)); -***** test - [~, ~, overflow] = infsup (0); - assert (not (overflow)); -***** test - [~, ~, overflow] = infsup ([1 2 3]); - assert (overflow, false (1, 3)); -***** warning - [~, ~, overflow] = infsup ("[nai]"); - assert (not (overflow)); -***** test - [~, ~, overflow] = infsup ("1e3000"); - assert (overflow); -***** test - [~, ~, overflow] = infsup ("[1, inf]"); - assert (not (overflow)); -***** # isnai flag -***** test - [~, ~, ~, isnai] = infsup (); - assert (not (isnai)); -***** test - [~, ~, ~, isnai] = infsup (0); - assert (not (isnai)); -***** test - [~, ~, ~, isnai] = infsup ([1 2 3]); - assert (isnai, false (1, 3)); -***** warning - [~, ~, ~, isnai] = infsup ("[nai]"); - assert (isnai); -***** warning - [~, ~, ~, isnai] = infsup ("xxx"); - assert (isnai); -***** warning - [~, ~, ~, isnai] = infsup ("1 2 xxx 4"); - assert (isnai, [false, false, true, false]); -***** warning - [~, ~, ~, isnai] = infsup ("[-inf, inf] [inf, inf]"); - assert (isnai, [false, true]); -***** # N-dimensional arrays -***** test - x = infsup (zeros (2, 2, 2)); - assert (inf (x), zeros (2, 2, 2)); - assert (sup (x), zeros (2, 2, 2)); -***** test - x = infsup (zeros (2, 2, 2), ones (2, 2, 2)); - assert (inf (x), zeros (2, 2, 2)); - assert (sup (x), ones (2, 2, 2)); -***** test - x = infsup (zeros (2, 1, 2, 1, 2, 1), ones (1, 3, 1, 3, 1, 3)); - assert (inf (x), zeros (2, 3, 2, 3, 2, 3)); - assert (sup (x), ones (2, 3, 2, 3, 2, 3)); + assert (isequaln (pow (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/tril.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tril.m +***** assert (tril (infsupdec (magic (10))) == tril (magic (10))); +***** assert (tril (infsupdec (magic (10)), 1) == tril (magic (10), 1)); +***** assert (tril (infsupdec (magic (10)), -1) == tril (magic (10), -1)); +***** assert (tril (infsupdec (magic (10)), 0, "pack") == tril (magic (10), 0, "pack")); ***** test - c1 = reshape ({1, 2, 3, 4, 5, 6, 7, 8}, 2, 2, 2); - c2 = reshape ({2, 3, 4, 5, 6, 7, 8, 9}, 2, 2, 2); - x = infsup (c1, c2); - assert (inf (x), reshape (1:8, 2, 2, 2)); - assert (sup (x), reshape (2:9, 2, 2, 2)); + A = infsupdec (zeros (3), "trv"); + assert (decorationpart (tril (A)), {"trv", "com", "com"; "trv", "trv", "com"; "trv", "trv", "trv"}); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/exp.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/exp.m +***** # from the documentation string +***** assert (isequal (exp (infsupdec (1)), infsupdec ("e"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.("b-numsToInterval"); + testcases = testdata.NoSignal.infsupdec.exp; for testcase = [testcases]' assert (isequaln (... - infsup (testcase.in{1}, testcase.in{2}), ... + exp (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.("b-numsToInterval"); + testcases = testdata.NoSignal.infsupdec.exp; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (infsup (in1, in2), out)); + assert (isequaln (exp (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.("b-numsToInterval"); + testcases = testdata.NoSignal.infsup.exp; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -6905,26 +6156,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (infsup (in1, in2), out)); + assert (isequaln (exp (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/atan2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2.m +***** # from the documentation string +***** assert (isequal (atan2 (infsupdec (1), infsupdec (-1)), infsupdec ("[0x1.2D97C7F3321D2p1, 0x1.2D97C7F3321D3p1]"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.("b-textToInterval"); + testcases = testdata.NoSignal.infsupdec.atan2; for testcase = [testcases]' assert (isequaln (... - infsup (testcase.in{1}), ... + atan2 (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.("b-textToInterval"); - in1 = vertcat (testcases.in); + testcases = testdata.NoSignal.infsupdec.atan2; + in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (infsup (in1), out)); + assert (isequaln (atan2 (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.("b-numsToInterval"); + testcases = testdata.NoSignal.infsupdec.atan2; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -6937,65 +6196,34 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (infsup (in1, in2), out)); -***** warning - testcases = testdata.PossiblyUndefinedOperation.infsup.("b-textToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsup (testcase.in{1}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:PossiblyUndefinedOperation"); - endfor -***** warning - testcases = testdata.UndefinedOperation.infsup.("b-textToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsup (testcase.in{1}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); - endfor -***** warning - testcases = testdata.UndefinedOperation.infsup.("b-numsToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsup (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); - endfor -117 tests, 117 passed, 0 known failure, 0 skipped -[inst/@infsup/sinh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sinh.m -***** # from the documentation string -***** assert (sinh (infsup (1)) == "[0x1.2CD9FC44EB982, 0x1.2CD9FC44EB983]"); -***** # correct use of signed zeros -***** test - x = sinh (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (atan2 (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/subset.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subset.m +***** assert (subset (infsupdec (1, 2), infsupdec (1, 3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sinh; + testcases = testdata.NoSignal.infsupdec.subset; for testcase = [testcases]' assert (isequaln (... - sinh (testcase.in{1}), ... + subset (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sinh; + testcases = testdata.NoSignal.infsupdec.subset; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sinh (in1), out)); + assert (isequaln (subset (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sinh; + testcases = testdata.NoSignal.infsupdec.subset; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7004,46 +6232,75 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinh (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/issquare.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/issquare.m -***** assert (issquare (infsup ([]))); -***** assert (issquare (infsup (0))); -***** assert (not (issquare (infsup (zeros (1, 2))))); -***** assert (not (issquare (infsup (zeros (2, 1))))); -***** assert (issquare (infsup (zeros (5)))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/gt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/gt.m -***** assert (not (gt (infsup (2, 3), infsup (1, 3)))); -***** assert (gt (infsup (2, 3.1), infsup (1, 3))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/wid.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/wid.m + assert (isequaln (subset (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/subsref.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subsref.m +***** assert (isequal (infsupdec (magic (3))([1, 2, 3]), infsupdec (magic (3)([1, 2, 3])))); +***** test + x = infsupdec (magic (3), magic (3) + 1); + assert (x(1) == infsupdec (8, 9)); +***** test + x = infsupdec (magic (3), magic (3) + 1); + assert (x(:, 2) == infsupdec ([1; 5; 9], [2; 6; 10])); +***** assert (infsupdec (3).inf, 3); +***** test + x = infsupdec (magic (3), magic (3) + 1); + assert (x.inf, magic (3)); +***** assert (isequal (reshape (infsupdec (1:16), 2, 2, 2, 2)(2, 7), infsupdec (14))) +***** assert (isequal (reshape (infsupdec (1:16), 2, 2, 2, 2)(:, 2, 2, 2), infsupdec ([15; 16]))) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/abs.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/abs.m +***** # Empty interval +***** assert (isequal (abs (infsupdec ()), infsupdec ())); +***** # Singleton intervals +***** assert (isequal (abs (infsupdec (1)), infsupdec (1))); +***** assert (isequal (abs (infsupdec (0)), infsupdec (0))); +***** assert (isequal (abs (infsupdec (-1)), infsupdec (1))); +***** assert (isequal (abs (infsupdec (realmax)), infsupdec (realmax))); +***** assert (isequal (abs (infsupdec (realmin)), infsupdec (realmin))); +***** assert (isequal (abs (infsupdec (-realmin)), infsupdec (realmin))); +***** assert (isequal (abs (infsupdec (-realmax)), infsupdec (realmax))); +***** # Bounded intervals +***** assert (isequal (abs (infsupdec (1, 2)), infsupdec (1, 2))); +***** assert (isequal (abs (infsupdec (0, 1)), infsupdec (0, 1))); +***** assert (isequal (abs (infsupdec (-1, 1)), infsupdec (0, 1))); +***** assert (isequal (abs (infsupdec (-1, 0)), infsupdec (0, 1))); +***** assert (isequal (abs (infsupdec (-2, -1)), infsupdec (1, 2))); +***** # Unbounded intervals +***** assert (isequal (abs (infsupdec (0, inf)), infsupdec (0, inf))); +***** assert (isequal (abs (infsupdec (-inf, inf)), infsupdec (0, inf))); +***** assert (isequal (abs (infsupdec (-inf, 0)), infsupdec (0, inf))); +***** assert (isequal (abs (infsupdec (1, inf)), infsupdec (1, inf))); +***** assert (isequal (abs (infsupdec (-1, inf)), infsupdec (0, inf))); +***** assert (isequal (abs (infsupdec (-inf, -1)), infsupdec (1, inf))); +***** assert (isequal (abs (infsupdec (-inf, 1)), infsupdec (0, inf))); ***** # from the documentation string -***** assert (wid (infsup (2.5, 3.5)), 1); +***** assert (isequal (abs (infsupdec (2.5, 3.5)), infsupdec (2.5, 3.5))); +***** assert (isequal (abs (infsupdec (-0.5, 5.5)), infsupdec (0, 5.5))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.wid; + testcases = testdata.NoSignal.infsupdec.abs; for testcase = [testcases]' assert (isequaln (... - wid (testcase.in{1}), ... + abs (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.wid; + testcases = testdata.NoSignal.infsupdec.abs; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (wid (in1), out)); + assert (isequaln (abs (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.wid; + testcases = testdata.NoSignal.infsup.abs; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7054,24 +6311,33 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (wid (in1), out)); + assert (isequaln (abs (in1), out)); +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/@infsupdec/ceil.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/ceil.m +***** # from the documentation string +***** assert (isequal (ceil (infsupdec (2.5, 3.5)), infsupdec (3, 4, "def"))); +***** assert (isequal (ceil (infsupdec (-.5, 5)), infsupdec (0, 5, "def"))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.wid; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.ceil; for testcase = [testcases]' assert (isequaln (... - wid (testcase.in{1}), ... + ceil (testcase.in{1}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.wid; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.ceil; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (wid (in1), out)); + assert (isequaln (ceil (in1), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.wid; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.ceil; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7082,50 +6348,74 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (wid (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/expm.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/expm.m -***** # from the paper + assert (isequaln (ceil (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/bisect.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/bisect.m +***** # from the documentation string ***** test - A = infsup ([0 1; 0 -3], [0 1; 0 -2]); - assert (all (all (subset (infsup ([1, 0.316738; 0, 0.0497871], [1, 0.432332; 0, 0.135335]), expm (A))))); + [a, b] = bisect (infsupdec (2, 32)); + assert (a == infsupdec (2, 8, "trv")); + assert (b == infsupdec (8, 32, "trv")); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/printf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/printf.m -***** xtest - assert (evalc ("n = printf ('%g', infsup ('pi'));"), "3.14159 3.1416"); - assert (n, 14); +[inst/@infsupdec/nextout.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/nextout.m +***** # from the documentation string +***** test + x = nextout (infsupdec (1)); + assert (inf (x), 1 - eps / 2); + assert (sup (x), 1 + eps); + assert (decorationpart (x), {"trv"}); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/tanh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/tanh.m +[inst/@infsupdec/sum.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sum.m ***** # from the documentation string -***** assert (tanh (infsup (1)) == "[0x1.85EFAB514F394p-1, 0x1.85EFAB514F395p-1]"); -***** # correct use of signed zeros +***** assert (isequal (sum ([infsupdec(1), pow2(-1074), -1]), infsupdec (pow2 (-1074)))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/powrev1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/powrev1.m +***** # from the documentation string +***** assert (isequal (powrev1 (infsupdec (2, 5), infsupdec (3, 6)), infsupdec ("[0x1.3EE8390D43955, 0x1.3988E1409212Fp1]_trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/lu.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/lu.m ***** test - x = tanh (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + [l, u] = lu (infsupdec (magic (3))); + assert (isequal (l, infsupdec ({1, 0, 0; .375, 1, 0; .5, "68/37", 1}, "trv")));, ... + assert (subset (u, infsupdec ({8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F2298375Bp3"}, ... + {8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F22983759p3"}))); + A = magic (3); + A ([1, 5, 9]) = 0; + [l, u, p] = lu (infsupdec (A)); + assert (p, [0, 0, 1; 1, 0, 0; 0, 1, 0]); + assert (isequal (l, infsupdec ({1, 0, 0; "4/3", 1, 0; 0, "1/9", 1}, "trv"))); + assert (subset (u, infsupdec ({3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAACp3"; 0, 0, "0x1.C25ED097B425Ep2"}, ... + {3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAAAp3"; 0, 0, "0x1.C25ED097B426p2"}))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/pow10.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow10.m +***** # from the documentation string +***** assert (isequal (pow10 (infsupdec (5)), infsupdec (100000))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.tanh; + testcases = testdata.NoSignal.infsupdec.exp10; for testcase = [testcases]' assert (isequaln (... - tanh (testcase.in{1}), ... + pow10 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.tanh; + testcases = testdata.NoSignal.infsupdec.exp10; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (tanh (in1), out)); + assert (isequaln (pow10 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tanh; + testcases = testdata.NoSignal.infsupdec.exp10; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7133,49 +6423,68 @@ do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) + until (numel (testsize) > 2 || i == numel (in1)) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanh (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/sdist.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sdist.m + assert (isequaln (pow10 (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/csch.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/csch.m ***** # from the documentation string -***** assert (sdist (infsup (0, 6), infsup (7, 20)), -1); -***** assert (sdist (infsup (3, 5), infsup (0, 1)), 2); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/realsqrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/realsqrt.m +***** assert (isequal (csch (infsupdec (1)), infsupdec ("[0x1.B3AB8A78B90Cp-1, 0x1.B3AB8A78B90C1p-1]_com"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/absrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/absrev.m +***** # Empty interval +***** assert (isequal (absrev (infsupdec ()), infsupdec ())); +***** assert (isequal (absrev (infsupdec (0, 1), infsupdec ()), infsupdec ())); +***** assert (isequal (absrev (infsupdec (0, 1), infsupdec (7, 9)), infsupdec ())); +***** assert (isequal (absrev (infsupdec (), infsupdec (0, 1)), infsupdec ())); +***** assert (isequal (absrev (infsupdec (-2, -1)), infsupdec ())); +***** # Singleton intervals +***** assert (isequal (absrev (infsupdec (1)), infsupdec (-1, 1, "trv"))); +***** assert (isequal (absrev (infsupdec (0)), infsupdec (0, "trv"))); +***** assert (isequal (absrev (infsupdec (-1)), infsupdec ())); +***** assert (isequal (absrev (infsupdec (realmax)), infsupdec (-realmax, realmax, "trv"))); +***** assert (isequal (absrev (infsupdec (realmin)), infsupdec (-realmin, realmin, "trv"))); +***** assert (isequal (absrev (infsupdec (-realmin)), infsupdec ())); +***** assert (isequal (absrev (infsupdec (-realmax)), infsupdec ())); +***** # Bound intervals +***** assert (isequal (absrev (infsupdec (1, 2)), infsupdec (-2, 2, "trv"))); +***** assert (isequal (absrev (infsupdec (1, 2), infsupdec (0, 2)), infsupdec (1, 2, "trv"))); +***** assert (isequal (absrev (infsupdec (0, 1), infsupdec (-0.5, 2)), infsupdec (-0.5, 1, "trv"))); +***** assert (isequal (absrev (infsupdec (-1, 1)), infsupdec (-1, 1, "trv"))); +***** assert (isequal (absrev (infsupdec (-1, 0)), infsupdec (0, "trv"))); +***** # Unbound intervals +***** assert (isequal (absrev (infsupdec (0, inf)), infsupdec (-inf, inf, "trv"))); +***** assert (isequal (absrev (infsupdec (-inf, inf)), infsupdec (-inf, inf, "trv"))); +***** assert (isequal (absrev (infsupdec (-inf, 0)), infsupdec (0, "trv"))); +***** assert (isequal (absrev (infsupdec (1, inf), infsupdec (-inf, 0)), infsupdec (-inf, -1, "trv"))); +***** assert (isequal (absrev (infsupdec (-1, inf)), infsupdec (-inf, inf, "trv"))); +***** assert (isequal (absrev (infsupdec (-inf, -1)), infsupdec ())); +***** assert (isequal (absrev (infsupdec (-inf, 1)), infsupdec (-1, 1, "trv"))); ***** # from the documentation string -***** assert (realsqrt (infsup (-6, 4)) == infsup (0, 2)); -***** # correct use of signed zeros -***** test - x = realsqrt (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = realsqrt (infsup (0, 2)); - assert (signbit (inf (x))); +***** assert (isequal (absrev (infsupdec (-2, 1)), infsupdec (-1, 1, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsup.sqrt; + # Scalar evaluation with one argument + testcases = testdata.NoSignal.infsupdec.absRev; for testcase = [testcases]' assert (isequaln (... - realsqrt (testcase.in{1}), ... + absrev (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsup.sqrt; + # Vector evaluation with one argument + testcases = testdata.NoSignal.infsupdec.absRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (realsqrt (in1), out)); + assert (isequaln (absrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqrt; + testcases = testdata.NoSignal.infsupdec.absRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7186,33 +6495,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (realsqrt (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/inf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/inf.m -***** # from the documentation string -***** assert (inf (infsup (2.5, 3.5)), 2.5); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (absrev (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsup.inf; + # Scalar evaluation with two arguments + testcases = testdata.NoSignal.infsupdec.absRevBin; for testcase = [testcases]' assert (isequaln (... - inf (testcase.in{1}), ... + absrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsup.inf; + # Vector evaluation with two arguments + testcases = testdata.NoSignal.infsupdec.absRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (inf (in1), out)); + assert (isequaln (absrev (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.inf; + # N-dimensional array evaluation with two arguments + testcases = testdata.NoSignal.infsupdec.absRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7221,78 +6524,35 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (inf (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/intervaltoexact.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/intervaltoexact.m -***** assert (intervaltoexact (infsup (1 + eps)), "[0x1.0000000000001p+0]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/setxor.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/setxor.m -***** test - [z, z1, z2] = setxor (infsup (), infsup ()); - assert (isempty (z)); - assert (isempty (z1)); - assert (isempty (z2)); -***** test - [z, z1, z2] = setxor (infsup (-inf, inf), infsup ()); - assert (isentire (z)); - assert (isentire (z1)); - assert (isempty (z2)); -***** test - [z, z1, z2] = setxor (infsup (-inf, inf), infsup (2)); - assert (isentire (z)); - assert (z1 == infsup (-inf, 2)); - assert (z2 == infsup (2, inf)); -***** test - [z, z1, z2] = setxor (infsup (2, 3), infsup (2)); - assert (z == infsup (2, 3)); - assert (z1 == infsup ()); - assert (z2 == infsup (2, 3)); -***** test - [z, z1, z2] = setxor (infsup (2, 3), infsup (2, 2.5)); - assert (z == infsup (2.5, 3)); - assert (z1 == infsup ()); - assert (z2 == infsup (2.5, 3)); -***** # from the documentation string -***** test - [z, z1, z2] = setxor (infsup (1, 3), infsup (2, 4)); - assert (z == infsup (1, 4)); - assert (z1 == infsup (1, 2)); - assert (z2 == infsup (3, 4)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/det.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/det.m + assert (isequaln (absrev (in1, in2), out)); +31 tests, 31 passed, 0 known failure, 0 skipped +[inst/@infsupdec/log2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log2.m ***** # from the documentation string -***** assert (det (infsup (magic (3))) == -360); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/subset.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/subset.m -***** assert (subset (infsup (1, 2), infsup (1, 3))); +***** assert (isequal (log2 (infsupdec (2)), infsupdec (1))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.subset; + testcases = testdata.NoSignal.infsupdec.log2; for testcase = [testcases]' assert (isequaln (... - subset (testcase.in{1}, testcase.in{2}), ... + log2 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.subset; + testcases = testdata.NoSignal.infsupdec.log2; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (subset (in1, in2), out)); + assert (isequaln (log2 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.subset; + testcases = testdata.NoSignal.infsup.log2; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7301,42 +6561,43 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (subset (in1, in2), out)); + assert (isequaln (log2 (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/iscommoninterval.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/iscommoninterval.m -***** assert (iscommoninterval (infsup (2, 3))); -***** assert (not (iscommoninterval (infsup (2, inf)))); -***** assert (not (iscommoninterval (infsup ()))); -***** assert (not (iscommoninterval (infsup (-inf, inf)))); -***** assert (iscommoninterval (infsupdec (2, 3, "com"))); -***** assert (iscommoninterval (infsupdec (2, 3, "trv"))); -***** assert (not (iscommoninterval (infsupdec (2, inf, "trv")))); -***** assert (not (iscommoninterval (empty ()))); -***** assert (not (iscommoninterval (entire ()))); -***** warning assert (not (iscommoninterval (infsupdec (2, 1)))); +[inst/@infsupdec/triu.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/triu.m +***** assert (triu (infsupdec (magic (10))) == triu (magic (10))); +***** assert (triu (infsupdec (magic (10)), 1) == triu (magic (10), 1)); +***** assert (triu (infsupdec (magic (10)), -1) == triu (magic (10), -1)); +***** assert (triu (infsupdec (magic (10)), 0, "pack") == triu (magic (10), 0, "pack")); +***** test + A = infsupdec (zeros (3), "trv"); + assert (decorationpart (triu (A)), {"trv", "trv", "trv"; "com", "trv", "trv"; "com", "com", "trv"}); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/asinh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/asinh.m +***** # from the documentation string +***** assert (isequal (asinh (infsupdec (1)), infsupdec ("[0x1.C34366179D426p-1, 0x1.C34366179D427p-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.isCommonInterval; + testcases = testdata.NoSignal.infsupdec.asinh; for testcase = [testcases]' assert (isequaln (... - iscommoninterval (testcase.in{1}), ... + asinh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.isCommonInterval; + testcases = testdata.NoSignal.infsupdec.asinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (iscommoninterval (in1), out)); + assert (isequaln (asinh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isCommonInterval; + testcases = testdata.NoSignal.infsup.asinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7347,25 +6608,35 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (iscommoninterval (in1), out)); + assert (isequaln (asinh (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/lt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/lt.m +***** assert (not (lt (infsupdec (1, 3), infsupdec (3)))); +***** assert (lt (infsupdec (1, 3), infsupdec (3.1))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.isCommonInterval; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.strictLess; for testcase = [testcases]' assert (isequaln (... - iscommoninterval (testcase.in{1}), ... + lt (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.isCommonInterval; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.strictLess; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (iscommoninterval (in1), out)); + assert (isequaln (lt (in1, in2), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isCommonInterval; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.strictLess; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7374,32 +6645,46 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (iscommoninterval (in1), out)); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/@infsup/mag.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mag.m -***** assert (mag (infsup (-3, 4)), 4); -***** assert (mag (infsup (-4, 3)), 4); + assert (isequaln (lt (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/postpad.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/postpad.m +***** assert (isequal (postpad (infsupdec (1:3), 4, 4), infsupdec (1:4))); +***** assert (isequal (postpad (infsupdec (1:3), 2, 4), infsupdec (1:2))); +***** assert (isequal (postpad (infsupdec (0), 10, 0, 3), infsupdec (zeros (1, 1, 10)))); +***** assert (isequal (postpad (infsupdec (zeros (1, 2, 2)), 3), infsupdec (zeros (1, 3, 2)))); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/gauss.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gauss.m +***** # from the documentation string +***** assert (isequal (gauss (infsupdec ([1, 0; 0, 2]), [2, 0; 0, 4]), infsupdec ([2, 0; 0, 2], "trv"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sinrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sinrev.m +***** # from the documentation string +***** assert (isequal (sinrev (infsupdec (-1), infsupdec (0, 6)), infsupdec ("[0x1.2D97C7F3321D2p2, 0x1.2D97C7F3321D3p2]_trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mag; + testcases = testdata.NoSignal.infsupdec.sinRev; for testcase = [testcases]' assert (isequaln (... - mag (testcase.in{1}), ... + sinrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mag; + testcases = testdata.NoSignal.infsupdec.sinRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (mag (in1), out)); + assert (isequaln (sinrev (in1), out)); +***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mag; + testcases = testdata.NoSignal.infsupdec.sinRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7410,25 +6695,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mag (in1), out)); + assert (isequaln (sinrev (in1), out)); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.mag; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.sinRevBin; for testcase = [testcases]' assert (isequaln (... - mag (testcase.in{1}), ... + sinrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.mag; + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.sinRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (mag (in1), out)); + assert (isequaln (sinrev (in1, in2), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mag; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.sinRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7437,44 +6724,37 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mag (in1), out)); + assert (isequaln (sinrev (in1, in2), out)); 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/atan2rev2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2rev2.m -***** # from the documentation string -***** assert (atan2rev2 (infsup (1, 2), infsup ("pi") / 4) == "[0x1.FFFFFFFFFFFFEp-1, 0x1.0000000000001p1]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/log1p.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/log1p.m +[inst/@infsupdec/times.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/times.m ***** # from the documentation string -***** assert (log1p (infsup (eps)) == "[0x1.FFFFFFFFFFFFFp-53, 0x1p-52]"); -***** # correct use of signed zeros -***** test - x = log1p (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (infsupdec (2, 3) .* infsupdec (1, 2), infsupdec (2, 6))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.logp1; + testcases = testdata.NoSignal.infsupdec.mul; for testcase = [testcases]' assert (isequaln (... - log1p (testcase.in{1}), ... + times (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.logp1; + testcases = testdata.NoSignal.infsupdec.mul; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (log1p (in1), out)); + assert (isequaln (times (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.logp1; + testcases = testdata.NoSignal.infsupdec.mul; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7483,40 +6763,50 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log1p (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/asin.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/asin.m -***** # Empty interval -***** assert (asin (infsup ()) == infsup ()); -***** # from the documentation string -***** assert (asin (infsup (.5)) == "[0x1.0C152382D7365p-1, 0x1.0C152382D7366p-1]"); -***** # correct use of signed zeros + assert (isequaln (times (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cat.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cat.m +***** assert (size (cat (1, infsupdec ([]), infsupdec ([]))), [0 0]); +***** assert (isequal (cat (1, infsupdec (1), infsupdec (2)), infsupdec (cat (1, 1, 2)))); +***** assert (isequal (cat (2, infsupdec (1), infsupdec (2)), infsupdec (cat (2, 1, 2)))); +***** assert (isequal (horzcat (infsupdec (1), infsupdec (2)), infsupdec (horzcat (1, 2)))); ***** test - x = asin (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + a = infsupdec (2, 5); + assert (isequal (horzcat (a, a, a), infsupdec ([2, 2, 2], [5, 5, 5]))); +***** assert (isequal (vertcat (infsupdec (1), infsupdec (2)), infsupdec (vertcat (1, 2)))); +***** test + a = infsupdec (2, 5); + assert (isequal (vertcat (a, a, a), infsupdec ([2; 2; 2], [5; 5; 5]))); +***** assert (isequal (cat (5, infsupdec (1), infsupdec (2)), infsupdec (cat (5, 1, 2)))); +***** assert (isequal (cat (1, infsupdec (zeros (2, 2, 2)), infsupdec (ones (2, 2, 2))), infsupdec (cat (1, zeros (2, 2, 2), ones (2, 2, 2))))); +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/@infsupdec/pow2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow2.m +***** # from the documentation string +***** assert (isequal (pow2 (infsupdec (5)), infsupdec (32))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.asin; + testcases = testdata.NoSignal.infsupdec.exp2; for testcase = [testcases]' assert (isequaln (... - asin (testcase.in{1}), ... + pow2 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.asin; + testcases = testdata.NoSignal.infsupdec.exp2; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (asin (in1), out)); + assert (isequaln (pow2 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.asin; + testcases = testdata.NoSignal.infsupdec.exp2; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7524,60 +6814,46 @@ do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) + until (numel (testsize) > 2 | i == numel (in1)) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (asin (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/mldivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mldivide.m -***** # unique solution -***** assert (infsup ([1, 0; 0, 2]) \ [2, 0; 0, 4] == [2, 0; 0 2]); -***** # no solution -***** assert (all (isempty (infsup ([1, 0; 2, 0]) \ [3; 0]))); -***** # many solutions -***** assert (infsup ([1, 0; 2, 0]) \ [4; 8] == infsup ([4; -inf], [4; inf])); -***** assert (all (subset (infsup ([2, -1; -1, 2], [4, 1; 1, 4]) \ infsup ([-3; .8], [3; .8]), infsup ([-2.3; -1.1], [2.3; 1.6])))); + assert (isequaln (pow2 (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/ctranspose.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ctranspose.m -***** assert (ctranspose (infsup (magic (3))) == infsup (magic (3)')); +[inst/@infsupdec/resize.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/resize.m +***** assert (isequal (resize (infsupdec (magic (3)), 4, 2), infsupdec([8, 1; 3, 5; 4, 9; 0, 0]))); +***** assert (isequal (resize (infsupdec (ones (2, 2, 2)), 4, 1, 2), infsupdec (resize (ones (2, 2, 2), 4, 1, 2)))) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsupdec/atan2rev1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2rev1.m +***** # from the documentation string +***** assert (isequal (atan2rev1 (infsupdec (1, 2), infsupdec ("pi") / 4), infsupdec ("[0x1.FFFFFFFFFFFFFp-1, 0x1.0000000000001p1]_trv"))); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/isrow.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/isrow.m -***** assert (not (isrow (infsup ([])))); -***** assert (isrow (infsup (0))); -***** assert (isrow (infsup (zeros (1, 2)))); -***** assert (not (isrow (infsup (zeros (2, 1))))); -***** assert (not (isrow (infsup (zeros (5))))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/strictprecedes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/strictprecedes.m -***** assert (strictprecedes (infsup (1, 1.9), infsup (2.1, 3))); -***** assert (not (strictprecedes (infsup (1, 2), infsup (2, 3)))); +[inst/@infsupdec/acos.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/acos.m +***** # from the documentation string +***** assert (isequal (acos (infsupdec (.5)), infsupdec ("[0x1.0C152382D7365, 0x1.0C152382D7366]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.strictPrecedes; + testcases = testdata.NoSignal.infsupdec.acos; for testcase = [testcases]' assert (isequaln (... - strictprecedes (testcase.in{1}, testcase.in{2}), ... + acos (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.strictPrecedes; + testcases = testdata.NoSignal.infsupdec.acos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (strictprecedes (in1, in2), out)); + assert (isequaln (acos (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.strictPrecedes; + testcases = testdata.NoSignal.infsup.acos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7586,59 +6862,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (strictprecedes (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/ei.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ei.m -***** assert (isempty (ei (infsup (0)))); -***** assert (isempty (ei (infsup (-inf, -2)))); -***** assert (isentire (ei (infsup (0, inf)))); -***** # from the documentation string -***** assert (ei (infsup (1)) == "[0x1.E52670F350D08, 0x1.E52670F350D09]"); + assert (isequaln (acos (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/nthroot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/nthroot.m -***** assert (nthroot (infsup (25, 36), 2) == infsup (5, 6)); -***** # correct use of signed zeros -***** test - x = nthroot (infsup (0), 2); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = nthroot (infsup (0, inf), -2); - assert (signbit (inf (x))); -***** test - x = nthroot (infsup (0, inf), -3); - assert (signbit (inf (x))); -***** assert (nthroot (infsup (-1, 1), 2) == infsup (0, 1)); -***** assert (nthroot (infsup (-1, 1), 3) == infsup (-1, 1)); -***** assert (nthroot (infsup (-1, 1), -2) == infsup (1, inf)); -***** assert (nthroot (infsup (-1, 1), -3) == infsup (-inf, inf)); +[inst/@infsupdec/tan.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tan.m +***** # from the documentation string +***** assert (isequal (tan (infsupdec (1)), infsupdec ("[0x1.8EB245CBEE3A5, 0x1.8EB245CBEE3A6]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.rootn; + testcases = testdata.NoSignal.infsupdec.tan; for testcase = [testcases]' assert (isequaln (... - nthroot (testcase.in{1}, testcase.in{2}), ... + tan (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.rootn; + testcases = testdata.NoSignal.infsupdec.tan; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (nthroot (in1, in2), out)); + assert (isequaln (tan (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.rootn; + testcases = testdata.NoSignal.infsup.tan; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7646,122 +6897,253 @@ i = i + 1; testsize = factor (numel (in1) + i); until (numel (testsize) > 2) - if (i > numel (in1)) - i = i - numel (in1); - in1 = [in1; in1]; - in2 = [in2; in2]; - out = [out; out]; - endif in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (nthroot (in1, in2), out)); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/@infsup/csc.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/csc.m -***** # from the documentation string -***** assert (csc (infsup (1)) == "[0x1.303AA9620B223, 0x1.303AA9620B224]"); + assert (isequaln (tan (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/infsupdec.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/infsupdec.m +***** # [NaI]s +***** assert (isnai (infsupdec ("[nai]"))); # quiet [NaI] +***** assert (isnai (infsupdec (" [ nai ] "))); # quiet [NaI] +***** assert (isnai (infsupdec ({0, "[nai]"})), [false, true]); # quiet [NaI] +***** warning id=interval:UndefinedOperation + assert (isnai (infsupdec (3, 2))); # illegal boundaries +***** warning id=interval:UndefinedOperation + assert (isnai (infsupdec (inf, -inf))); # illegal boundaries +***** warning id=interval:UndefinedOperation + assert (isnai (infsupdec ("Flugeldufel"))); # illegal literal +***** warning id=interval:UndefinedOperation + assert (isnai (infsupdec ("[1, Inf]_com"))); # illegal decorated literal +***** warning id=interval:UndefinedOperation + assert (isnai (infsupdec ("[Empty]_def"))); # illegal decorated literal +***** # decoration adjustments, setDec function +***** test + x = infsupdec (42, inf, "com"); + assert (inf (x), 42); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** test + x = infsupdec (-inf, inf, {"com"}); + assert (inf (x), -inf); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** test + x = infsupdec ("def"); + assert (inf (x), inf); + assert (sup (x), -inf); + assert (decorationpart (x), {"trv"}); +***** # overflow +***** test + x = infsupdec ("[1, 1e999]_com"); + assert (inf (x), 1); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** # decorated interval literal +***** test + x = infsupdec ("[2, 3]_def"); + assert (inf (x), 2); + assert (sup (x), 3); + assert (decorationpart (x), {"def"}); +***** test + x = infsupdec ("[1, 5]_dac"); + assert (inf (x), 1); + assert (sup (x), 5); + assert (decorationpart (x), {"dac"}); +***** test + x = infsupdec ("[1, Infinity]_dac"); + assert (inf (x), 1); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** test + x = infsupdec ("[Empty]_trv"); + assert (inf (x), inf); + assert (sup (x), -inf); + assert (decorationpart (x), {"trv"}); +***** # automatic decoration / undecorated interval literal / newDec function +***** test + x = infsupdec ("[2, 3]"); + assert (inf (x), 2); + assert (sup (x), 3); + assert (decorationpart (x), {"com"}); +***** test + x = infsupdec ("[Empty]"); + assert (inf (x), inf); + assert (sup (x), -inf); + assert (decorationpart (x), {"trv"}); +***** test + x = infsupdec ("[Entire]"); + assert (inf (x), -inf); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** test + x = infsupdec (""); + assert (inf (x), -inf); + assert (sup (x), inf); + assert (decorationpart (x), {"dac"}); +***** # separate decoration information +***** test + x = infsupdec ("[2, 3]", "def"); + assert (inf (x), 2); + assert (sup (x), 3); + assert (decorationpart (x), {"def"}); +***** # cell array with decorated interval literals +***** test + x = infsupdec ({"[2, 3]_def", "[4, 5]_dac"}); + assert (inf (x), [2, 4]); + assert (sup (x), [3, 5]); + assert (decorationpart (x), {"def", "dac"}); +***** #cell array with separate decoration cell array +***** test + x = infsupdec ({"[2, 3]", "[4, 5]"}, {"def", "dac"}); + assert (inf (x), [2, 4]); + assert (sup (x), [3, 5]); + assert (decorationpart (x), {"def", "dac"}); +***** # cell array with separate decoration vector +***** test + x = infsupdec ({"[2, 3]"; "[4, 5]"}, ["def"; "dac"]); + assert (inf (x), [2; 4]); + assert (sup (x), [3; 5]); + assert (decorationpart (x), {"def"; "dac"}); +***** # cell array with broadcasting decoration +***** test + x = infsupdec ({"[2, 3]", "[4, 5]"}, "def"); + assert (inf (x), [2, 4]); + assert (sup (x), [3, 5]); + assert (decorationpart (x), {"def", "def"}); +***** test + x = infsupdec ({"[2, 3]", "[4, 5]"}, "def; dac"); + assert (inf (x), [2, 4; 2, 4]); + assert (sup (x), [3, 5; 3, 5]); + assert (decorationpart (x), {"def", "def"; "dac", "dac"}); +***** # separate boundaries with decoration +***** test + x = infsupdec (2, 3, "def"); + assert (inf (x), 2); + assert (sup (x), 3); + assert (decorationpart (x), {"def"}); +***** # matrix boundaries with decoration +***** test + x = infsupdec ([3, 16], {"def", "trv"}); + assert (inf (x), [3, 16]); + assert (sup (x), [3, 16]); + assert (decorationpart (x), {"def", "trv"}); +***** # separate matrix boundaries with broadcasting decoration +***** test + x = infsupdec (magic (3), magic (3) + 1, "def"); + assert (inf (x), magic (3)); + assert (sup (x), magic (3) + 1); + assert (decorationpart (x), {"def", "def", "def"; "def", "def", "def"; "def", "def", "def"}); +***** # N-dimensional arrays +***** test + x = infsupdec (zeros (2, 2, 2)); + assert (inf (x), zeros (2, 2, 2)); + assert (sup (x), zeros (2, 2, 2)); + assert (decorationpart (x), repmat ({"com"}, [2, 2, 2])); +***** test + x = infsupdec (zeros (2, 2, 2), ones (2, 2, 2), repmat ({"trv"}, [2, 2, 2])); + assert (inf (x), zeros (2, 2, 2)); + assert (sup (x), ones (2, 2, 2)); + assert (decorationpart (x), repmat ({"trv"}, [2, 2, 2])); +***** test + x = infsupdec (zeros (1, 1, 2), ones (1, 2, 1), {"trv"; "trv"}); + assert (inf (x), zeros (2, 2, 2)); + assert (sup (x), ones (2, 2, 2)); + assert (decorationpart (x), repmat ({"trv"}, [2, 2, 2])); +***** test + c1 = reshape ({1, 2, 3, 4, 5, 6, 7, 8}, 2, 2, 2); + c2 = reshape ({2, 3, 4, 5, 6, 7, 8, 9}, 2, 2, 2); + decpart = reshape ({"trv", "def", "dac", "com", "trv", "def", "dac", "com"}, 2, 2, 2); + x = infsupdec (c1, c2, decpart); + assert (inf (x), reshape (1:8, 2, 2, 2)); + assert (sup (x), reshape (2:9, 2, 2, 2)); + assert (decorationpart (x), decpart) ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.csc; + testcases = testdata.NoSignal.infsup.setDec; for testcase = [testcases]' assert (isequaln (... - csc (testcase.in{1}), ... + infsupdec (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.csc; + testcases = testdata.NoSignal.infsup.setDec; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (csc (in1), out)); + assert (isequaln (infsupdec (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.csc; + # Scalar evaluation + testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); + for testcase = [testcases]' + assert (isequaln (... + infsupdec (testcase.in{1}, testcase.in{2}), ... + testcase.out)); + endfor +***** test + # Vector evaluation + testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - # Reshape data - i = -1; - do - i = i + 1; - testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) - in1 = reshape ([in1; in1(1:i)], testsize); - out = reshape ([out; out(1:i)], testsize); - assert (isequaln (csc (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/ndims.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ndims.m -***** assert (ndims (infsup ([])), 2); -***** assert (ndims (infsup (0)), 2); -***** assert (ndims (infsup (magic (3))), 2); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/intersect.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/intersect.m -***** # Empty interval -***** assert (intersect (infsup (), infsup ()) == infsup ()); -***** assert (intersect (infsup (), infsup (1)) == infsup ()); -***** assert (intersect (infsup (0), infsup ()) == infsup ()); -***** assert (intersect (infsup (-inf, inf), infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (intersect (infsup (0), infsup (1)) == infsup ()); -***** assert (intersect (infsup (0), infsup (0)) == infsup (0)); -***** # Bounded intervals -***** assert (intersect (infsup (1, 2), infsup (3, 4)) == infsup ()); -***** assert (intersect (infsup (1, 2), infsup (2, 3)) == infsup (2)); -***** assert (intersect (infsup (1, 2), infsup (1.5, 2.5)) == infsup (1.5, 2)); -***** assert (intersect (infsup (1, 2), infsup (1, 2)) == infsup (1, 2)); -***** # Unbounded intervals -***** assert (intersect (infsup (0, inf), infsup (-inf, 0)) == infsup (0)); -***** assert (intersect (infsup (1, inf), infsup (-inf, -1)) == infsup ()); -***** assert (intersect (infsup (-1, inf), infsup (-inf, 1)) == infsup (-1, 1)); -***** assert (intersect (infsup (-inf, inf), infsup (42)) == infsup (42)); -***** assert (intersect (infsup (42), infsup (-inf, inf)) == infsup (42)); -***** assert (intersect (infsup (-inf, 0), infsup (-inf, inf)) == infsup (-inf, 0)); -***** assert (intersect (infsup (-inf, inf), infsup (-inf, inf)) == infsup (-inf, inf)); -***** # from the documentation string -***** assert (intersect (infsup (1, 3), infsup (2, 4)) == infsup (2, 3)); -***** # correct use of signed zeros -***** test - x = intersect (infsup (0), infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = intersect (infsup (0), infsup (0, 1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = intersect (infsup (0, 1), infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = intersect (infsup (-1, 0), infsup (0, 1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (infsupdec (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.intersection; + testcases = testdata.NoSignal.infsupdec.("d-textToInterval"); for testcase = [testcases]' assert (isequaln (... - intersect (testcase.in{1}, testcase.in{2}), ... + infsupdec (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.intersection; - in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); + testcases = testdata.NoSignal.infsupdec.("d-textToInterval"); + in1 = vertcat (testcases.in); out = vertcat (testcases.out); - assert (isequaln (intersect (in1, in2), out)); + assert (isequaln (infsupdec (in1), out)); +***** warning + testcases = testdata.PossiblyUndefinedOperation.infsupdec.("d-textToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsupdec (testcase.in{1}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:PossiblyUndefinedOperation"); + endfor +***** warning + testcases = testdata.UndefinedOperation.infsupdec.("d-textToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsupdec (testcase.in{1}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); + endfor +***** warning + testcases = testdata.UndefinedOperation.infsupdec.("d-numsToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsupdec (testcase.in{1}, testcase.in{2}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); + endfor +***** warning + testcases = testdata.UndefinedOperation.infsup.setDec; + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsupdec (testcase.in{1}, testcase.in{2}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); + endfor ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.intersection; + testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -7774,68 +7156,43 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (intersect (in1, in2), out)); -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/@infsup/mtimes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mtimes.m -***** # from the documentation string -***** assert (infsup ([1, 2; 7, 15], [2, 2; 7.5, 15]) * infsup ([3, 3; 0, 1], [3, 3.25; 0, 2]) == infsup ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375])); -***** # matrix multiplication using BLAS routines -***** assert (mtimes (infsup ([1, 2; 7, 15], [2, 2; 7.5, 15]), infsup ([3, 3; 0, 1], [3, 3.25; 0, 2]), 'valid') == infsup ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375])); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/nextout.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/nextout.m + assert (isequaln (infsupdec (in1, in2), out)); +44 tests, 44 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cot.m ***** # from the documentation string -***** test - x = nextout (infsup (1)); - assert (inf (x), 1 - eps / 2); - assert (sup (x), 1 + eps); -***** # correct use of signed zeros -***** test - x = nextout (infsup (pow2 (-1074))); - assert (signbit (inf (x))); -***** test - x = nextout (infsup (-pow2 (-1074))); - assert (not (signbit (sup (x)))); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/atan2rev1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2rev1.m +***** assert (isequal (cot (infsupdec (1)), infsupdec ("[0x1.48C05D04E1CFDp-1, 0x1.48C05D04E1CFEp-1]"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/mpower.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mpower.m ***** # from the documentation string -***** assert (atan2rev1 (infsup (1, 2), infsup ("pi") / 4) == "[0x1.FFFFFFFFFFFFFp-1, 0x1.0000000000001p1]"); +***** assert (isequal (infsupdec (magic (3)) ^ 2, infsupdec (magic (3) ^ 2))); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/columns.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/columns.m -***** assert (columns (infsup (zeros (3, 4))), 4); -***** assert (columns (infsup (zeros (0, 4))), 4); -***** assert (columns (infsup (zeros (3, 0))), 0); -***** assert (columns (infsup (zeros (3, 1))), 1); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/interior.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/interior.m -***** assert (interior (infsup (1, 2), infsup (0, 3))); +[inst/@infsupdec/tanh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tanh.m +***** test "from the documentation string"; + assert (isequal (tanh (infsupdec (1)), infsupdec ("[0x1.85EFAB514F394p-1, 0x1.85EFAB514F395p-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.interior; + testcases = testdata.NoSignal.infsupdec.tanh; for testcase = [testcases]' assert (isequaln (... - interior (testcase.in{1}, testcase.in{2}), ... + tanh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.interior; + testcases = testdata.NoSignal.infsupdec.tanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (interior (in1, in2), out)); + assert (isequaln (tanh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.interior; + testcases = testdata.NoSignal.infsup.tanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -7844,41 +7201,57 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (interior (in1, in2), out)); + assert (isequaln (tanh (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/sign.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sign.m +[inst/@infsupdec/nthroot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/nthroot.m +***** assert (isequal (nthroot (infsupdec (25, 36), 2), infsupdec (5, 6))); +***** assert (isequal (nthroot (infsupdec (-1, 1), 2), infsupdec (0, 1, "trv"))); +***** assert (isequal (nthroot (infsupdec (-1, 1), 3), infsupdec (-1, 1))); +***** assert (isequal (nthroot (infsupdec (-1, 1), -2), infsupdec (1, inf, "trv"))); +***** assert (isequal (nthroot (infsupdec (-1, 1), -3), infsupdec (-inf, inf, "trv"))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/factorial.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/factorial.m ***** # from the documentation string -***** assert (sign (infsup (2, 3)) == infsup (1)); -***** assert (sign (infsup (0, 5)) == infsup (0, 1)); -***** assert (sign (infsup (-17)) == infsup (-1)); -***** # correct use of signed zeros -***** test - x = sign (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +***** assert (isequal (factorial (infsupdec (6)), infsupdec (720))); +***** assert (isequal (factorial (infsupdec (0)), infsupdec (1))); +***** assert (isequal (factorial (infsupdec ("[0, 1.99]")), infsupdec (1, "trv"))); +***** assert (isequal (factorial (infsupdec ("[0, 2]")), infsupdec (1, 2, "trv"))); +***** assert (isequal (factorial (infsupdec ("[1.4, 1.6]")), empty ())); +***** assert (isequal (factorial (infsupdec (23)), infsupdec ("[0x1.5e5c335f8a4cdp+74, 0x1.5e5c335f8a4cep+74]_com"))); +***** assert (isequal (factorial (infsupdec (171)), infsupdec ("[0x1.fffffffffffffp+1023, Inf]_dac"))); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/erfc.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/erfc.m +***** # from the documentation string +***** assert (erfc (infsupdec (1)) == "[0x1.4226162FBDDD4p-3, 0x1.4226162FBDDD5p-3]"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cosh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cosh.m +***** # from the documentation string +***** assert (isequal (cosh (infsupdec (1)), infsupdec ("[0x1.8B07551D9F55, 0x1.8B07551D9F551]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sign; + testcases = testdata.NoSignal.infsupdec.cosh; for testcase = [testcases]' assert (isequaln (... - sign (testcase.in{1}), ... + cosh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sign; + testcases = testdata.NoSignal.infsupdec.cosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sign (in1), out)); + assert (isequaln (cosh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sign; + testcases = testdata.NoSignal.infsup.cosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7889,53 +7262,35 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sign (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/acosh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/acosh.m -***** # Empty interval -***** assert (acosh (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (acosh (infsup (0)) == infsup ()); -***** assert (acosh (infsup (1)) == infsup (0)); -***** test - x = infsup (1 : 3 : 100); - assert (min (subset (acosh (x), log (x + sqrt (x + 1) .* sqrt (x - 1))))); -***** # Bounded intervals -***** assert (acosh (infsup (0, 1)) == infsup (0)); -***** # Unbounded intervals -***** assert (acosh (infsup (-inf, 0)) == infsup ()); -***** assert (acosh (infsup (-inf, 1)) == infsup (0)); -***** assert (acosh (infsup (0, inf)) == infsup (0, inf)); -***** assert (acosh (infsup (1, inf)) == infsup (0, inf)); -***** assert (subset (acosh (infsup (2, inf)), infsup (1, inf))); -***** # from the documentation string -***** assert (acosh (infsup (2)) == "[0x1.5124271980434, 0x1.5124271980435]"); -***** # correct use of signed zeros -***** test - x = acosh (infsup (1)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (cosh (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/sup.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sup.m +***** assert (sup (infsupdec (2.5, 3.5)), 3.5); +***** assert (sup (infsupdec ()), -inf); +***** assert (sup (infsupdec ("[nai]")), nan); +***** warning id=interval:UndefinedOperation + assert (sup (infsupdec (3, 2)), nan); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.acosh; + testcases = testdata.NoSignal.infsupdec.sup; for testcase = [testcases]' assert (isequaln (... - acosh (testcase.in{1}), ... + sup (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.acosh; + testcases = testdata.NoSignal.infsupdec.sup; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (acosh (in1), out)); + assert (isequaln (sup (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.acosh; + testcases = testdata.NoSignal.infsup.sup; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7946,32 +7301,47 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (acosh (in1), out)); -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/@infsup/isempty.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/isempty.m -***** assert (isempty (infsup ())); -***** assert (not (isempty (infsup (1, 2)))); + assert (isequaln (sup (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsupdec/dilog.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/dilog.m +***** assert (isequal (dilog (infsupdec (-inf, inf)), infsupdec ("[-Inf, +0x1.3BD3CC9BE45DFp1]_dac"))); +***** # from the documentation string +***** assert (isequal (dilog (infsupdec (1)), infsupdec ("[0x1.A51A6625307D3, 0x1.A51A6625307D4]_com"))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsupdec/ei.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/ei.m +***** assert (isempty (ei (infsupdec (0)))); +***** assert (isempty (ei (infsupdec (-inf, -2)))); +***** assert (isequal (ei (infsupdec (0, inf)), infsupdec ("[Entire]_trv"))); +***** assert (isequal (ei (infsupdec (1, inf)), infsupdec ("[0x1.E52670F350D08, Inf]_dac"))); +***** # from the documentation string +***** assert (isequal (ei (infsupdec (1)), infsupdec ("[0x1.E52670F350D08, 0x1.E52670F350D09]_com"))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsupdec/cos.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cos.m +***** # from the documentation string +***** assert (isequal (cos (infsupdec (1)), infsupdec ("[0x1.14A280FB5068Bp-1, 0x1.14A280FB5068Cp-1]"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.isEmpty; + testcases = testdata.NoSignal.infsupdec.cos; for testcase = [testcases]' assert (isequaln (... - isempty (testcase.in{1}), ... + cos (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.isEmpty; + testcases = testdata.NoSignal.infsupdec.cos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (isempty (in1), out)); + assert (isequaln (cos (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isEmpty; + testcases = testdata.NoSignal.infsup.cos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -7982,38 +7352,219 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (isempty (in1), out)); + assert (isequaln (cos (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsupdec/hypot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsupdec/hypot.m +***** # from the documentation string +***** assert (isequal (hypot (infsupdec (2, 3), infsupdec (1, 2)), infsupdec ("[0x1.1E3779B97F4A7p1, 0x1.CD82B446159F4p1]"))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/verlinineqnn.m] +>>>>> /build/octave-interval-3.2.1/inst/verlinineqnn.m +***** test + A = [-2, -3; -2, -1]; + b = [-1500; -1000]; + [x, y] = verlinineqnn (A, b); + assert (x, [375; 250], 1e-9); + assert (all (x >= [375; 250])); + assert (isnan (y)); +***** test + A = [1, 2; 3, 4]; + b = [-1; 0]; + [x, y] = verlinineqnn (A, b); + assert (y, [1; 0], 1e-9); + assert (all (y >= [1; 0])); + assert (isnan (x)); +***** test + A = [1, 2; 3, 4]; + b = [1; 1]; + [x, y] = verlinineqnn (A, b); + assert (x, [0; 0]); + assert (isnan (y)); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/ctc_intersect.m] +>>>>> /build/octave-interval-3.2.1/inst/ctc_intersect.m +***** function [fval, x] = ctc_abs (y, x) + fval = abs (x); + x = absrev (intersect (fval, y), x); +***** endfunction +***** shared c + c = ctc_intersect (@ctc_abs, "[0, 2]", @ctc_abs, "[1, 3]"); +***** test + [fval, x] = c (infsup (0), infsup ("[1, 3]")); + assert (ismember (0, fval) && 0 != fval); + assert (x == infsup ("[1, 2]")); +***** test + [fval, x] = c (infsup (0), infsup ("[1, 2]")); + assert (0 == fval); + assert (x == infsup ("[1, 2]")); +***** test + [fval, x] = c (infsup (0), infsup ("[entire]")); + assert (ismember (0, fval) && 0 != fval); + assert (x == infsup ("[-2, 2]")); +***** test + [fval, x] = c (infsup (0), infsup ("[0, inf]")); + assert (ismember (0, fval) && 0 != fval); + assert (x == infsup ("[1, 2]")); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/empty.m] +>>>>> /build/octave-interval-3.2.1/inst/empty.m +***** assert (inf (empty ()), inf); +***** assert (sup (empty ()), -inf); +***** assert (decorationpart (empty ()), {"trv"}); +***** assert (inf (empty (5)), inf (5)); +***** assert (sup (empty (5)), -inf (5)); +***** assert (strcmp (decorationpart (empty (5)), "trv"), true (5)); +***** assert (inf (empty (5, 6)), inf (5, 6)); +***** assert (sup (empty (5, 6)), -inf (5, 6)); +***** assert (strcmp (decorationpart (empty (5, 6)), "trv"), true (5, 6)); +***** assert (inf (empty (5, 6, 7)), inf (5, 6, 7)); +***** assert (sup (empty (5, 6, 7)), -inf (5, 6, 7)); +***** assert (strcmp (decorationpart (empty (5, 6, 7)), "trv"), true (5, 6, 7)); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/ctc_union.m] +>>>>> /build/octave-interval-3.2.1/inst/ctc_union.m +***** function [fval, cx] = ctc_sin (y, x) + fval = sin (x); + y = intersect (y, fval); + cx = sinrev (y, x); +***** endfunction +***** function [fval, cx] = ctc_cos (y, x) + fval = cos (x); + y = intersect (y, fval); + cx = cosrev (y, x); +***** endfunction +***** shared c + c = ctc_union (@ctc_sin, 0, @ctc_cos, 0); +***** test + x = infsup (0); + y = infsup (0); + [fval, cx] = c (y, x); + assert (fval == 0); + assert (cx == 0) +***** test + x = infsup ("pi") / 2; + y = infsup (0); + [fval, cx] = c (y, x); + assert (fval == "[0, 1]"); + assert (cx == x); +***** test + x = infsup ("pi") / 4; + y = infsup (0); + [fval, cx] = c (y, x); + assert (fval > 0); + assert (isempty (cx)); +***** test + x = infsup (0, eps); + y = infsup (0); + [fval, cx] = c (y, x); + assert (fval == "[0, 1]"); + assert (cx == 0); +***** test + x = infsup ("[0, pi]") / 2; + y = infsup (0); + [fval, cx] = c (y, x); + assert (fval == "[0, 1]"); + assert (cx == x); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/ismember.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ismember.m -***** assert (ismember (0, entire ())); -***** assert (ismember (0, intervalpart (entire ()))); -***** assert (not (ismember (0, empty ()))); -***** assert (not (ismember (0, intervalpart (empty ())))); -***** warning assert (not (ismember (0, infsupdec (2, 1)))); +[inst/verinvnonneg.m] +>>>>> /build/octave-interval-3.2.1/inst/verinvnonneg.m +***** assert (verinvnonneg (eye (1)), 1) +***** assert (verinvnonneg (eye (2)), 1) +***** assert (verinvnonneg (eye (3)), 1) +***** assert (verinvnonneg (eye (4)), 1) +***** assert (verinvnonneg (eye (5)), 1) +***** assert (verinvnonneg (eye (6)), 1) +***** assert (verinvnonneg (eye (7)), 1) +***** assert (verinvnonneg (eye (8)), 1) +***** assert (verinvnonneg (zeros (1)), 0) +***** assert (verinvnonneg (zeros (2)), 0) +***** assert (verinvnonneg (zeros (3)), 0) +***** assert (verinvnonneg (zeros (4)), 0) +***** assert (verinvnonneg (zeros (5)), 0) +***** assert (verinvnonneg (zeros (6)), 0) +***** assert (verinvnonneg (zeros (7)), 0) +***** assert (verinvnonneg (zeros (8)), 0) +***** assert (verinvnonneg (magic (7)), 0) +***** assert (verinvnonneg (infsup (-inf, inf)), -1) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/vereigvec.m] +>>>>> /build/octave-interval-3.2.1/inst/vereigvec.m +***** test + A = [1 0 0; 0 1 1; 0 0 1]; + assert (vereigvec (A, [1; 0; 0]), 1); + assert (vereigvec (A, [0; 1; 0]), 1); + assert (vereigvec (A, [0; 0; 1]), 0); +***** test + A = magic (3); + [evc, lambda] = vereigvec (A, [1 1 1]); + assert (evc, 1); + assert (lambda == 15); + assert (vereigvec (A, [1; 0; 0]), 0); + assert (vereigvec (A, [0; 1; 0]), 0); + assert (vereigvec (A, [0; 0; 1]), 0); +***** test + A = magic (3) + infsup ("[-5, 5]"); + [evc, lambda, As] = vereigvec (A, [1 0 0]); + assert (evc, 1); + assert (lambda == "[3, 13]"); + assert (ismember ([8 1 6; 0 2 4; 0 5 -2], As)); + assert (max (max (wid (As))) < 1e-14); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/hull.m] +>>>>> /build/octave-interval-3.2.1/inst/hull.m +***** assert (isnai (hull (nai))); +***** assert (isempty (hull (nan))); +***** assert (isequal (hull (2, nan, 3, 5), infsupdec (2, 5, "trv"))); +***** assert (isequal (hull ([1, 2, 3], [5; 0; 2]), infsupdec ([1, 2, 3; 0, 0, 0; 1, 2, 2], [5, 5, 5; 1, 2, 3; 2, 2, 3], "com"))); +***** assert (isequal (hull (magic (3), 10), infsupdec (magic (3), 10 (ones (3)), "com"))); +***** assert (isequal (hull (2, magic (3), [nan, 2, 3; nan, 1, 1; 99, 100, nan]), infsupdec ([2, 1, 2; 2, 1, 1; 2, 2, 2], [8, 2, 6; 3, 5, 7; 99, 100, 2], {"trv", "com", "com"; "trv", "com", "com"; "com", "com", "trv"}))); +***** assert (isnai (hull ([nai, 2])), logical ([1 0])); +***** assert (isnai (hull ([nai, 2], [nai, 3])), logical ([1 0])); +***** assert (isnai (hull ([nai, 2], nai)), logical ([1 1])); +***** assert (isnai (hull ([nai, 2], [2, nai])), logical ([1 1])); +***** assert (isequal (hull (zeros (2, 2, 2, 2), ones (2, 2, 2, 2)), infsupdec (zeros (2, 2, 2, 2), ones (2, 2, 2, 2)))) +***** assert (isequal (hull (zeros (2, 1, 4, 1), ones (1, 3, 1, 5), -1), infsupdec (-ones (2, 3, 4, 5), ones (2, 3, 4, 5)))) +***** assert (isnai (hull (zeros (2, 2, 2, 2), ones (2, 2, 2, 2), nai)), logical (ones (2, 2, 2, 2))) +***** error hull (1:2, 1:3); +***** error hull ((1:2)', (1:3)'); +***** error hull (ones (2, 2, 2), ones (2, 2, 3)); +***** test "from the documentation string"; + assert (isequal (hull (1, 2, 3, 4), infsupdec (1, 4, "com"))); + assert (isequal (hull (empty, entire), infsupdec (-inf, inf, "trv"))); + assert (isequal (hull ("0.1", "pi", "e"), infsupdec (0.1 - eps / 16, pi + eps * 2, "com"))); + assert (isequal (hull ("[0, 3]", "[4, 7]"), infsupdec ("[0, 7]_com"))); +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/@infsup/issingleton.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/issingleton.m +***** assert (issingleton (infsup (0))); +***** assert (issingleton (infsupdec (0))); +***** assert (not (issingleton (entire ()))); +***** assert (not (issingleton (intervalpart (entire ())))); +***** assert (not (issingleton (empty ()))); +***** assert (not (issingleton (intervalpart (empty ())))); +***** warning assert (not (issingleton (infsupdec (2, 1)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.isMember; + testcases = testdata.NoSignal.infsup.isSingleton; for testcase = [testcases]' assert (isequaln (... - ismember (testcase.in{1}, testcase.in{2}), ... + issingleton (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.isMember; + testcases = testdata.NoSignal.infsup.isSingleton; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (ismember (in1, in2), out)); + assert (isequaln (issingleton (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isMember; + testcases = testdata.NoSignal.infsup.isSingleton; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8022,29 +7573,26 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (ismember (in1, in2), out)); + assert (isequaln (issingleton (in1), out)); ***** test # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.isMember; + testcases = testdata.NoSignal.infsupdec.isSingleton; for testcase = [testcases]' assert (isequaln (... - ismember (testcase.in{1}, testcase.in{2}), ... + issingleton (testcase.in{1}), ... testcase.out)); endfor ***** test # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.isMember; + testcases = testdata.NoSignal.infsupdec.isSingleton; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (ismember (in1, in2), out)); + assert (isequaln (issingleton (in1), out)); ***** test # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.isMember; + testcases = testdata.NoSignal.infsup.isSingleton; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8053,39 +7601,41 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (ismember (in1, in2), out)); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/@infsup/exp.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/exp.m -***** # from the documentation string -***** assert (exp (infsup (1)) == infsup ("e")); -***** # correct use of signed zeros + assert (isequaln (issingleton (in1), out)); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/@infsup/horzcat.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/horzcat.m +***** assert (horzcat (infsup (1), infsup (2)) == infsup (horzcat (1, 2))); ***** test - x = exp (infsup (-realmax)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + # from the documentation string + a = infsup (2, 5); + assert (horzcat (a, a, a) == infsup ([2, 2, 2], [5, 5, 5])); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/csc.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/csc.m +***** # from the documentation string +***** assert (csc (infsup (1)) == "[0x1.303AA9620B223, 0x1.303AA9620B224]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.exp; + testcases = testdata.NoSignal.infsup.csc; for testcase = [testcases]' assert (isequaln (... - exp (testcase.in{1}), ... + csc (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.exp; + testcases = testdata.NoSignal.infsup.csc; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (exp (in1), out)); + assert (isequaln (csc (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.exp; + testcases = testdata.NoSignal.infsup.csc; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8096,41 +7646,56 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (exp (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/mrdivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mrdivide.m + assert (isequaln (csc (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/strictsubset.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/strictsubset.m +***** assert (strictsubset (infsup (1, 2), infsup (1, 3))); +***** assert (strictsubset (infsup (2, 3), infsup (1, 3))); +***** assert (not (strictsubset (infsup (1, 2), infsup (1, 2)))); +***** assert (not (strictsubset (infsup (1, 3), infsup (1, 2)))); +***** assert (strictsubset (infsup (), infsup (1, 3))); +***** assert (not (strictsubset (infsup (), infsup ()))); +***** assert (strictsubset (infsup (), infsup (-inf, inf))); +***** assert (strictsubset (infsup (0, inf), infsup (-inf, inf))); +***** assert (strictsubset (infsup (-inf, 0), infsup (-inf, inf))); +***** assert (not (strictsubset (infsup (-inf, inf), infsup (-inf, inf)))); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/@infsup/transpose.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/transpose.m +***** assert (transpose (infsup (magic (3))) == infsup (magic (3).')); ***** # from the documentation string -***** assert (infsup ([1, 2; 3, 4]) / [3, 4; 1, 2] == infsup ([0, 1; 1, 0])); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/pow2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/pow2.m +***** assert (transpose (infsup (zeros (1, 3), ones (1, 3))) == infsup (zeros (3, 1), ones (3, 1))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/expm1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/expm1.m ***** # from the documentation string - assert (pow2 (infsup (5)) == infsup (32)); +***** assert (expm1 (infsup (eps)) == "[0x1p-52, 0x1.0000000000001p-52]"); ***** # correct use of signed zeros ***** test - x = pow2 (infsup (-inf, -realmax)); + x = expm1 (infsup (0)); assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.exp2; + testcases = testdata.NoSignal.infsup.expm1; for testcase = [testcases]' assert (isequaln (... - pow2 (testcase.in{1}), ... + expm1 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.exp2; + testcases = testdata.NoSignal.infsup.expm1; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (pow2 (in1), out)); + assert (isequaln (expm1 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.exp2; + testcases = testdata.NoSignal.infsup.expm1; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8141,42 +7706,32 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow2 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/sin.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sin.m -***** # from the documentation string -***** assert (sin (infsup (1)) == "[0x1.AED548F090CEEp-1, 0x1.AED548F090CEFp-1]"); -***** # correct use of signed zeros -***** test - x = sin (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** # test fix for bug #51283 -***** test - x = sin (infsup ([0, 0])); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); + assert (isequaln (expm1 (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/isempty.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/isempty.m +***** assert (isempty (infsup ())); +***** assert (not (isempty (infsup (1, 2)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sin; + testcases = testdata.NoSignal.infsup.isEmpty; for testcase = [testcases]' assert (isequaln (... - sin (testcase.in{1}), ... + isempty (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sin; + testcases = testdata.NoSignal.infsup.isEmpty; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sin (in1), out)); + assert (isequaln (isempty (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sin; + testcases = testdata.NoSignal.infsup.isEmpty; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8187,52 +7742,68 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sin (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/sprintf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sprintf.m -***** assert (sprintf ("%g", infsup ("pi")), "3.14159 3.1416"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/sumsq.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sumsq.m -***** # from the documentation string -***** assert (sumsq ([infsup(1), pow2(-1074), -1]) == infsup (2, 2+eps*2)); -***** assert (sumsq (infsup ([])) == 0); -***** # correct use of signed zeros + assert (isequaln (isempty (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/setxor.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/setxor.m ***** test - x = sumsq (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/powrev1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/powrev1.m + [z, z1, z2] = setxor (infsup (), infsup ()); + assert (isempty (z)); + assert (isempty (z1)); + assert (isempty (z2)); +***** test + [z, z1, z2] = setxor (infsup (-inf, inf), infsup ()); + assert (isentire (z)); + assert (isentire (z1)); + assert (isempty (z2)); +***** test + [z, z1, z2] = setxor (infsup (-inf, inf), infsup (2)); + assert (isentire (z)); + assert (z1 == infsup (-inf, 2)); + assert (z2 == infsup (2, inf)); +***** test + [z, z1, z2] = setxor (infsup (2, 3), infsup (2)); + assert (z == infsup (2, 3)); + assert (z1 == infsup ()); + assert (z2 == infsup (2, 3)); +***** test + [z, z1, z2] = setxor (infsup (2, 3), infsup (2, 2.5)); + assert (z == infsup (2.5, 3)); + assert (z1 == infsup ()); + assert (z2 == infsup (2.5, 3)); ***** # from the documentation string -***** assert (powrev1 (infsup (2, 5), infsup (3, 6)) == "[0x1.3EE8390D43955, 0x1.3988E1409212Fp1]"); +***** test + [z, z1, z2] = setxor (infsup (1, 3), infsup (2, 4)); + assert (z == infsup (1, 4)); + assert (z1 == infsup (1, 2)); + assert (z2 == infsup (3, 4)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/interior.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/interior.m +***** assert (interior (infsup (1, 2), infsup (0, 3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.powRev1; + testcases = testdata.NoSignal.infsup.interior; for testcase = [testcases]' assert (isequaln (... - powrev1 (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + interior (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.powRev1; + testcases = testdata.NoSignal.infsup.interior; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (powrev1 (in1, in2, in3), out)); + assert (isequaln (interior (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.powRev1; + testcases = testdata.NoSignal.infsup.interior; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8242,35 +7813,36 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (powrev1 (in1, in2, in3), out)); + assert (isequaln (interior (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/coshrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/coshrev.m +[inst/@infsup/max.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/max.m ***** # from the documentation string -***** assert (coshrev (infsup (-2, 1)) == 0); +***** assert (max (infsup (2, 3), infsup (1, 2)) == infsup (2, 3)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.coshRev; + testcases = testdata.NoSignal.infsup.max; for testcase = [testcases]' assert (isequaln (... - coshrev (testcase.in{1}), ... + max (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.coshRev; + testcases = testdata.NoSignal.infsup.max; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (coshrev (in1), out)); + assert (isequaln (max (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.coshRev; + testcases = testdata.NoSignal.infsup.max; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8279,28 +7851,53 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (coshrev (in1), out)); + assert (isequaln (max (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/bitunpack.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/bitunpack.m +***** test; + littleendian = bitunpack (uint16 (1))(1); + b = zeros (1, 128); + if (littleendian) + b([52, 63, 117, 127]) = 1; + else + b([7, 12, 71, 77]) = 1; + endif + assert (bitunpack (infsup (3, 4)), logical (b)); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/power.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/power.m +***** # from the documentation string +***** assert (infsup (-5, 6) .^ infsup (2, 3) == infsup (-125, 216)); +***** assert (infsup (-10, 0) .^ infsup (0, 1:8) == infsup ([-1e1, -1e1, -1e3, -1e3, -1e5, -1e5, -1e7, -1e7], [1e0, 1e2, 1e2, 1e4, 1e4, 1e6, 1e6, 1e8])); +***** # correct use of signed zeros +***** test + x = power (infsup (0), infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.coshRevBin; + testcases = testdata.NoSignal.infsup.sqr; for testcase = [testcases]' assert (isequaln (... - coshrev (testcase.in{1}, testcase.in{2}), ... + power (testcase.in{1}, 2), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.coshRevBin; + testcases = testdata.NoSignal.infsup.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (coshrev (in1, in2), out)); + assert (isequaln (power (in1, 2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.coshRevBin; + testcases = testdata.NoSignal.infsup.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8309,70 +7906,52 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (coshrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/plot3.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/plot3.m -***** # this test is rather pointless -***** test - clf - plot3 (empty (), empty (), empty ()); - close -***** demo - clf - colormap hot - x = y = z = (1 : 3) + infsup ("[0, 1]"); - plot3 (x, y, z); - grid on -***** demo - clf - colormap jet - z = 1 : 8; - x = y = infsup ("[-1, 1]") ./ z; - plot3 (x, y, z); - grid on -***** demo - clf - [x, y] = meshgrid (mince (infsup ("[-5, 5]"), 20), ... - mince (infsup ("[0.1, 5]"), 10)); - z = log (hypot (x, y)); - blue = [38 139 210]/255; base2 = [238 232 213]/255; - plot3 (x, y, z, base2, blue); - view (330, 12) -***** demo - clf - [x, y] = meshgrid (midrad (-10 : 0.5 : 10, .25)); - z = sin (hypot (x, y)) .* hypot (x, y); - plot3 (mid (x), mid (y), z); - grid on -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/precedes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/precedes.m -***** assert (precedes (infsup (1, 2), infsup (2, 3))); -***** assert (not (precedes (infsup (1, 2.1), infsup (1.9, 3)))); + assert (isequaln (power (in1, 2), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/eq.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/eq.m +***** test "Empty interval"; + assert (eq (infsup (), infsup ()) == true); + assert (eq (infsup (), infsup (1)) == false); + assert (eq (infsup (0), infsup ()) == false); + assert (eq (infsup (-inf, inf), infsup ()) == false); +***** test "Singleton intervals"; + assert (eq (infsup (0), infsup (1)) == false); + assert (eq (infsup (0), infsup (0)) == true); +***** test "Bounded intervals"; + assert (eq (infsup (1, 2), infsup (3, 4)) == false); + assert (eq (infsup (1, 2), infsup (2, 3)) == false); + assert (eq (infsup (1, 2), infsup (1.5, 2.5)) == false); + assert (eq (infsup (1, 2), infsup (1, 2)) == true); +***** test "Unbounded intervals"; + assert (eq (infsup (0, inf), infsup (-inf, 0)) == false); + assert (eq (infsup (0, inf), infsup (0, inf)) == true); + assert (eq (infsup (-inf, 0), infsup (-inf, 0)) == true); + assert (eq (infsup (-inf, inf), infsup (42)) == false); + assert (eq (infsup (-inf, 0), infsup (-inf, inf)) == false); + assert (eq (infsup (-inf, inf), infsup (-inf, inf)) == true); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.precedes; + testcases = testdata.NoSignal.infsup.equal; for testcase = [testcases]' assert (isequaln (... - precedes (testcase.in{1}, testcase.in{2}), ... + eq (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.precedes; + testcases = testdata.NoSignal.infsup.equal; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (precedes (in1, in2), out)); + assert (isequaln (eq (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.precedes; + # N-dimensional array evaluations + testcases = testdata.NoSignal.infsup.equal; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -8385,41 +7964,36 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (precedes (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/isvector.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/isvector.m -***** assert (not (isvector (infsup ([])))); -***** assert (isvector (infsup (0))); -***** assert (isvector (infsup (zeros (1, 2)))); -***** assert (isvector (infsup (zeros (2, 1)))); -***** assert (not (isvector (infsup (zeros (5))))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/sup.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sup.m + assert (isequaln (eq (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/rdivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/rdivide.m ***** # from the documentation string -***** assert (sup (infsup (2.5, 3.5)), 3.5); +***** assert (infsup (2, 3) ./ infsup (1, 2) == infsup (1, 3)); +***** assert (1 ./ infsup (1, 4) == infsup (0.25, 1)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sup; + testcases = testdata.NoSignal.infsup.div; for testcase = [testcases]' assert (isequaln (... - sup (testcase.in{1}), ... + rdivide (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sup; + testcases = testdata.NoSignal.infsup.div; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sup (in1), out)); + assert (isequaln (rdivide (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sup; + testcases = testdata.NoSignal.infsup.div; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8428,68 +8002,26 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sup (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/reshape.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/reshape.m -***** assert (reshape (infsup (1 : 6), 2, 3) == infsup (reshape (1 : 6, 2, 3))); -***** assert (reshape (infsup (1 : 24), 2, [], 4) == infsup (reshape (1 : 24, 2, 3, 4))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/ceil.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ceil.m -***** # Empty interval -***** assert (ceil (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (ceil (infsup (0)) == infsup (0)); -***** assert (ceil (infsup (0.5)) == infsup (1)); -***** assert (ceil (infsup (-0.5)) == infsup (0)); -***** # Bounded intervals -***** assert (ceil (infsup (-0.5, 0)) == infsup (0)); -***** assert (ceil (infsup (0, 0.5)) == infsup (0, 1)); -***** assert (ceil (infsup (0.25, 0.5)) == infsup (1)); -***** assert (ceil (infsup (-1, 0)) == infsup (-1, 0)); -***** assert (ceil (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (ceil (infsup (-realmin, realmin)) == infsup (0, 1)); -***** assert (ceil (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); -***** # Unbounded intervals -***** assert (ceil (infsup (-realmin, inf)) == infsup (0, inf)); -***** assert (ceil (infsup (-realmax, inf)) == infsup (-realmax, inf)); -***** assert (ceil (infsup (-inf, realmin)) == infsup (-inf, 1)); -***** assert (ceil (infsup (-inf, realmax)) == infsup (-inf, realmax)); -***** assert (ceil (infsup (-inf, inf)) == infsup (-inf, inf)); -***** # from the documentation string -***** assert (ceil (infsup (2.5, 3.5)) == infsup (3, 4)); -***** assert (ceil (infsup (-.5, 5)) == infsup (0, 5)); -***** # correct use of signed zeros -***** test - x = ceil (infsup (-0.5)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = ceil (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (rdivide (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.ceil; + testcases = testdata.NoSignal.infsup.recip; for testcase = [testcases]' assert (isequaln (... - ceil (testcase.in{1}), ... + rdivide (1, testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.ceil; + testcases = testdata.NoSignal.infsup.recip; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (ceil (in1), out)); + assert (isequaln (rdivide (1, in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.ceil; + testcases = testdata.NoSignal.infsupdec.recip; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8500,117 +8032,30 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (ceil (in1), out)); -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/@infsup/setdiff.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/setdiff.m -***** assert (isempty (setdiff (infsup (), infsup (1, 4)))); -***** assert (setdiff (infsup (1, 3), infsup ()) == infsup (1, 3)); -***** assert (isempty (setdiff (infsup (1, 3), infsup (-inf, inf)))); -***** assert (isempty (setdiff (infsup (1, 3), infsup (1, 4)))); -***** assert (setdiff (infsup (-inf, inf), infsup (1, 4)) == infsup (-inf, inf)); + assert (isequaln (rdivide (1, in1), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/gammaln.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/gammaln.m +***** assert (gammaln (infsup (-inf, inf)) == "[-0x1.F19B9BCC38A42p-4, +Inf]"); ***** # from the documentation string - assert (setdiff (infsup (1, 3), infsup (2, 4)) == infsup (1, 2)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/tril.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/tril.m -***** assert (tril (infsup (magic (10))) == tril (magic (10))); -***** assert (tril (infsup (magic (10)), 1) == tril (magic (10), 1)); -***** assert (tril (infsup (magic (10)), -1) == tril (magic (10), -1)); -***** assert (tril (infsup (magic (10)), 0, "pack") == tril (magic (10), 0, "pack")); +***** assert (gammaln (infsup (1.5)) == "[-0x1.EEB95B094C192p-4, -0x1.EEB95B094C191p-4]"); +***** # correct use of signed zeros +***** test + x = gammaln (infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = gammaln (infsup (2)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/rem.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/rem.m -***** assert (rem (infsup (), infsup ()) == infsup ()); -***** assert (rem (infsup (0), infsup ()) == infsup ()); -***** assert (rem (infsup (), infsup (0)) == infsup ()); -***** assert (rem (infsup (0), infsup (0)) == infsup ()); -***** assert (rem (infsup (1), infsup (0)) == infsup ()); -***** assert (rem (infsup (0, 1), infsup (0)) == infsup ()); -***** assert (rem (infsup (1, 2), infsup (0)) == infsup ()); -***** assert (rem (infsup (0, inf), infsup (0)) == infsup ()); -***** assert (rem (infsup (1, inf), infsup (0)) == infsup ()); -***** assert (rem (infsup (realmax, inf), infsup (0)) == infsup ()); -***** assert (rem (infsup (0), infsup (1)) == infsup (0)); -***** assert (rem (infsup (0), infsup (0, 1)) == infsup (0)); -***** assert (rem (infsup (0), infsup (1, 2)) == infsup (0)); -***** assert (rem (infsup (0), infsup (0, inf)) == infsup (0)); -***** assert (rem (infsup (0), infsup (1, inf)) == infsup (0)); -***** assert (rem (infsup (0), infsup (realmax, inf)) == infsup (0)); -***** assert (rem (infsup (1), infsup (1)) == infsup (0)); -***** assert (rem (infsup (2), infsup (1)) == infsup (0)); -***** assert (rem (infsup (4), infsup (2)) == infsup (0)); -***** assert (rem (infsup (6), infsup (3)) == infsup (0)); -***** assert (rem (infsup (8), infsup (2)) == infsup (0)); -***** assert (rem (infsup (9), infsup (3)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax / 2)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax / 4)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax / 8)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax / 16)) == infsup (0)); -***** assert (rem (infsup (realmax), infsup (realmax / 32)) == infsup (0)); -***** assert (rem (infsup (0.1), infsup (0.1)) == infsup (0)); -***** assert (rem (infsup (0.1 * 2), infsup (0.1)) == infsup (0)); -***** assert (rem (infsup (0.1 * 4), infsup (0.1)) == infsup (0)); -***** assert (rem (infsup (pi), infsup (pi)) == infsup (0)); -***** assert (rem (infsup (pi), infsup (pi / 2)) == infsup (0)); -***** assert (rem (infsup (pi), infsup (pi / 4)) == infsup (0)); -***** assert (rem (infsup (pow2 (-1074)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (rem (infsup (pow2 (-1073)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (rem (infsup (pow2 (-1072)), infsup (pow2 (-1074))) == infsup (0)); -***** assert (rem (infsup (1), infsup (2)) == infsup (1)); -***** assert (rem (infsup (0.5), infsup (1)) == infsup (0.5)); -***** assert (rem (infsup (pi), infsup (3.15)) == infsup (pi)); -***** assert (rem (infsup (1), infsup (2, 3)) == infsup (1)); -***** assert (rem (infsup (1), infsup (2, inf)) == infsup (1)); -***** assert (rem (infsup (0.5), infsup (1, 2)) == infsup (0.5)); -***** assert (rem (infsup (0.5), infsup (1, inf)) == infsup (0.5)); -***** assert (rem (infsup (pi), infsup (3.15)) == infsup (pi)); -***** assert (rem (infsup (pi), infsup (3.15, inf)) == infsup (pi)); -***** assert (rem (infsup (0, 1), infsup (0, 1)) == infsup (0, 1)); -***** assert (rem (infsup (0, 2), infsup (0, 1)) == infsup (0, 1)); -***** assert (rem (infsup (0, 1), infsup (0, 2)) == infsup (0, 1)); -***** assert (rem (infsup (0, realmax), infsup (0, realmax)) == infsup (0, realmax)); -***** assert (rem (infsup (realmax, inf), infsup (realmax, inf)) == infsup (0, inf)); -***** assert (rem (infsup (0, inf), infsup (0, inf)) == infsup (0, inf)); -***** assert (rem (infsup (0), infsup (1)) == infsup (0)); -***** assert (rem (infsup (1), infsup (1)) == infsup (0)); -***** assert (rem (infsup (0, 1), infsup (1)) == infsup (0, 1)); -***** assert (rem (infsup (1, 2), infsup (1)) == infsup (0, 1)); -***** assert (rem (infsup (0, inf), infsup (1)) == infsup (0, 1)); -***** assert (rem (infsup (1, inf), infsup (1)) == infsup (0, 1)); -***** assert (rem (infsup (realmax, inf), infsup (1)) == infsup (0, 1)); -***** assert (rem (infsup (1), infsup (1)) == infsup (0)); -***** assert (rem (infsup (1), infsup (0, 1)) == infsup (0, 0.5)); -***** assert (rem (infsup (1), infsup (1, 2)) == infsup (0, 1)); -***** assert (rem (infsup (1), infsup (0, inf)) == infsup (0, 1)); -***** assert (rem (infsup (1), infsup (1, inf)) == infsup (0, 1)); -***** assert (rem (infsup (1), infsup (2, inf)) == infsup (1)); -***** assert (rem (infsup (1), infsup (realmax, inf)) == infsup (1)); -66 tests, 66 passed, 0 known failure, 0 skipped -[inst/@infsup/psi.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/psi.m -***** assert (isempty (psi (infsup (0)))); -***** assert (isempty (psi (infsup (-1)))); -***** assert (isempty (psi (infsup (-2)))); -***** assert (isempty (psi (infsup (-3)))); -***** assert (isentire (psi (infsup (-inf, -42.23)))); -***** assert (isentire (psi (infsup (0, inf)))); -***** assert (isentire (psi (infsup (-1, 0)))); -***** assert (isentire (psi (infsup (-2, -1)))); -***** assert (isentire (psi (infsup (-eps, eps)))); -***** assert (isentire (psi (infsup (-1-eps, -1+eps)))); -***** assert (isentire (psi (infsup (-4.1, -3.9)))); -***** # from the documentation string -***** assert (psi (infsup (1)) == "[-0x1.2788CFC6FB619p-1, -0x1.2788CFC6FB618p-1]"); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/@infsup/tan.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/tan.m +[inst/@infsup/uminus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/uminus.m ***** # from the documentation string -***** assert (tan (infsup (1)) == "[0x1.8EB245CBEE3A5, 0x1.8EB245CBEE3A6]"); +***** assert (-infsup (2, 3) == infsup (-3, -2)); ***** # correct use of signed zeros ***** test - x = tan (infsup (0)); + x = uminus (infsup (0)); assert (signbit (inf (x))); assert (not (signbit (sup (x)))); ***** shared testdata @@ -8618,21 +8063,21 @@ testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.tan; + testcases = testdata.NoSignal.infsup.neg; for testcase = [testcases]' assert (isequaln (... - tan (testcase.in{1}), ... + uminus (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.tan; + testcases = testdata.NoSignal.infsup.neg; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (tan (in1), out)); + assert (isequaln (uminus (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tan; + testcases = testdata.NoSignal.infsup.neg; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8643,38 +8088,41 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tan (in1), out)); + assert (isequaln (uminus (in1), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/cbrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cbrt.m -***** # from the documentation string -***** assert (cbrt (infsup (-27, 27)) == infsup (-3, 3)); -***** # correct use of signed zeros -***** test - x = cbrt (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); +[inst/@infsup/ndims.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ndims.m +***** assert (ndims (infsup ([])), 2); +***** assert (ndims (infsup (0)), 2); +***** assert (ndims (infsup (magic (3))), 2); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/precedes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/precedes.m +***** assert (precedes (infsup (1, 2), infsup (2, 3))); +***** assert (not (precedes (infsup (1, 2.1), infsup (1.9, 3)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cbrt; + testcases = testdata.NoSignal.infsup.precedes; for testcase = [testcases]' assert (isequaln (... - cbrt (testcase.in{1}), ... + precedes (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cbrt; + testcases = testdata.NoSignal.infsup.precedes; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cbrt (in1), out)); + assert (isequaln (precedes (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cbrt; + testcases = testdata.NoSignal.infsup.precedes; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8683,36 +8131,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cbrt (in1), out)); + assert (isequaln (precedes (in1, in2), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/disjoint.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/disjoint.m -***** assert (disjoint (infsup (3, 4), infsup (5, 6))); -***** assert (not (disjoint (infsup (3, 4), infsup (4, 5)))); +[inst/@infsup/mag.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mag.m +***** assert (mag (infsup (-3, 4)), 4); +***** assert (mag (infsup (-4, 3)), 4); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.disjoint; + testcases = testdata.NoSignal.infsup.mag; for testcase = [testcases]' assert (isequaln (... - disjoint (testcase.in{1}, testcase.in{2}), ... + mag (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.disjoint; + testcases = testdata.NoSignal.infsup.mag; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (disjoint (in1, in2), out)); -***** test + assert (isequaln (mag (in1), out)); # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.disjoint; + testcases = testdata.NoSignal.infsup.mag; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8721,48 +8167,25 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (disjoint (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/idist.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/idist.m -***** # from the documentation string -***** assert (idist (infsup (0, 6), infsup (7, 20)), 1); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/hdist.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/hdist.m -***** # from the documentation string -***** assert (hdist (infsup (1, 6), infsup (2, 8)), 2); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/rows.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/rows.m -***** assert (rows (infsup (zeros (3, 4))), 3); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/cosh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cosh.m -***** # from the documentation string -***** assert (cosh (infsup (1)) == "[0x1.8B07551D9F55, 0x1.8B07551D9F551]"); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (mag (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsup.cosh; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.mag; for testcase = [testcases]' assert (isequaln (... - cosh (testcase.in{1}), ... + mag (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsup.cosh; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.mag; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cosh (in1), out)); + assert (isequaln (mag (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cosh; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.mag; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8773,32 +8196,37 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/sec.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sec.m + assert (isequaln (mag (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/cosrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cosrev.m ***** # from the documentation string -***** assert (sec (infsup (1)) == "[0x1.D9CF0F125CC29, 0x1.D9CF0F125CC2A]"); +***** assert (cosrev (0, infsup (6, 9)) == "[0x1.F6A7A2955385Ep2, 0x1.F6A7A2955386p2]"); +***** # correct use of signed zeros +***** test + x = cosrev (infsup (1), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.sec; + testcases = testdata.NoSignal.infsup.cosRev; for testcase = [testcases]' assert (isequaln (... - sec (testcase.in{1}), ... + cosrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.sec; + testcases = testdata.NoSignal.infsup.cosRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sec (in1), out)); + assert (isequaln (cosrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sec; + testcases = testdata.NoSignal.infsup.cosRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8809,128 +8237,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sec (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/subsasgn.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/subsasgn.m -***** test - A = infsup (magic (3)); - A(4, 4) = 42; - assert (inf (A), [magic(3),[0;0;0];0,0,0,42]); - assert (sup (A), [magic(3),[0;0;0];0,0,0,42]); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/ldivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/ldivide.m -***** # from the documentation string -***** assert (ldivide (infsup (2, 3), infsup (1, 2)) == "[1/3, 1]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/fsolve.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fsolve.m -***** test - sqr = @(x) x .^ 2; - assert (subset (sqrt (infsup (2)), fsolve (sqr, infsup (0, 3), 2))); -***** test - sqr = @(x) x .^ 2; - assert (subset (sqrt (infsup (2)), fsolve (sqr, infsup (0, 3), 2, struct ("Vectorize", false)))); -***** function [fval, x] = contractor (y, x) - fval = x .^ 2; - y = intersect (y, fval); - x = sqrrev (y, x); -***** endfunction -***** assert (subset (sqrt (infsup (2)), fsolve (@contractor, infsup (0, 3), 2, struct ("Contract", true)))); -***** assert (subset (sqrt (infsup (2)), fsolve (@contractor, infsup (0, 3), 2, struct ("Contract", true, "Vectorize", false)))); -***** demo - clf - hold on - grid on - axis equal - shade = [238 232 213] / 255; - blue = [38 139 210] / 255; - cyan = [42 161 152] / 255; - red = [220 50 47] / 255; - # 2D ring - f = @(x, y) hypot (x, y); - [outer, paving, inner] = fsolve (f, infsup ([-3; -3], [3; 3]), ... - infsup (0.5, 2), ... - optimset ('TolX', 0.1)); - # Plot the outer interval enclosure - plot (outer(1), outer(2), shade) - # Plot the guaranteed inner interval enclosures of the preimage - plot (paving(1, inner), paving(2, inner), blue, cyan); - # Plot the boundary of the preimage - plot (paving(1, not (inner)), paving(2, not (inner)), red); -***** demo - clf - hold on - grid on - shade = [238 232 213] / 255; - blue = [38 139 210] / 255; - # This 3D ring is difficult to approximate with interval boxes - f = @(x, y, z) hypot (hypot (x, y) - 2, z); - [~, paving, inner] = fsolve (f, infsup ([-4; -4; -2], [4; 4; 2]), ... - infsup (0, 0.5), ... - optimset ('TolX', 0.2)); - plot3 (paving(1, not (inner)), ... - paving(2, not (inner)), ... - paving(3, not (inner)), shade, blue); - view (50, 60) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/roundb.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/roundb.m -***** # Empty interval -***** assert (roundb (infsup ()) == infsup ()); -***** # Singleton intervals -***** assert (roundb (infsup (0)) == infsup (0)); -***** assert (roundb (infsup (0.5)) == infsup (0)); -***** assert (roundb (infsup (0.25)) == infsup (0)); -***** assert (roundb (infsup (0.75)) == infsup (1)); -***** assert (roundb (infsup (1.5)) == infsup (2)); -***** assert (roundb (infsup (-0.5)) == infsup (0)); -***** assert (roundb (infsup (-1.5)) == infsup (-2)); -***** # Bounded intervals -***** assert (roundb (infsup (-0.5, 0)) == infsup (0)); -***** assert (roundb (infsup (0, 0.5)) == infsup (0)); -***** assert (roundb (infsup (0.25, 0.5)) == infsup (0)); -***** assert (roundb (infsup (-1, 0)) == infsup (-1, 0)); -***** assert (roundb (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (roundb (infsup (-realmin, realmin)) == infsup (0)); -***** assert (roundb (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); -***** # Unbounded intervals -***** assert (roundb (infsup (-realmin, inf)) == infsup (0, inf)); -***** assert (roundb (infsup (-realmax, inf)) == infsup (-realmax, inf)); -***** assert (roundb (infsup (-inf, realmin)) == infsup (-inf, 0)); -***** assert (roundb (infsup (-inf, realmax)) == infsup (-inf, realmax)); -***** assert (roundb (infsup (-inf, inf)) == infsup (-inf, inf)); -***** # correct use of signed zeros -***** test - x = roundb (infsup (0)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = roundb (infsup (-0.25, 0.25)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (cosrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.roundTiesToEven; + testcases = testdata.NoSignal.infsup.cosRevBin; for testcase = [testcases]' assert (isequaln (... - roundb (testcase.in{1}), ... + cosrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.roundTiesToEven; + testcases = testdata.NoSignal.infsup.cosRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (roundb (in1), out)); + assert (isequaln (cosrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.roundTiesToEven; + testcases = testdata.NoSignal.infsup.cosRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -8939,33 +8266,58 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (roundb (in1), out)); -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/@infsup/uplus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/uplus.m + assert (isequaln (cosrev (in1, in2), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/rsqrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/rsqrt.m ***** # from the documentation string -***** assert (+infsup (2, 3) == infsup (2, 3)); +***** assert (rsqrt (infsup (-6, 4)) == infsup (.5, inf)); +***** # correct use of signed zeros +***** test + x = rsqrt (infsup (0, inf)); + assert (signbit (inf (x))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/prod.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/prod.m +***** # from the documentation string +***** assert (prod (infsup (1 : 4)) == 24); +***** assert (prod (infsup ([])) == 1); +***** assert (prod (infsup (magic (3))) == [96, 45, 84]); +***** assert (prod (infsup (magic (3)), 2) == [48; 105; 72]); +***** assert (prod (infsup (magic (3)), 3) == magic (3)); +***** assert (prod (prod (reshape (infsup (1:24), 1, 2, 3, 4))) == reshape ([720, 665280, 13366080, 96909120], 1, 1, 1, 4)) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/cbrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cbrt.m +***** # from the documentation string +***** assert (cbrt (infsup (-27, 27)) == infsup (-3, 3)); +***** # correct use of signed zeros +***** test + x = cbrt (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.pos; + testcases = testdata.NoSignal.infsup.cbrt; for testcase = [testcases]' assert (isequaln (... - uplus (testcase.in{1}), ... + cbrt (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.pos; + testcases = testdata.NoSignal.infsup.cbrt; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (uplus (in1), out)); + assert (isequaln (cbrt (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pos; + testcases = testdata.NoSignal.infsup.cbrt; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -8976,24 +8328,41 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (uplus (in1), out)); + assert (isequaln (cbrt (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/diag.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/diag.m +***** assert (diag (infsup (-inf, inf)) == "[Entire]"); +***** assert (diag (infsup ()) == "[Empty]"); +***** assert (numel (diag (infsup ([]))), 0); +***** assert (isequal (diag (infsup (magic (3))), infsup ([8; 5; 2]))); +***** assert (isequal (diag (infsup ([8 5 3])), infsup ([8 0 0; 0 5 0; 0 0 3]))); +***** assert (isequal (diag (infsup (1:2), 2, 3), infsup ([1 0 0; 0 2 0]))); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/coth.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/coth.m +***** # from the documentation string +***** assert (coth (infsup (1)) == "[0x1.50231499B6B1D, 0x1.50231499B6B1E]"); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.pos; + # Scalar evaluation + testcases = testdata.NoSignal.infsup.coth; for testcase = [testcases]' assert (isequaln (... - uplus (testcase.in{1}), ... + coth (testcase.in{1}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.pos; + # Vector evaluation + testcases = testdata.NoSignal.infsup.coth; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (uplus (in1), out)); + assert (isequaln (coth (in1), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.pos; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.coth; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -9004,58 +8373,70 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (uplus (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/resize.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/resize.m -***** assert (resize (infsup (magic (3)), 4, 2) == infsup ([8, 1; 3, 5; 4, 9; 0, 0])); -***** assert (resize (infsup (ones (2, 2, 2)), 4, 1, 2) == infsup (resize (ones (2, 2, 2), 4, 1, 2))) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsup/eq.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/eq.m -***** test "Empty interval"; - assert (eq (infsup (), infsup ()) == true); - assert (eq (infsup (), infsup (1)) == false); - assert (eq (infsup (0), infsup ()) == false); - assert (eq (infsup (-inf, inf), infsup ()) == false); -***** test "Singleton intervals"; - assert (eq (infsup (0), infsup (1)) == false); - assert (eq (infsup (0), infsup (0)) == true); -***** test "Bounded intervals"; - assert (eq (infsup (1, 2), infsup (3, 4)) == false); - assert (eq (infsup (1, 2), infsup (2, 3)) == false); - assert (eq (infsup (1, 2), infsup (1.5, 2.5)) == false); - assert (eq (infsup (1, 2), infsup (1, 2)) == true); -***** test "Unbounded intervals"; - assert (eq (infsup (0, inf), infsup (-inf, 0)) == false); - assert (eq (infsup (0, inf), infsup (0, inf)) == true); - assert (eq (infsup (-inf, 0), infsup (-inf, 0)) == true); - assert (eq (infsup (-inf, inf), infsup (42)) == false); - assert (eq (infsup (-inf, 0), infsup (-inf, inf)) == false); - assert (eq (infsup (-inf, inf), infsup (-inf, inf)) == true); + assert (isequaln (coth (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/fix.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fix.m +***** # Empty interval +***** assert (fix (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (fix (infsup (0)) == infsup (0)); +***** assert (fix (infsup (1)) == infsup (1)); +***** assert (fix (infsup (1+eps)) == infsup (1)); +***** assert (fix (infsup (-1)) == infsup (-1)); +***** assert (fix (infsup (0.5)) == infsup (0)); +***** assert (fix (infsup (-0.5)) == infsup (0)); +***** # Bounded intervals +***** assert (fix (infsup (-0.5, 0)) == infsup (0)); +***** assert (fix (infsup (0, 0.5)) == infsup (0)); +***** assert (fix (infsup (0.25, 0.5)) == infsup (0)); +***** assert (fix (infsup (-1, 0)) == infsup (-1, 0)); +***** assert (fix (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (fix (infsup (-realmin, realmin)) == infsup (0)); +***** assert (fix (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** # Unbounded intervals +***** assert (fix (infsup (-realmin, inf)) == infsup (0, inf)); +***** assert (fix (infsup (-realmax, inf)) == infsup (-realmax, inf)); +***** assert (fix (infsup (-inf, realmin)) == infsup (-inf, 0)); +***** assert (fix (infsup (-inf, realmax)) == infsup (-inf, realmax)); +***** assert (fix (infsup (-inf, inf)) == infsup (-inf, inf)); +***** # from the documentation string +***** assert (fix (infsup (2.5, 3.5)) == infsup (2, 3)); +***** assert (fix (infsup (-0.5, 5)) == infsup (0, 5)); +***** # correct use of signed zeros +***** test + x = fix (infsup (0.5)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = fix (infsup (-0.5)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = fix (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.equal; + testcases = testdata.NoSignal.infsup.trunc; for testcase = [testcases]' assert (isequaln (... - eq (testcase.in{1}, testcase.in{2}), ... + fix (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.equal; + testcases = testdata.NoSignal.infsup.trunc; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (eq (in1, in2), out)); + assert (isequaln (fix (in1), out)); ***** test - # N-dimensional array evaluations - testcases = testdata.NoSignal.infsup.equal; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.trunc; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9064,17 +8445,110 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (eq (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsup/hypot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/hypot.m + assert (isequaln (fix (in1), out)); +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/@infsup/mod.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mod.m +***** assert (mod (infsup (), infsup ()) == infsup ()); +***** assert (mod (infsup (0), infsup ()) == infsup ()); +***** assert (mod (infsup (), infsup (0)) == infsup ()); +***** assert (mod (infsup (0), infsup (0)) == infsup ()); +***** assert (mod (infsup (1), infsup (0)) == infsup ()); +***** assert (mod (infsup (0, 1), infsup (0)) == infsup ()); +***** assert (mod (infsup (1, 2), infsup (0)) == infsup ()); +***** assert (mod (infsup (0, inf), infsup (0)) == infsup ()); +***** assert (mod (infsup (1, inf), infsup (0)) == infsup ()); +***** assert (mod (infsup (realmax, inf), infsup (0)) == infsup ()); +***** assert (mod (infsup (0), infsup (1)) == infsup (0)); +***** assert (mod (infsup (0), infsup (0, 1)) == infsup (0)); +***** assert (mod (infsup (0), infsup (1, 2)) == infsup (0)); +***** assert (mod (infsup (0), infsup (0, inf)) == infsup (0)); +***** assert (mod (infsup (0), infsup (1, inf)) == infsup (0)); +***** assert (mod (infsup (0), infsup (realmax, inf)) == infsup (0)); +***** assert (mod (infsup (1), infsup (1)) == infsup (0)); +***** assert (mod (infsup (2), infsup (1)) == infsup (0)); +***** assert (mod (infsup (4), infsup (2)) == infsup (0)); +***** assert (mod (infsup (6), infsup (3)) == infsup (0)); +***** assert (mod (infsup (8), infsup (2)) == infsup (0)); +***** assert (mod (infsup (9), infsup (3)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax / 2)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax / 4)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax / 8)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax / 16)) == infsup (0)); +***** assert (mod (infsup (realmax), infsup (realmax / 32)) == infsup (0)); +***** assert (mod (infsup (0.1), infsup (0.1)) == infsup (0)); +***** assert (mod (infsup (0.1 * 2), infsup (0.1)) == infsup (0)); +***** assert (mod (infsup (0.1 * 4), infsup (0.1)) == infsup (0)); +***** assert (mod (infsup (pi), infsup (pi)) == infsup (0)); +***** assert (mod (infsup (pi), infsup (pi / 2)) == infsup (0)); +***** assert (mod (infsup (pi), infsup (pi / 4)) == infsup (0)); +***** assert (mod (infsup (pow2 (-1074)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (mod (infsup (pow2 (-1073)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (mod (infsup (pow2 (-1072)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (mod (infsup (1), infsup (2)) == infsup (1)); +***** assert (mod (infsup (0.5), infsup (1)) == infsup (0.5)); +***** assert (mod (infsup (pi), infsup (3.15)) == infsup (pi)); +***** assert (mod (infsup (1), infsup (2, 3)) == infsup (1)); +***** assert (mod (infsup (1), infsup (2, inf)) == infsup (1)); +***** assert (mod (infsup (0.5), infsup (1, 2)) == infsup (0.5)); +***** assert (mod (infsup (0.5), infsup (1, inf)) == infsup (0.5)); +***** assert (mod (infsup (pi), infsup (3.15)) == infsup (pi)); +***** assert (mod (infsup (pi), infsup (3.15, inf)) == infsup (pi)); +***** assert (mod (infsup (0, 1), infsup (0, 1)) == infsup (0, 1)); +***** assert (mod (infsup (0, 2), infsup (0, 1)) == infsup (0, 1)); +***** assert (mod (infsup (0, 1), infsup (0, 2)) == infsup (0, 1)); +***** assert (mod (infsup (0, realmax), infsup (0, realmax)) == infsup (0, realmax)); +***** assert (mod (infsup (realmax, inf), infsup (realmax, inf)) == infsup (0, inf)); +***** assert (mod (infsup (0, inf), infsup (0, inf)) == infsup (0, inf)); +***** assert (mod (infsup (0), infsup (1)) == infsup (0)); +***** assert (mod (infsup (1), infsup (1)) == infsup (0)); +***** assert (mod (infsup (0, 1), infsup (1)) == infsup (0, 1)); +***** assert (mod (infsup (1, 2), infsup (1)) == infsup (0, 1)); +***** assert (mod (infsup (0, inf), infsup (1)) == infsup (0, 1)); +***** assert (mod (infsup (1, inf), infsup (1)) == infsup (0, 1)); +***** assert (mod (infsup (realmax, inf), infsup (1)) == infsup (0, 1)); +***** assert (mod (infsup (1), infsup (1)) == infsup (0)); +***** assert (mod (infsup (1), infsup (0, 1)) == infsup (0, 0.5)); +***** assert (mod (infsup (1), infsup (1, 2)) == infsup (0, 1)); +***** assert (mod (infsup (1), infsup (0, inf)) == infsup (0, 1)); +***** assert (mod (infsup (1), infsup (1, inf)) == infsup (0, 1)); +***** assert (mod (infsup (1), infsup (2, inf)) == infsup (1)); +***** assert (mod (infsup (1), infsup (realmax, inf)) == infsup (1)); +66 tests, 66 passed, 0 known failure, 0 skipped +[inst/@infsup/floor.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/floor.m +***** # Empty interval +***** assert (floor (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (floor (infsup (0)) == infsup (0)); +***** assert (floor (infsup (0.5)) == infsup (0)); +***** assert (floor (infsup (-0.5)) == infsup (-1)); +***** # Bounded intervals +***** assert (floor (infsup (-0.5, 0)) == infsup (-1, 0)); +***** assert (floor (infsup (0, 0.5)) == infsup (0)); +***** assert (floor (infsup (0.25, 0.5)) == infsup (0)); +***** assert (floor (infsup (-1, 0)) == infsup (-1, 0)); +***** assert (floor (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (floor (infsup (-realmin, realmin)) == infsup (-1, 0)); +***** assert (floor (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** # Unbounded intervals +***** assert (floor (infsup (-realmin, inf)) == infsup (-1, inf)); +***** assert (floor (infsup (-realmax, inf)) == infsup (-realmax, inf)); +***** assert (floor (infsup (-inf, realmin)) == infsup (-inf, 0)); +***** assert (floor (infsup (-inf, realmax)) == infsup (-inf, realmax)); +***** assert (floor (infsup (-inf, inf)) == infsup (-inf, inf)); ***** # from the documentation string -***** assert (hypot (infsup (2, 3), infsup (1, 2)) == "[0x1.1E3779B97F4A7p1, 0x1.CD82B446159F4p1]"); +***** assert (floor (infsup (2.5, 3.5)) == infsup (2, 3)); +***** assert (floor (infsup (-0.5, 5)) == infsup (-1, 5)); ***** # correct use of signed zeros ***** test - x = hypot (infsup (0), infsup (0)); + x = floor (infsup (0.5)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = floor (infsup (0)); assert (signbit (inf (x))); assert (not (signbit (sup (x)))); ***** shared testdata @@ -9082,24 +8556,22 @@ testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.hypot; + testcases = testdata.NoSignal.infsup.floor; for testcase = [testcases]' assert (isequaln (... - hypot (testcase.in{1}, testcase.in{2}), ... + floor (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.hypot; + testcases = testdata.NoSignal.infsup.floor; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (hypot (in1, in2), out)); + assert (isequaln (floor (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.hypot; + testcases = testdata.NoSignal.infsup.floor; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9108,127 +8580,38 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (hypot (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/dot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/dot.m -***** # matrix × matrix -***** assert (dot (infsup (magic (3)), magic (3)) == [89, 107, 89]); -***** assert (dot (infsup (magic (3)), magic (3), 1) == [89, 107, 89]); -***** assert (dot (infsup (magic (3)), magic (3), 2) == [101; 83; 101]); -***** # matrix × vector -***** assert (dot (infsup (magic (3)), [1, 2, 3]) == [28; 34; 28]); -***** assert (dot (infsup (magic (3)), [1, 2, 3], 1) == [15, 30, 45]); -***** assert (dot (infsup (magic (3)), [1, 2, 3], 2) == [28; 34; 28]); -***** assert (dot (infsup (magic (3)), [1; 2; 3]) == [26, 38, 26]); -***** assert (dot (infsup (magic (3)), [1; 2; 3], 1) == [26, 38, 26]); -***** assert (dot (infsup (magic (3)), [1; 2; 3], 2) == [15; 30; 45]); -***** # matrix × scalar -***** assert (dot (infsup (magic (3)), 42) == [630, 630, 630]); -***** assert (dot (infsup (magic (3)), 42, 1) == [630, 630, 630]); -***** assert (dot (infsup (magic (3)), 42, 2) == [630; 630; 630]); -***** # vector x vector -***** assert (dot (infsup([1, 2, 3]), [4, 5, 6]) == 32); -***** assert (dot (infsup([1, 2, 3]), [4, 5, 6], 1) == [4, 10, 18]); -***** assert (dot (infsup([1, 2, 3]), [4, 5, 6], 2) == 32); -***** assert (dot (infsup([1; 2; 3]), [4; 5; 6]) == 32); -***** assert (dot (infsup([1; 2; 3]), [4; 5; 6], 1) == 32); -***** assert (dot (infsup([1; 2; 3]), [4; 5; 6], 2) == [4; 10; 18]); -***** # vector × scalar -***** assert (dot (infsup ([1, 2, 3]), 42) == 252); -***** assert (dot (infsup ([1, 2, 3]), 42, 1) == [42, 84, 126]); -***** assert (dot (infsup ([1, 2, 3]), 42, 2) == 252); -***** assert (dot (infsup ([1; 2; 3]), 42) == 252); -***** assert (dot (infsup ([1; 2; 3]), 42, 1) == 252); -***** assert (dot (infsup ([1; 2; 3]), 42, 2) == [42; 84; 126]); -***** # N-dimensional arrays -***** test - x = infsup (reshape (1:24, 2, 3, 4)); - y = infsup (2.*ones (2, 3, 4)); - assert (dot (x, y, 3) == infsup ([80, 96, 112; 88, 104, 120])) -***** test - x = infsup (ones (2, 2, 2, 2)); - y = infsup (1); - assert (size (dot (x, y)), [1, 2, 2, 2]); - assert (size (dot (x, y, 1)), [1, 2, 2, 2]); - assert (size (dot (x, y, 2)), [2, 1, 2, 2]); - assert (size (dot (x, y, 3)), [2, 2, 1, 2]); - assert (size (dot (x, y, 4)), [2, 2, 2]); - assert (size (dot (x, y, 5)), [2, 2, 2, 2]); + assert (isequaln (floor (in1), out)); +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/@infsup/log.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/log.m ***** # from the documentation string -***** assert (dot ([infsup(1), 2, 3], [infsup(2), 3, 4]) == 20); -***** assert (dot (infsup ([realmax; realmin; realmax]), [1; -1; -1], 1) == -realmin); -28 tests, 28 passed, 0 known failure, 0 skipped -[inst/@infsup/disp.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/disp.m -***** assert (disp (infsup([])), ""); -***** assert (disp (infsup(zeros (0, 1))), ""); -***** assert (disp (infsup(zeros (1, 0))), ""); -***** assert (disp (infsup(0)), "[0]\n"); -***** assert (disp (infsup(0, 1)), "[0, 1]\n"); -***** assert (disp (infsup([0 0])), " [0] [0]\n"); -***** assert (disp (infsup([0 0; 0 0])), " [0] [0]\n [0] [0]\n"); -***** assert (disp (infsup([0; 0])), " [0]\n [0]\n"); -***** assert (disp (infsup (zeros (1, 1, 1, 0))), ""); -***** assert (disp (infsup(zeros(2, 2, 2))), "ans(:,:,1) =\n\n [0] [0]\n [0] [0]\n\nans(:,:,2) =\n\n [0] [0]\n [0] [0]\n") -***** test - i = infsupdec (reshape (1:24, 2, 3, 4)); - i(1, 1, 2) = entire (); - i(1, 1, 3) = empty (); - i(1, 1, 4) = nai (); - assert (disp (i(1,1,:)), "ans(:,:,1) = [1]_com\nans(:,:,2) = [Entire]_dac\nans(:,:,3) = [Empty]_trv\nans(:,:,4) = [NaI]\n") -***** test - x = infsup (zeros ([1 2 2])); - unwind_protect - format compact - compact = disp (x); - format loose - loose = disp (x); - unwind_protect_cleanup - format - end_unwind_protect - assert (compact, "ans(:,:,1) =\n [0] [0]\nans(:,:,2) =\n [0] [0]\n"); - assert (loose, "ans(:,:,1) =\n\n [0] [0]\n\nans(:,:,2) =\n\n [0] [0]\n"); +***** assert (log (infsup (2)) == "[0x1.62E42FEFA39EFp-1, 0x1.62E42FEFA39Fp-1]"); +***** # correct use of signed zeros ***** test - x = infsup (zeros ([1 1 2])); - unwind_protect - format compact - compact = disp (x); - format loose - loose = disp (x); - unwind_protect_cleanup - format - end_unwind_protect - assert (compact, "ans(:,:,1) = [0]\nans(:,:,2) = [0]\n"); - assert (loose, "ans(:,:,1) = [0]\nans(:,:,2) = [0]\n"); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/@infsup/mid.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mid.m -***** assert (mid (infsup (-inf, inf)), 0); -***** # from the documentation string -***** assert (mid (infsup (2.5, 3.5)), 3); + x = log (infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mid; + testcases = testdata.NoSignal.infsup.log; for testcase = [testcases]' assert (isequaln (... - mid (testcase.in{1}), ... + log (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mid; + testcases = testdata.NoSignal.infsup.log; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (mid (in1), out)); + assert (isequaln (log (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mid; + testcases = testdata.NoSignal.infsup.log; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -9239,24 +8622,63 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mid (in1), out)); + assert (isequaln (log (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/roundb.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/roundb.m +***** # Empty interval +***** assert (roundb (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (roundb (infsup (0)) == infsup (0)); +***** assert (roundb (infsup (0.5)) == infsup (0)); +***** assert (roundb (infsup (0.25)) == infsup (0)); +***** assert (roundb (infsup (0.75)) == infsup (1)); +***** assert (roundb (infsup (1.5)) == infsup (2)); +***** assert (roundb (infsup (-0.5)) == infsup (0)); +***** assert (roundb (infsup (-1.5)) == infsup (-2)); +***** # Bounded intervals +***** assert (roundb (infsup (-0.5, 0)) == infsup (0)); +***** assert (roundb (infsup (0, 0.5)) == infsup (0)); +***** assert (roundb (infsup (0.25, 0.5)) == infsup (0)); +***** assert (roundb (infsup (-1, 0)) == infsup (-1, 0)); +***** assert (roundb (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (roundb (infsup (-realmin, realmin)) == infsup (0)); +***** assert (roundb (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** # Unbounded intervals +***** assert (roundb (infsup (-realmin, inf)) == infsup (0, inf)); +***** assert (roundb (infsup (-realmax, inf)) == infsup (-realmax, inf)); +***** assert (roundb (infsup (-inf, realmin)) == infsup (-inf, 0)); +***** assert (roundb (infsup (-inf, realmax)) == infsup (-inf, realmax)); +***** assert (roundb (infsup (-inf, inf)) == infsup (-inf, inf)); +***** # correct use of signed zeros ***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.mid; + x = roundb (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = roundb (infsup (-0.25, 0.25)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); +***** test + # Scalar evaluation + testcases = testdata.NoSignal.infsup.roundTiesToEven; for testcase = [testcases]' assert (isequaln (... - mid (testcase.in{1}), ... + roundb (testcase.in{1}), ... testcase.out)); endfor ***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.mid; + # Vector evaluation + testcases = testdata.NoSignal.infsup.roundTiesToEven; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (mid (in1), out)); + assert (isequaln (roundb (in1), out)); ***** test - # Decorated N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mid; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.roundTiesToEven; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -9267,43 +8689,68 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mid (in1), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/smig.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/smig.m -***** assert (smig (infsup (-1, 2)), 0); -***** assert (smig (infsup (-42, -23)), -23); -***** assert (smig (infsup (23, 42)), 23); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsup/powrev2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/powrev2.m + assert (isequaln (roundb (in1), out)); +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/@infsup/mldivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mldivide.m +***** # unique solution +***** assert (infsup ([1, 0; 0, 2]) \ [2, 0; 0, 4] == [2, 0; 0 2]); +***** # no solution +***** assert (all (isempty (infsup ([1, 0; 2, 0]) \ [3; 0]))); +***** # many solutions +***** assert (infsup ([1, 0; 2, 0]) \ [4; 8] == infsup ([4; -inf], [4; inf])); +***** assert (all (subset (infsup ([2, -1; -1, 2], [4, 1; 1, 4]) \ infsup ([-3; .8], [3; .8]), infsup ([-2.3; -1.1], [2.3; 1.6])))); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/gamma.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/gamma.m ***** # from the documentation string -***** assert (powrev2 (infsup (2, 5), infsup (3, 6)) == "[0x1.5D7E8F22BA886p-1, 0x1.4AE00D1CFDEB5p1]"); +***** assert (gamma (infsup (1.5)) == "[0x1.C5BF891B4EF6Ap-1, 0x1.C5BF891B4EF6Bp-1]"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/fzero.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fzero.m +***** test "from the documentation string"; + f = @(x) cos (x); + df = @(x) -sin (x); + zeros = fzero (f, infsup ("[-10, 10]"), df); + assert (all (subset (pi * (-2.5:1:2.5)', zeros))); + assert (max (rad (zeros)) < 8 * eps); + sqr = @(x) x .^ 2; + zeros = fzero (sqr, infsup ("[Entire]")); + assert (all (subset (0, zeros))); + assert (max (rad (zeros)) < eps); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/minus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/minus.m +***** # from the documentation string +***** assert (infsup (2, 3) - infsup (1, 2) == infsup (0, 2)); +***** # correct use of signed zeros +***** test + x = minus (infsup (0), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.powRev2; + testcases = testdata.NoSignal.infsup.sub; for testcase = [testcases]' assert (isequaln (... - powrev2 (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + minus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.powRev2; + testcases = testdata.NoSignal.infsup.sub; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (powrev2 (in1, in2, in3), out)); + assert (isequaln (minus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.powRev2; + testcases = testdata.NoSignal.infsup.sub; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9313,35 +8760,34 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (powrev2 (in1, in2, in3), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/lt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/lt.m -***** assert (not (lt (infsup (1, 3), infsup (3)))); -***** assert (lt (infsup (1, 3), infsup (3.1))); + assert (isequaln (minus (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/disjoint.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/disjoint.m +***** assert (disjoint (infsup (3, 4), infsup (5, 6))); +***** assert (not (disjoint (infsup (3, 4), infsup (4, 5)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.strictLess; + testcases = testdata.NoSignal.infsup.disjoint; for testcase = [testcases]' assert (isequaln (... - lt (testcase.in{1}, testcase.in{2}), ... + disjoint (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.strictLess; + testcases = testdata.NoSignal.infsup.disjoint; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (lt (in1, in2), out)); + assert (isequaln (disjoint (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.strictLess; + testcases = testdata.NoSignal.infsup.disjoint; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -9354,50 +8800,33 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (lt (in1, in2), out)); + assert (isequaln (disjoint (in1, in2), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/cancelplus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/cancelplus.m +[inst/@infsup/inf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/inf.m ***** # from the documentation string -***** assert (cancelplus (infsup (2, 3), infsup (1, 1.5)) == infsup (3.5, 4)); +***** assert (inf (infsup (2.5, 3.5)), 2.5); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.cancelPlus; + testcases = testdata.NoSignal.infsup.inf; for testcase = [testcases]' assert (isequaln (... - cancelplus (testcase.in{1}, testcase.in{2}), ... + inf (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.cancelPlus; - in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); - out = vertcat (testcases.out); - assert (isequaln (cancelplus (in1, in2), out)); -***** test - # Decorated scalar evaluation - testcases = testdata.NoSignal.infsupdec.cancelPlus; - for testcase = [testcases]' - assert (isequaln (... - cancelplus (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - endfor -***** test - # Decorated vector evaluation - testcases = testdata.NoSignal.infsupdec.cancelPlus; + testcases = testdata.NoSignal.infsup.inf; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cancelplus (in1, in2), out)); + assert (isequaln (inf (in1), out)); ***** test - # N-dimensional array vector evaluation - testcases = testdata.NoSignal.infsupdec.cancelPlus; + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.inf; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9406,42 +8835,32 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cancelplus (in1, in2), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsup/floor.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/floor.m + assert (isequaln (inf (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/acosh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/acosh.m ***** # Empty interval -***** assert (floor (infsup ()) == infsup ()); +***** assert (acosh (infsup ()) == infsup ()); ***** # Singleton intervals -***** assert (floor (infsup (0)) == infsup (0)); -***** assert (floor (infsup (0.5)) == infsup (0)); -***** assert (floor (infsup (-0.5)) == infsup (-1)); +***** assert (acosh (infsup (0)) == infsup ()); +***** assert (acosh (infsup (1)) == infsup (0)); +***** test + x = infsup (1 : 3 : 100); + assert (min (subset (acosh (x), log (x + sqrt (x + 1) .* sqrt (x - 1))))); ***** # Bounded intervals -***** assert (floor (infsup (-0.5, 0)) == infsup (-1, 0)); -***** assert (floor (infsup (0, 0.5)) == infsup (0)); -***** assert (floor (infsup (0.25, 0.5)) == infsup (0)); -***** assert (floor (infsup (-1, 0)) == infsup (-1, 0)); -***** assert (floor (infsup (-1, 1)) == infsup (-1, 1)); -***** assert (floor (infsup (-realmin, realmin)) == infsup (-1, 0)); -***** assert (floor (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** assert (acosh (infsup (0, 1)) == infsup (0)); ***** # Unbounded intervals -***** assert (floor (infsup (-realmin, inf)) == infsup (-1, inf)); -***** assert (floor (infsup (-realmax, inf)) == infsup (-realmax, inf)); -***** assert (floor (infsup (-inf, realmin)) == infsup (-inf, 0)); -***** assert (floor (infsup (-inf, realmax)) == infsup (-inf, realmax)); -***** assert (floor (infsup (-inf, inf)) == infsup (-inf, inf)); +***** assert (acosh (infsup (-inf, 0)) == infsup ()); +***** assert (acosh (infsup (-inf, 1)) == infsup (0)); +***** assert (acosh (infsup (0, inf)) == infsup (0, inf)); +***** assert (acosh (infsup (1, inf)) == infsup (0, inf)); +***** assert (subset (acosh (infsup (2, inf)), infsup (1, inf))); ***** # from the documentation string -***** assert (floor (infsup (2.5, 3.5)) == infsup (2, 3)); -***** assert (floor (infsup (-0.5, 5)) == infsup (-1, 5)); +***** assert (acosh (infsup (2)) == "[0x1.5124271980434, 0x1.5124271980435]"); ***** # correct use of signed zeros ***** test - x = floor (infsup (0.5)); - assert (signbit (inf (x))); - assert (not (signbit (sup (x)))); -***** test - x = floor (infsup (0)); + x = acosh (infsup (1)); assert (signbit (inf (x))); assert (not (signbit (sup (x)))); ***** shared testdata @@ -9449,21 +8868,21 @@ testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.floor; + testcases = testdata.NoSignal.infsup.acosh; for testcase = [testcases]' assert (isequaln (... - floor (testcase.in{1}), ... + acosh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.floor; + testcases = testdata.NoSignal.infsup.acosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (floor (in1), out)); + assert (isequaln (acosh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.floor; + testcases = testdata.NoSignal.infsup.acosh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -9474,15 +8893,173 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (floor (in1), out)); -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/@infsup/expm1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/expm1.m + assert (isequaln (acosh (in1), out)); +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/@infsup/det.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/det.m ***** # from the documentation string -***** assert (expm1 (infsup (eps)) == "[0x1p-52, 0x1.0000000000001p-52]"); +***** assert (det (infsup (magic (3))) == -360); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/fsolve.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fsolve.m +***** test + sqr = @(x) x .^ 2; + assert (subset (sqrt (infsup (2)), fsolve (sqr, infsup (0, 3), 2))); +***** test + sqr = @(x) x .^ 2; + assert (subset (sqrt (infsup (2)), fsolve (sqr, infsup (0, 3), 2, struct ("Vectorize", false)))); +***** function [fval, x] = contractor (y, x) + fval = x .^ 2; + y = intersect (y, fval); + x = sqrrev (y, x); +***** endfunction +***** assert (subset (sqrt (infsup (2)), fsolve (@contractor, infsup (0, 3), 2, struct ("Contract", true)))); +***** assert (subset (sqrt (infsup (2)), fsolve (@contractor, infsup (0, 3), 2, struct ("Contract", true, "Vectorize", false)))); +***** demo + clf + hold on + grid on + axis equal + shade = [238 232 213] / 255; + blue = [38 139 210] / 255; + cyan = [42 161 152] / 255; + red = [220 50 47] / 255; + # 2D ring + f = @(x, y) hypot (x, y); + [outer, paving, inner] = fsolve (f, infsup ([-3; -3], [3; 3]), ... + infsup (0.5, 2), ... + optimset ('TolX', 0.1)); + # Plot the outer interval enclosure + plot (outer(1), outer(2), shade) + # Plot the guaranteed inner interval enclosures of the preimage + plot (paving(1, inner), paving(2, inner), blue, cyan); + # Plot the boundary of the preimage + plot (paving(1, not (inner)), paving(2, not (inner)), red); +***** demo + clf + hold on + grid on + shade = [238 232 213] / 255; + blue = [38 139 210] / 255; + # This 3D ring is difficult to approximate with interval boxes + f = @(x, y, z) hypot (hypot (x, y) - 2, z); + [~, paving, inner] = fsolve (f, infsup ([-4; -4; -2], [4; 4; 2]), ... + infsup (0, 0.5), ... + optimset ('TolX', 0.2)); + plot3 (paving(1, not (inner)), ... + paving(2, not (inner)), ... + paving(3, not (inner)), shade, blue); + view (50, 60) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/rem.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/rem.m +***** assert (rem (infsup (), infsup ()) == infsup ()); +***** assert (rem (infsup (0), infsup ()) == infsup ()); +***** assert (rem (infsup (), infsup (0)) == infsup ()); +***** assert (rem (infsup (0), infsup (0)) == infsup ()); +***** assert (rem (infsup (1), infsup (0)) == infsup ()); +***** assert (rem (infsup (0, 1), infsup (0)) == infsup ()); +***** assert (rem (infsup (1, 2), infsup (0)) == infsup ()); +***** assert (rem (infsup (0, inf), infsup (0)) == infsup ()); +***** assert (rem (infsup (1, inf), infsup (0)) == infsup ()); +***** assert (rem (infsup (realmax, inf), infsup (0)) == infsup ()); +***** assert (rem (infsup (0), infsup (1)) == infsup (0)); +***** assert (rem (infsup (0), infsup (0, 1)) == infsup (0)); +***** assert (rem (infsup (0), infsup (1, 2)) == infsup (0)); +***** assert (rem (infsup (0), infsup (0, inf)) == infsup (0)); +***** assert (rem (infsup (0), infsup (1, inf)) == infsup (0)); +***** assert (rem (infsup (0), infsup (realmax, inf)) == infsup (0)); +***** assert (rem (infsup (1), infsup (1)) == infsup (0)); +***** assert (rem (infsup (2), infsup (1)) == infsup (0)); +***** assert (rem (infsup (4), infsup (2)) == infsup (0)); +***** assert (rem (infsup (6), infsup (3)) == infsup (0)); +***** assert (rem (infsup (8), infsup (2)) == infsup (0)); +***** assert (rem (infsup (9), infsup (3)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax / 2)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax / 4)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax / 8)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax / 16)) == infsup (0)); +***** assert (rem (infsup (realmax), infsup (realmax / 32)) == infsup (0)); +***** assert (rem (infsup (0.1), infsup (0.1)) == infsup (0)); +***** assert (rem (infsup (0.1 * 2), infsup (0.1)) == infsup (0)); +***** assert (rem (infsup (0.1 * 4), infsup (0.1)) == infsup (0)); +***** assert (rem (infsup (pi), infsup (pi)) == infsup (0)); +***** assert (rem (infsup (pi), infsup (pi / 2)) == infsup (0)); +***** assert (rem (infsup (pi), infsup (pi / 4)) == infsup (0)); +***** assert (rem (infsup (pow2 (-1074)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (rem (infsup (pow2 (-1073)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (rem (infsup (pow2 (-1072)), infsup (pow2 (-1074))) == infsup (0)); +***** assert (rem (infsup (1), infsup (2)) == infsup (1)); +***** assert (rem (infsup (0.5), infsup (1)) == infsup (0.5)); +***** assert (rem (infsup (pi), infsup (3.15)) == infsup (pi)); +***** assert (rem (infsup (1), infsup (2, 3)) == infsup (1)); +***** assert (rem (infsup (1), infsup (2, inf)) == infsup (1)); +***** assert (rem (infsup (0.5), infsup (1, 2)) == infsup (0.5)); +***** assert (rem (infsup (0.5), infsup (1, inf)) == infsup (0.5)); +***** assert (rem (infsup (pi), infsup (3.15)) == infsup (pi)); +***** assert (rem (infsup (pi), infsup (3.15, inf)) == infsup (pi)); +***** assert (rem (infsup (0, 1), infsup (0, 1)) == infsup (0, 1)); +***** assert (rem (infsup (0, 2), infsup (0, 1)) == infsup (0, 1)); +***** assert (rem (infsup (0, 1), infsup (0, 2)) == infsup (0, 1)); +***** assert (rem (infsup (0, realmax), infsup (0, realmax)) == infsup (0, realmax)); +***** assert (rem (infsup (realmax, inf), infsup (realmax, inf)) == infsup (0, inf)); +***** assert (rem (infsup (0, inf), infsup (0, inf)) == infsup (0, inf)); +***** assert (rem (infsup (0), infsup (1)) == infsup (0)); +***** assert (rem (infsup (1), infsup (1)) == infsup (0)); +***** assert (rem (infsup (0, 1), infsup (1)) == infsup (0, 1)); +***** assert (rem (infsup (1, 2), infsup (1)) == infsup (0, 1)); +***** assert (rem (infsup (0, inf), infsup (1)) == infsup (0, 1)); +***** assert (rem (infsup (1, inf), infsup (1)) == infsup (0, 1)); +***** assert (rem (infsup (realmax, inf), infsup (1)) == infsup (0, 1)); +***** assert (rem (infsup (1), infsup (1)) == infsup (0)); +***** assert (rem (infsup (1), infsup (0, 1)) == infsup (0, 0.5)); +***** assert (rem (infsup (1), infsup (1, 2)) == infsup (0, 1)); +***** assert (rem (infsup (1), infsup (0, inf)) == infsup (0, 1)); +***** assert (rem (infsup (1), infsup (1, inf)) == infsup (0, 1)); +***** assert (rem (infsup (1), infsup (2, inf)) == infsup (1)); +***** assert (rem (infsup (1), infsup (realmax, inf)) == infsup (1)); +66 tests, 66 passed, 0 known failure, 0 skipped +[inst/@infsup/intersect.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/intersect.m +***** # Empty interval +***** assert (intersect (infsup (), infsup ()) == infsup ()); +***** assert (intersect (infsup (), infsup (1)) == infsup ()); +***** assert (intersect (infsup (0), infsup ()) == infsup ()); +***** assert (intersect (infsup (-inf, inf), infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (intersect (infsup (0), infsup (1)) == infsup ()); +***** assert (intersect (infsup (0), infsup (0)) == infsup (0)); +***** # Bounded intervals +***** assert (intersect (infsup (1, 2), infsup (3, 4)) == infsup ()); +***** assert (intersect (infsup (1, 2), infsup (2, 3)) == infsup (2)); +***** assert (intersect (infsup (1, 2), infsup (1.5, 2.5)) == infsup (1.5, 2)); +***** assert (intersect (infsup (1, 2), infsup (1, 2)) == infsup (1, 2)); +***** # Unbounded intervals +***** assert (intersect (infsup (0, inf), infsup (-inf, 0)) == infsup (0)); +***** assert (intersect (infsup (1, inf), infsup (-inf, -1)) == infsup ()); +***** assert (intersect (infsup (-1, inf), infsup (-inf, 1)) == infsup (-1, 1)); +***** assert (intersect (infsup (-inf, inf), infsup (42)) == infsup (42)); +***** assert (intersect (infsup (42), infsup (-inf, inf)) == infsup (42)); +***** assert (intersect (infsup (-inf, 0), infsup (-inf, inf)) == infsup (-inf, 0)); +***** assert (intersect (infsup (-inf, inf), infsup (-inf, inf)) == infsup (-inf, inf)); +***** # from the documentation string +***** assert (intersect (infsup (1, 3), infsup (2, 4)) == infsup (2, 3)); ***** # correct use of signed zeros ***** test - x = expm1 (infsup (0)); + x = intersect (infsup (0), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = intersect (infsup (0), infsup (0, 1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = intersect (infsup (0, 1), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = intersect (infsup (-1, 0), infsup (0, 1)); assert (signbit (inf (x))); assert (not (signbit (sup (x)))); ***** shared testdata @@ -9490,22 +9067,24 @@ testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.expm1; + testcases = testdata.NoSignal.infsup.intersection; for testcase = [testcases]' assert (isequaln (... - expm1 (testcase.in{1}), ... + intersect (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.expm1; + testcases = testdata.NoSignal.infsup.intersection; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (expm1 (in1), out)); + assert (isequaln (intersect (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.expm1; + testcases = testdata.NoSignal.infsup.intersection; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9514,49 +9093,40 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (expm1 (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsup/fzero.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/fzero.m -***** test "from the documentation string"; - f = @(x) cos (x); - df = @(x) -sin (x); - zeros = fzero (f, infsup ("[-10, 10]"), df); - assert (all (subset (pi * (-2.5:1:2.5)', zeros))); - assert (max (rad (zeros)) < 8 * eps); - sqr = @(x) x .^ 2; - zeros = fzero (sqr, infsup ("[Entire]")); - assert (all (subset (0, zeros))); - assert (max (rad (zeros)) < eps); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/times.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/times.m + assert (isequaln (intersect (in1, in2), out)); +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/@infsup/log10.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/log10.m ***** # from the documentation string -***** assert (infsup (2, 3) .* infsup (1, 2) == infsup (2, 6)); +***** assert (log10 (infsup (2)) == "[0x1.34413509F79FEp-2, 0x1.34413509F79FFp-2]"); +***** # correct use of signed zeros +***** test + x = log10 (infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.mul; + testcases = testdata.NoSignal.infsup.log10; for testcase = [testcases]' assert (isequaln (... - times (testcase.in{1}, testcase.in{2}), ... + log10 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.mul; + testcases = testdata.NoSignal.infsup.log10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (times (in1, in2), out)); + assert (isequaln (log10 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.mul; + testcases = testdata.NoSignal.infsup.log10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9565,37 +9135,41 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (times (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/min.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/min.m + assert (isequaln (log10 (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/sign.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sign.m ***** # from the documentation string -***** assert (min (infsup (2, 3), infsup (1, 2)) == infsup (1, 2)); +***** assert (sign (infsup (2, 3)) == infsup (1)); +***** assert (sign (infsup (0, 5)) == infsup (0, 1)); +***** assert (sign (infsup (-17)) == infsup (-1)); +***** # correct use of signed zeros +***** test + x = sign (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.min; + testcases = testdata.NoSignal.infsup.sign; for testcase = [testcases]' assert (isequaln (... - min (testcase.in{1}, testcase.in{2}), ... + sign (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.min; + testcases = testdata.NoSignal.infsup.sign; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (min (in1, in2), out)); + assert (isequaln (sign (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.min; + testcases = testdata.NoSignal.infsup.sign; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9604,41 +9178,485 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (min (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsup/sqrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/sqrt.m + assert (isequaln (sign (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/atan2rev2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2rev2.m ***** # from the documentation string -***** assert (sqrt (infsup (-6, 4)) == infsup (0, 2)); +***** assert (atan2rev2 (infsup (1, 2), infsup ("pi") / 4) == "[0x1.FFFFFFFFFFFFEp-1, 0x1.0000000000001p1]"); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsup/rdivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/rdivide.m -***** # from the documentation string -***** assert (infsup (2, 3) ./ infsup (1, 2) == infsup (1, 3)); -***** assert (1 ./ infsup (1, 4) == infsup (0.25, 1)); +[inst/@infsup/infsup.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/infsup.m +***** # Empty intervals +***** test + x = infsup (); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[ ]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[\t]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[empty]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[EMPTY]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("[ empty ]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** test + x = infsup ("\t[\t Empty\t]\t"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** # Entire interval +***** test + x = infsup ("[,]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[entire]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[ENTIRE]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[ entire ]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup (" [Entire \t] "); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[-inf,+inf]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[-infinity, +infinity]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[-INF, +INFinitY]"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** # double boundaries +***** test + x = infsup (0); + assert (inf (x), 0); + assert (sup (x), 0); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = infsup (2, 3); + assert (inf (x), 2); + assert (sup (x), 3); +***** test + x = infsup (-inf, 0.1); + assert (inf (x), -inf); + assert (sup (x), 0.1); +***** test + x = infsup (-inf, +inf); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** # NaN values +***** warning id=interval:UndefinedOperation + x = infsup (nan); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (nan, 2); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (3, nan); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** # illegal numeric boundaries +***** warning id=interval:UndefinedOperation + x = infsup (+inf, -inf); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (+inf, +inf); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (-inf, -inf); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (3, 2); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup (3, -inf); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** # double matrix +***** test + x = infsup (magic (4)); + assert (inf (x), magic (4)); + assert (sup (x), magic (4)); +***** test + x = infsup (magic (3), magic (3) + 1); + assert (inf (x), magic (3)); + assert (sup (x), magic (3) + 1); +***** warning id=interval:UndefinedOperation + x = infsup (nan (3)); + assert (inf (x), +inf (3)); + assert (sup (x), -inf (3)); +***** test + x = infsup (-inf (3), +inf (3)); + assert (inf (x), -inf (3)); + assert (sup (x), +inf (3)); +***** # decimal boundaries +***** test + x = infsup ("0.1"); + assert (inf (x), 0.1 - eps / 16); + assert (sup (x), 0.1); +***** test + x = infsup ("0.1e1"); + assert (inf (x), 1); + assert (sup (x), 1); +***** # hexadecimal boundaries +***** test + x = infsup ("0xff"); + assert (inf (x), 255); + assert (sup (x), 255); +***** test + x = infsup ("0xff.1"); + assert (inf (x), 255.0625); + assert (sup (x), 255.0625); +***** test + x = infsup ("0xff.1p-1"); + assert (inf (x), 127.53125); + assert (sup (x), 127.53125); +***** # named constants +***** test + x = infsup ("pi"); + assert (inf (x), pi); + assert (sup (x), pi + 2 * eps); +***** test + x = infsup ("e"); + assert (inf (x), e); + assert (sup (x), e + eps); +***** # uncertain form +***** test + x = infsup ("32?"); + assert (inf (x), 31.5); + assert (sup (x), 32.5); +***** test + x = infsup ("32?8"); + assert (inf (x), 24); + assert (sup (x), 40); +***** test + x = infsup ("32?u"); + assert (inf (x), 32); + assert (sup (x), 32.5); +***** test + x = infsup ("32?d"); + assert (inf (x), 31.5); + assert (sup (x), 32); +***** test + x = infsup ("32??"); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("32??d"); + assert (inf (x), -inf); + assert (sup (x), 32); +***** test + x = infsup ("32??u"); + assert (inf (x), 32); + assert (sup (x), +inf); +***** test + x = infsup ("32?e5"); + assert (inf (x), 3150000); + assert (sup (x), 3250000); +***** # rational form +***** test + x = infsup ("6/9"); + assert (inf (x), 2 / 3); + assert (sup (x), 2 / 3 + eps / 2); +***** test + x = infsup ("6e1/9"); + assert (inf (x), 20 / 3 - eps * 2); + assert (sup (x), 20 / 3); +***** test + x = infsup ("6/9e1"); + assert (inf (x), 2 / 30); + assert (sup (x), 2 / 30 + eps / 16); +***** test + x = infsup ("-6/9"); + assert (inf (x), -(2 / 3 + eps / 2)); + assert (sup (x), -2 / 3); +***** test + x = infsup ("6/-9"); + assert (inf (x), -(2 / 3 + eps / 2)); + assert (sup (x), -2 / 3); +***** test + x = infsup ("-6/-9"); + assert (inf (x), 2 / 3); + assert (sup (x), 2 / 3 + eps / 2); +***** test + x = infsup ("6.6/9.9"); + assert (inf (x), 2 / 3); + assert (sup (x), 2 / 3 + eps / 2); +***** # inf-sup interval literal +***** test + x = infsup ("[2, 3]"); + assert (inf (x), 2); + assert (sup (x), 3); +***** test + x = infsup ("[0.1]"); + assert (inf (x), 0.1 - eps / 16); + assert (sup (x), 0.1); +***** test + x = infsup ("[0xff, 0xff.1]"); + assert (inf (x), 255); + assert (sup (x), 255.0625); +***** test + x = infsup ("[e, pi]"); + assert (inf (x), e); + assert (sup (x), pi + 2 * eps); +***** test + x = infsup ("[6/9, 6e1/9]"); + assert (inf (x), 2 / 3); + assert (sup (x), 20 / 3); +***** # corner cases +***** test + x = infsup (","); + assert (inf (x), -inf); + assert (sup (x), +inf); +***** test + x = infsup ("[, 3]"); + assert (inf (x), -inf); + assert (sup (x), 3); +***** test + x = infsup ("", "3"); + assert (inf (x), -inf); + assert (sup (x), 3); +***** test + x = infsup ("[2, ]"); + assert (inf (x), 2); + assert (sup (x), inf); +***** test + x = infsup ("2", ""); + assert (inf (x), 2); + assert (sup (x), inf); +***** # decimal vector +***** test + x = infsup (["0.1"; "0.2"; "0.3"]); + assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); + assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); +***** test + x = infsup ("0.1; 0.2; 0.3"); + assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); + assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); +***** test + x = infsup ("0.1\n0.2\n0.3"); + assert (inf (x), [0.1 - eps / 16; 0.2 - eps / 8; 0.3]); + assert (sup (x), [0.1; 0.2; 0.3 + eps / 8]); +***** # cell array with mixed boundaries +***** test + x = infsup ({"0.1", 42; "e", "3.2/8"}, {"0xffp2", "42e1"; "pi", 2}); + assert (inf (x), [0.1 - eps / 16, 42; e, 0.4 - eps / 4]); + assert (sup (x), [1020, 420; pi + 2 * eps, 2]); +***** test + x = infsup ({"[2, 3]", "3/4", "[Entire]", "42?3", 1, "0xf"}); + assert (inf (x), [2, 0.75, -inf, 39, 1, 15]); + assert (sup (x), [3, 0.75, +inf, 45, 1, 15]); +***** # broadcasting +***** test + x = infsup (magic (3), 10); + assert (inf (x), magic (3)); + assert (sup (x), 10 .* ones (3)); +***** test + x = infsup (zeros (1, 20), ones (20, 1)); + assert (inf (x), zeros (20, 20)); + assert (sup (x), ones (20, 20)); +***** # nai +***** warning id=interval:UndefinedOperation + x = infsup ("[nai]"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup ("Ausgeschnitzel"); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** # interval literals vs. two arguments +***** warning id=interval:UndefinedOperation + x = infsup ("[empty]", 42); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** warning id=interval:UndefinedOperation + x = infsup ("0?", 42); + assert (inf (x), +inf); + assert (sup (x), -inf); +***** # extraction of single errors +***** warning id=interval:UndefinedOperation + x = infsup ("0 1 2 [xxx] 3 4"); + assert (inf (x), [0 1 2 +inf 3 4]); + assert (sup (x), [0 1 2 -inf 3 4]); +***** warning id=interval:UndefinedOperation + x = infsup ({1 2; 3 "[xxx]"}); + assert (inf (x), [1 2; 3 +inf]); + assert (sup (x), [1 2; 3 -inf]); +***** # complex values +***** warning id=interval:InvalidOperand + x = infsup ([1 2 3+i 4+0i]); + assert (inf (x), [1 2 +inf 4]); + assert (sup (x), [1 2 -inf 4]); +***** # inaccurate conversion +***** warning id=interval:PossiblyUndefinedOperation + x = infsup ("1.000000000000000000002", "1.000000000000000000001"); + assert (inf (x), 1); + assert (sup (x), 1 + eps); +***** test + n = uint64(2 ^ 53); + x = infsup (n, n + 1); + assert (inf (x), double (n)); + assert (sup (x), double (n + 2)); +***** test + n = uint64(2 ^ 53); + x = infsup ({n}, n + 1); + assert (inf (x), double (n)); + assert (sup (x), double (n + 2)); +***** test + n = uint64(2 ^ 53); + x = infsup (n + 1, n + 1); + assert (inf (x), double (n)); + assert (sup (x), double (n + 2)); +***** test + n = uint64(2 ^ 54); + x = infsup (n, n + 1); + assert (inf (x), double (n)); + assert (sup (x), double (n + 4)); +***** warning id=interval:PossiblyUndefinedOperation + n = uint64(2 ^ 54); + x = infsup (n + 1, n + 2); + assert (inf (x), double (n)); + assert (sup (x), double (n + 4)); +***** warning id=interval:PossiblyUndefinedOperation + x = infsup ("pi", "3.141592653589793"); + assert (inf (x), pi); + assert (sup (x), pi); +***** warning id=interval:PossiblyUndefinedOperation + x = infsup ("pi", "3.1415926535897932"); + assert (inf (x), pi); + assert (sup (x), pi + 2 * eps); +***** # isexact flag +***** test + [~, isexact] = infsup (); + assert (isexact); +***** test + [~, isexact] = infsup (0); + assert (isexact); +***** test + [~, isexact] = infsup ("1 2 3"); + assert (isexact, true); +***** test + [~, isexact] = infsup ("1 2 3.1"); + assert (isexact, false); +***** warning + [~, isexact] = infsup ("[nai]"); + assert (not (isexact)); +***** # overflow flag +***** test + [~, ~, overflow] = infsup (); + assert (not (overflow)); +***** test + [~, ~, overflow] = infsup (0); + assert (not (overflow)); +***** test + [~, ~, overflow] = infsup ([1 2 3]); + assert (overflow, false (1, 3)); +***** warning + [~, ~, overflow] = infsup ("[nai]"); + assert (not (overflow)); +***** test + [~, ~, overflow] = infsup ("1e3000"); + assert (overflow); +***** test + [~, ~, overflow] = infsup ("[1, inf]"); + assert (not (overflow)); +***** # isnai flag +***** test + [~, ~, ~, isnai] = infsup (); + assert (not (isnai)); +***** test + [~, ~, ~, isnai] = infsup (0); + assert (not (isnai)); +***** test + [~, ~, ~, isnai] = infsup ([1 2 3]); + assert (isnai, false (1, 3)); +***** warning + [~, ~, ~, isnai] = infsup ("[nai]"); + assert (isnai); +***** warning + [~, ~, ~, isnai] = infsup ("xxx"); + assert (isnai); +***** warning + [~, ~, ~, isnai] = infsup ("1 2 xxx 4"); + assert (isnai, [false, false, true, false]); +***** warning + [~, ~, ~, isnai] = infsup ("[-inf, inf] [inf, inf]"); + assert (isnai, [false, true]); +***** # N-dimensional arrays +***** test + x = infsup (zeros (2, 2, 2)); + assert (inf (x), zeros (2, 2, 2)); + assert (sup (x), zeros (2, 2, 2)); +***** test + x = infsup (zeros (2, 2, 2), ones (2, 2, 2)); + assert (inf (x), zeros (2, 2, 2)); + assert (sup (x), ones (2, 2, 2)); +***** test + x = infsup (zeros (2, 1, 2, 1, 2, 1), ones (1, 3, 1, 3, 1, 3)); + assert (inf (x), zeros (2, 3, 2, 3, 2, 3)); + assert (sup (x), ones (2, 3, 2, 3, 2, 3)); +***** test + c1 = reshape ({1, 2, 3, 4, 5, 6, 7, 8}, 2, 2, 2); + c2 = reshape ({2, 3, 4, 5, 6, 7, 8, 9}, 2, 2, 2); + x = infsup (c1, c2); + assert (inf (x), reshape (1:8, 2, 2, 2)); + assert (sup (x), reshape (2:9, 2, 2, 2)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.div; + testcases = testdata.NoSignal.infsup.("b-numsToInterval"); for testcase = [testcases]' assert (isequaln (... - rdivide (testcase.in{1}, testcase.in{2}), ... + infsup (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.div; + testcases = testdata.NoSignal.infsup.("b-numsToInterval"); in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (rdivide (in1, in2), out)); + assert (isequaln (infsup (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.div; + testcases = testdata.NoSignal.infsup.("b-numsToInterval"); in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -9651,25 +9669,26 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rdivide (in1, in2), out)); + assert (isequaln (infsup (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.recip; + testcases = testdata.NoSignal.infsup.("b-textToInterval"); for testcase = [testcases]' assert (isequaln (... - rdivide (1, testcase.in{1}), ... + infsup (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.recip; - in1 = vertcat (vertcat (testcases.in){:, 1}); + testcases = testdata.NoSignal.infsup.("b-textToInterval"); + in1 = vertcat (testcases.in); out = vertcat (testcases.out); - assert (isequaln (rdivide (1, in1), out)); + assert (isequaln (infsup (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.recip; + testcases = testdata.NoSignal.infsup.("b-numsToInterval"); in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -9678,284 +9697,70 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rdivide (1, in1), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsup/mpower.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsup/mpower.m + assert (isequaln (infsup (in1, in2), out)); +***** warning + testcases = testdata.PossiblyUndefinedOperation.infsup.("b-textToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsup (testcase.in{1}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:PossiblyUndefinedOperation"); + endfor +***** warning + testcases = testdata.UndefinedOperation.infsup.("b-textToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsup (testcase.in{1}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); + endfor +***** warning + testcases = testdata.UndefinedOperation.infsup.("b-numsToInterval"); + for testcase = [testcases]' + lastwarn ("", ""); + assert (isequaln (... + infsup (testcase.in{1}, testcase.in{2}), ... + testcase.out)); + assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); + endfor +117 tests, 117 passed, 0 known failure, 0 skipped +[inst/@infsup/mince.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mince.m +***** assert (isequal (mince (infsup (0, 10), 10), infsup (0 : 9, 1 : 10))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/atanh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/atanh.m ***** # from the documentation string -***** assert (isequal (infsup (magic (3)) ^ 2, infsup (magic (3) ^ 2))); +***** assert (atanh (infsup (.5)) == "[0x1.193EA7AAD030Ap-1, 0x1.193EA7AAD030Bp-1]"); ***** # correct use of signed zeros ***** test - x = mpower (infsup (eye (2)), 2); - assert (signbit (inf (x(1, 2)))); - assert (not (signbit (sup (x(1, 2))))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/empty.m] ->>>>> /build/octave-interval-3.2.1/inst/empty.m -***** assert (inf (empty ()), inf); -***** assert (sup (empty ()), -inf); -***** assert (decorationpart (empty ()), {"trv"}); -***** assert (inf (empty (5)), inf (5)); -***** assert (sup (empty (5)), -inf (5)); -***** assert (strcmp (decorationpart (empty (5)), "trv"), true (5)); -***** assert (inf (empty (5, 6)), inf (5, 6)); -***** assert (sup (empty (5, 6)), -inf (5, 6)); -***** assert (strcmp (decorationpart (empty (5, 6)), "trv"), true (5, 6)); -***** assert (inf (empty (5, 6, 7)), inf (5, 6, 7)); -***** assert (sup (empty (5, 6, 7)), -inf (5, 6, 7)); -***** assert (strcmp (decorationpart (empty (5, 6, 7)), "trv"), true (5, 6, 7)); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/entire.m] ->>>>> /build/octave-interval-3.2.1/inst/entire.m -***** assert (inf (entire ()), -inf); -***** assert (sup (entire ()), inf); -***** assert (decorationpart (entire ()), {"dac"}); -***** assert (inf (entire (5)), -inf (5)); -***** assert (sup (entire (5)), inf (5)); -***** assert (strcmp (decorationpart (entire (5)), "dac"), true (5)); -***** assert (inf (entire (5, 6)), -inf (5, 6)); -***** assert (sup (entire (5, 6)), inf (5, 6)); -***** assert (strcmp (decorationpart (entire (5, 6)), "dac"), true (5, 6)); -***** assert (inf (entire (5, 6, 7)), -inf (5, 6, 7)); -***** assert (sup (entire (5, 6, 7)), inf (5, 6, 7)); -***** assert (strcmp (decorationpart (entire (5, 6, 7)), "dac"), true (5, 6, 7)); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/verinvnonneg.m] ->>>>> /build/octave-interval-3.2.1/inst/verinvnonneg.m -***** assert (verinvnonneg (eye (1)), 1) -***** assert (verinvnonneg (eye (2)), 1) -***** assert (verinvnonneg (eye (3)), 1) -***** assert (verinvnonneg (eye (4)), 1) -***** assert (verinvnonneg (eye (5)), 1) -***** assert (verinvnonneg (eye (6)), 1) -***** assert (verinvnonneg (eye (7)), 1) -***** assert (verinvnonneg (eye (8)), 1) -***** assert (verinvnonneg (zeros (1)), 0) -***** assert (verinvnonneg (zeros (2)), 0) -***** assert (verinvnonneg (zeros (3)), 0) -***** assert (verinvnonneg (zeros (4)), 0) -***** assert (verinvnonneg (zeros (5)), 0) -***** assert (verinvnonneg (zeros (6)), 0) -***** assert (verinvnonneg (zeros (7)), 0) -***** assert (verinvnonneg (zeros (8)), 0) -***** assert (verinvnonneg (magic (7)), 0) -***** assert (verinvnonneg (infsup (-inf, inf)), -1) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/__check_crlibm__.m] ->>>>> /build/octave-interval-3.2.1/inst/__check_crlibm__.m -***** assert (__check_crlibm__ ()); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/ctc_union.m] ->>>>> /build/octave-interval-3.2.1/inst/ctc_union.m -***** function [fval, cx] = ctc_sin (y, x) - fval = sin (x); - y = intersect (y, fval); - cx = sinrev (y, x); -***** endfunction -***** function [fval, cx] = ctc_cos (y, x) - fval = cos (x); - y = intersect (y, fval); - cx = cosrev (y, x); -***** endfunction -***** shared c - c = ctc_union (@ctc_sin, 0, @ctc_cos, 0); -***** test - x = infsup (0); - y = infsup (0); - [fval, cx] = c (y, x); - assert (fval == 0); - assert (cx == 0) -***** test - x = infsup ("pi") / 2; - y = infsup (0); - [fval, cx] = c (y, x); - assert (fval == "[0, 1]"); - assert (cx == x); -***** test - x = infsup ("pi") / 4; - y = infsup (0); - [fval, cx] = c (y, x); - assert (fval > 0); - assert (isempty (cx)); -***** test - x = infsup (0, eps); - y = infsup (0); - [fval, cx] = c (y, x); - assert (fval == "[0, 1]"); - assert (cx == 0); -***** test - x = infsup ("[0, pi]") / 2; - y = infsup (0); - [fval, cx] = c (y, x); - assert (fval == "[0, 1]"); - assert (cx == x); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/vereigvec.m] ->>>>> /build/octave-interval-3.2.1/inst/vereigvec.m -***** test - A = [1 0 0; 0 1 1; 0 0 1]; - assert (vereigvec (A, [1; 0; 0]), 1); - assert (vereigvec (A, [0; 1; 0]), 1); - assert (vereigvec (A, [0; 0; 1]), 0); -***** test - A = magic (3); - [evc, lambda] = vereigvec (A, [1 1 1]); - assert (evc, 1); - assert (lambda == 15); - assert (vereigvec (A, [1; 0; 0]), 0); - assert (vereigvec (A, [0; 1; 0]), 0); - assert (vereigvec (A, [0; 0; 1]), 0); -***** test - A = magic (3) + infsup ("[-5, 5]"); - [evc, lambda, As] = vereigvec (A, [1 0 0]); - assert (evc, 1); - assert (lambda == "[3, 13]"); - assert (ismember ([8 1 6; 0 2 4; 0 5 -2], As)); - assert (max (max (wid (As))) < 1e-14); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/nai.m] ->>>>> /build/octave-interval-3.2.1/inst/nai.m -***** assert (isnai (nai ())); -***** assert (isnai (nai (2)), true (2)); -***** assert (isnai (nai (3, 4)), true (3, 4)); -***** assert (decorationpart (nai ()), {"ill"}); -***** assert (isnai (nai (2, 2, 2)), true (2, 2, 2)) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/hull.m] ->>>>> /build/octave-interval-3.2.1/inst/hull.m -***** assert (isnai (hull (nai))); -***** assert (isempty (hull (nan))); -***** assert (isequal (hull (2, nan, 3, 5), infsupdec (2, 5, "trv"))); -***** assert (isequal (hull ([1, 2, 3], [5; 0; 2]), infsupdec ([1, 2, 3; 0, 0, 0; 1, 2, 2], [5, 5, 5; 1, 2, 3; 2, 2, 3], "com"))); -***** assert (isequal (hull (magic (3), 10), infsupdec (magic (3), 10 (ones (3)), "com"))); -***** assert (isequal (hull (2, magic (3), [nan, 2, 3; nan, 1, 1; 99, 100, nan]), infsupdec ([2, 1, 2; 2, 1, 1; 2, 2, 2], [8, 2, 6; 3, 5, 7; 99, 100, 2], {"trv", "com", "com"; "trv", "com", "com"; "com", "com", "trv"}))); -***** assert (isnai (hull ([nai, 2])), logical ([1 0])); -***** assert (isnai (hull ([nai, 2], [nai, 3])), logical ([1 0])); -***** assert (isnai (hull ([nai, 2], nai)), logical ([1 1])); -***** assert (isnai (hull ([nai, 2], [2, nai])), logical ([1 1])); -***** assert (isequal (hull (zeros (2, 2, 2, 2), ones (2, 2, 2, 2)), infsupdec (zeros (2, 2, 2, 2), ones (2, 2, 2, 2)))) -***** assert (isequal (hull (zeros (2, 1, 4, 1), ones (1, 3, 1, 5), -1), infsupdec (-ones (2, 3, 4, 5), ones (2, 3, 4, 5)))) -***** assert (isnai (hull (zeros (2, 2, 2, 2), ones (2, 2, 2, 2), nai)), logical (ones (2, 2, 2, 2))) -***** error hull (1:2, 1:3); -***** error hull ((1:2)', (1:3)'); -***** error hull (ones (2, 2, 2), ones (2, 2, 3)); -***** test "from the documentation string"; - assert (isequal (hull (1, 2, 3, 4), infsupdec (1, 4, "com"))); - assert (isequal (hull (empty, entire), infsupdec (-inf, inf, "trv"))); - assert (isequal (hull ("0.1", "pi", "e"), infsupdec (0.1 - eps / 16, pi + eps * 2, "com"))); - assert (isequal (hull ("[0, 3]", "[4, 7]"), infsupdec ("[0, 7]_com"))); -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/@infsupdec/prepad.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/prepad.m -***** assert (isequal (prepad (infsupdec (2:4), 4, 1), infsupdec (1:4))); -***** assert (isequal (prepad (infsupdec (0:2), 2, 1), infsupdec (1:2))); -***** assert (isequal (prepad (infsupdec (0), 10, 0, 3), infsupdec (zeros (1, 1, 10)))); -***** assert (isequal (prepad (infsupdec (zeros (1, 2, 2)), 3), infsupdec (zeros (1, 3, 2)))); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/triu.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/triu.m -***** assert (triu (infsupdec (magic (10))) == triu (magic (10))); -***** assert (triu (infsupdec (magic (10)), 1) == triu (magic (10), 1)); -***** assert (triu (infsupdec (magic (10)), -1) == triu (magic (10), -1)); -***** assert (triu (infsupdec (magic (10)), 0, "pack") == triu (magic (10), 0, "pack")); -***** test - A = infsupdec (zeros (3), "trv"); - assert (decorationpart (triu (A)), {"trv", "trv", "trv"; "com", "trv", "trv"; "com", "com", "trv"}); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mod.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mod.m -***** assert (isequal (mod (infsupdec (), infsupdec ()), infsupdec ())); -***** assert (isequal (mod (infsupdec (0), infsupdec ()), infsupdec ())); -***** assert (isequal (mod (infsupdec (), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (0), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (1), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (1, 2), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (0, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (1, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (mod (infsupdec (0), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (0, 1)), infsupdec (0, "trv"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (1, 2)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (0, inf)), infsupdec (0, "trv"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (1, inf)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (realmax, inf)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (2), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (4), infsupdec (2)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (6), infsupdec (3)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (8), infsupdec (2)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (9), infsupdec (3)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 2)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 4)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 8)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 16)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (realmax), infsupdec (realmax / 32)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0.1), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0.1 * 2), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0.1 * 4), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (pi)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (pi / 2)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (pi / 4)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pow2 (-1074)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pow2 (-1073)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (pow2 (-1072)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (2)), infsupdec (1))); -***** assert (isequal (mod (infsupdec (0.5), infsupdec (1)), infsupdec (0.5))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); -***** assert (isequal (mod (infsupdec (1), infsupdec (2, 3)), infsupdec (1))); -***** assert (isequal (mod (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); -***** assert (isequal (mod (infsupdec (0.5), infsupdec (1, 2)), infsupdec (0.5))); -***** assert (isequal (mod (infsupdec (0.5), infsupdec (1, inf)), infsupdec (0.5, "dac"))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); -***** assert (isequal (mod (infsupdec (pi), infsupdec (3.15, inf)), infsupdec (pi, "dac"))); -***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); -***** assert (isequal (mod (infsupdec (0, 2), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); -***** assert (isequal (mod (infsupdec (0, 1), infsupdec (0, 2)), infsupdec (0, 1, "trv"))); -***** assert (isequal (mod (infsupdec (0, realmax), infsupdec (0, realmax)), infsupdec (0, realmax, "trv"))); -***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (realmax, inf)), infsupdec (0, inf, "def"))); -***** assert (isequal (mod (infsupdec (0, inf), infsupdec (0, inf)), infsupdec (0, inf, "trv"))); -***** assert (isequal (mod (infsupdec (0), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (0, 1), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (1, 2), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (0, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (1, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (realmax, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (0, 1)), infsupdec (0, 0.5, "trv"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (1, 2)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (0, inf)), infsupdec (0, 1, "trv"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (1, inf)), infsupdec (0, 1, "def"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); -***** assert (isequal (mod (infsupdec (1), infsupdec (realmax, inf)), infsupdec (1, "dac"))); -66 tests, 66 passed, 0 known failure, 0 skipped -[inst/@infsupdec/power.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/power.m -***** # from the documentation string -***** assert (isequal (infsupdec (-5, 6) .^ infsupdec (2, 3), infsupdec (-125, 216, "trv"))); + x = atanh (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sqr; + testcases = testdata.NoSignal.infsup.atanh; for testcase = [testcases]' assert (isequaln (... - power (testcase.in{1}, 2), ... + atanh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sqr; + testcases = testdata.NoSignal.infsup.atanh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (power (in1, 2), out)); + assert (isequaln (atanh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqr; + testcases = testdata.NoSignal.infsup.atanh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -9966,57 +9771,39 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (power (in1, 2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/abs.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/abs.m + assert (isequaln (atanh (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/asin.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/asin.m ***** # Empty interval -***** assert (isequal (abs (infsupdec ()), infsupdec ())); -***** # Singleton intervals -***** assert (isequal (abs (infsupdec (1)), infsupdec (1))); -***** assert (isequal (abs (infsupdec (0)), infsupdec (0))); -***** assert (isequal (abs (infsupdec (-1)), infsupdec (1))); -***** assert (isequal (abs (infsupdec (realmax)), infsupdec (realmax))); -***** assert (isequal (abs (infsupdec (realmin)), infsupdec (realmin))); -***** assert (isequal (abs (infsupdec (-realmin)), infsupdec (realmin))); -***** assert (isequal (abs (infsupdec (-realmax)), infsupdec (realmax))); -***** # Bounded intervals -***** assert (isequal (abs (infsupdec (1, 2)), infsupdec (1, 2))); -***** assert (isequal (abs (infsupdec (0, 1)), infsupdec (0, 1))); -***** assert (isequal (abs (infsupdec (-1, 1)), infsupdec (0, 1))); -***** assert (isequal (abs (infsupdec (-1, 0)), infsupdec (0, 1))); -***** assert (isequal (abs (infsupdec (-2, -1)), infsupdec (1, 2))); -***** # Unbounded intervals -***** assert (isequal (abs (infsupdec (0, inf)), infsupdec (0, inf))); -***** assert (isequal (abs (infsupdec (-inf, inf)), infsupdec (0, inf))); -***** assert (isequal (abs (infsupdec (-inf, 0)), infsupdec (0, inf))); -***** assert (isequal (abs (infsupdec (1, inf)), infsupdec (1, inf))); -***** assert (isequal (abs (infsupdec (-1, inf)), infsupdec (0, inf))); -***** assert (isequal (abs (infsupdec (-inf, -1)), infsupdec (1, inf))); -***** assert (isequal (abs (infsupdec (-inf, 1)), infsupdec (0, inf))); +***** assert (asin (infsup ()) == infsup ()); ***** # from the documentation string -***** assert (isequal (abs (infsupdec (2.5, 3.5)), infsupdec (2.5, 3.5))); -***** assert (isequal (abs (infsupdec (-0.5, 5.5)), infsupdec (0, 5.5))); +***** assert (asin (infsup (.5)) == "[0x1.0C152382D7365p-1, 0x1.0C152382D7366p-1]"); +***** # correct use of signed zeros +***** test + x = asin (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.abs; + testcases = testdata.NoSignal.infsup.asin; for testcase = [testcases]' assert (isequaln (... - abs (testcase.in{1}), ... + asin (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.abs; + testcases = testdata.NoSignal.infsup.asin; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (abs (in1), out)); + assert (isequaln (asin (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.abs; + testcases = testdata.NoSignal.infsup.asin; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10027,60 +9814,64 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (abs (in1), out)); -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/@infsupdec/absrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/absrev.m -***** # Empty interval -***** assert (isequal (absrev (infsupdec ()), infsupdec ())); -***** assert (isequal (absrev (infsupdec (0, 1), infsupdec ()), infsupdec ())); -***** assert (isequal (absrev (infsupdec (0, 1), infsupdec (7, 9)), infsupdec ())); -***** assert (isequal (absrev (infsupdec (), infsupdec (0, 1)), infsupdec ())); -***** assert (isequal (absrev (infsupdec (-2, -1)), infsupdec ())); -***** # Singleton intervals -***** assert (isequal (absrev (infsupdec (1)), infsupdec (-1, 1, "trv"))); -***** assert (isequal (absrev (infsupdec (0)), infsupdec (0, "trv"))); -***** assert (isequal (absrev (infsupdec (-1)), infsupdec ())); -***** assert (isequal (absrev (infsupdec (realmax)), infsupdec (-realmax, realmax, "trv"))); -***** assert (isequal (absrev (infsupdec (realmin)), infsupdec (-realmin, realmin, "trv"))); -***** assert (isequal (absrev (infsupdec (-realmin)), infsupdec ())); -***** assert (isequal (absrev (infsupdec (-realmax)), infsupdec ())); -***** # Bound intervals -***** assert (isequal (absrev (infsupdec (1, 2)), infsupdec (-2, 2, "trv"))); -***** assert (isequal (absrev (infsupdec (1, 2), infsupdec (0, 2)), infsupdec (1, 2, "trv"))); -***** assert (isequal (absrev (infsupdec (0, 1), infsupdec (-0.5, 2)), infsupdec (-0.5, 1, "trv"))); -***** assert (isequal (absrev (infsupdec (-1, 1)), infsupdec (-1, 1, "trv"))); -***** assert (isequal (absrev (infsupdec (-1, 0)), infsupdec (0, "trv"))); -***** # Unbound intervals -***** assert (isequal (absrev (infsupdec (0, inf)), infsupdec (-inf, inf, "trv"))); -***** assert (isequal (absrev (infsupdec (-inf, inf)), infsupdec (-inf, inf, "trv"))); -***** assert (isequal (absrev (infsupdec (-inf, 0)), infsupdec (0, "trv"))); -***** assert (isequal (absrev (infsupdec (1, inf), infsupdec (-inf, 0)), infsupdec (-inf, -1, "trv"))); -***** assert (isequal (absrev (infsupdec (-1, inf)), infsupdec (-inf, inf, "trv"))); -***** assert (isequal (absrev (infsupdec (-inf, -1)), infsupdec ())); -***** assert (isequal (absrev (infsupdec (-inf, 1)), infsupdec (-1, 1, "trv"))); + assert (isequaln (asin (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/polyval.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/polyval.m +***** assert (polyval (infsup (42), 0) == 42); +***** assert (polyval (infsup ([42 42]), 0) == 42); +***** assert (polyval (infsup ([42 42]), 1) == 84); +***** assert (polyval (infsup ([42 42]), -1) == 0); +***** assert (polyval (infsup ([-42 42 42]), .5) == -42*0.5^2 + 42*0.5 + 42); +***** assert (polyval (infsup (vec (pascal (3))), 0.1) == "[0X6.502E9A7231A08P+0, 0X6.502E9A7231A0CP+0]"); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/fminsearch.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fminsearch.m +***** test + sqr = @(x) x .^ 2; + [x, y] = fminsearch (sqr, infsup (-inf, inf)); + assert (y == 0); +***** demo + clf + hold on + draw = @(x) plot (x(1), x(2), [238 232 213]/255, [88 110 117]/255); + f = @(x) (x(1) - 2) .^ 2 - x(2) .^ 2; + fminsearch (f, infsup ("[1, 3] [0, 1]"), ... + optimset ('OutputFcn', draw)); + hold off +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/realsqrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/realsqrt.m ***** # from the documentation string -***** assert (isequal (absrev (infsupdec (-2, 1)), infsupdec (-1, 1, "trv"))); +***** assert (realsqrt (infsup (-6, 4)) == infsup (0, 2)); +***** # correct use of signed zeros +***** test + x = realsqrt (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = realsqrt (infsup (0, 2)); + assert (signbit (inf (x))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Scalar evaluation with one argument - testcases = testdata.NoSignal.infsupdec.absRev; + # Scalar evaluation + testcases = testdata.NoSignal.infsup.sqrt; for testcase = [testcases]' assert (isequaln (... - absrev (testcase.in{1}), ... + realsqrt (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation with one argument - testcases = testdata.NoSignal.infsupdec.absRev; + # Vector evaluation + testcases = testdata.NoSignal.infsup.sqrt; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (absrev (in1), out)); + assert (isequaln (realsqrt (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.absRev; + testcases = testdata.NoSignal.infsup.sqrt; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10091,63 +9882,52 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (absrev (in1), out)); -***** test - # Scalar evaluation with two arguments - testcases = testdata.NoSignal.infsupdec.absRevBin; - for testcase = [testcases]' - assert (isequaln (... - absrev (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - endfor -***** test - # Vector evaluation with two arguments - testcases = testdata.NoSignal.infsupdec.absRevBin; - in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); - out = vertcat (testcases.out); - assert (isequaln (absrev (in1, in2), out)); + assert (isequaln (realsqrt (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/isrow.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/isrow.m +***** assert (not (isrow (infsup ([])))); +***** assert (isrow (infsup (0))); +***** assert (isrow (infsup (zeros (1, 2)))); +***** assert (not (isrow (infsup (zeros (2, 1))))); +***** assert (not (isrow (infsup (zeros (5))))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/expm.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/expm.m +***** # from the paper ***** test - # N-dimensional array evaluation with two arguments - testcases = testdata.NoSignal.infsupdec.absRevBin; - in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); - out = vertcat (testcases.out); - # Reshape data - i = -1; - do - i = i + 1; - testsize = factor (numel (in1) + i); - until (numel (testsize) > 2) - in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); - out = reshape ([out; out(1:i)], testsize); - assert (isequaln (absrev (in1, in2), out)); -31 tests, 31 passed, 0 known failure, 0 skipped -[inst/@infsupdec/atan.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan.m + A = infsup ([0 1; 0 -3], [0 1; 0 -2]); + assert (all (all (subset (infsup ([1, 0.316738; 0, 0.0497871], [1, 0.432332; 0, 0.135335]), expm (A))))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/sinh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sinh.m ***** # from the documentation string -***** assert (isequal (atan (infsupdec (1)), infsupdec ("[0x1.921FB54442D18p-1, 0x1.921FB54442D19p-1]"))); +***** assert (sinh (infsup (1)) == "[0x1.2CD9FC44EB982, 0x1.2CD9FC44EB983]"); +***** # correct use of signed zeros +***** test + x = sinh (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.atan; + testcases = testdata.NoSignal.infsup.sinh; for testcase = [testcases]' assert (isequaln (... - atan (testcase.in{1}), ... + sinh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.atan; + testcases = testdata.NoSignal.infsup.sinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (atan (in1), out)); + assert (isequaln (sinh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.atan; + testcases = testdata.NoSignal.infsup.sinh; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10158,53 +9938,32 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atan (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/subsref.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subsref.m -***** assert (isequal (infsupdec (magic (3))([1, 2, 3]), infsupdec (magic (3)([1, 2, 3])))); -***** test - x = infsupdec (magic (3), magic (3) + 1); - assert (x(1) == infsupdec (8, 9)); -***** test - x = infsupdec (magic (3), magic (3) + 1); - assert (x(:, 2) == infsupdec ([1; 5; 9], [2; 6; 10])); -***** assert (infsupdec (3).inf, 3); -***** test - x = infsupdec (magic (3), magic (3) + 1); - assert (x.inf, magic (3)); -***** assert (isequal (reshape (infsupdec (1:16), 2, 2, 2, 2)(2, 7), infsupdec (14))) -***** assert (isequal (reshape (infsupdec (1:16), 2, 2, 2, 2)(:, 2, 2, 2), infsupdec ([15; 16]))) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sech.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sech.m -***** # from the documentation string -***** assert (isequal (sech (infsupdec (1)), infsupdec ("[0x1.4BCDC50ED6BE7p-1, 0x1.4BCDC50ED6BE8p-1]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/pow10.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow10.m + assert (isequaln (sinh (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/tanrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/tanrev.m ***** # from the documentation string -***** assert (isequal (pow10 (infsupdec (5)), infsupdec (100000))); +***** assert (tanrev (infsup (0), infsup (2, 4)) == infsup ("pi")); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.exp10; + testcases = testdata.NoSignal.infsup.tanRev; for testcase = [testcases]' assert (isequaln (... - pow10 (testcase.in{1}), ... + tanrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.exp10; + testcases = testdata.NoSignal.infsup.tanRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (pow10 (in1), out)); + assert (isequaln (tanrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.exp10; + testcases = testdata.NoSignal.infsup.tanRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10212,48 +9971,28 @@ do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2 || i == numel (in1)) + until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow10 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/postpad.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/postpad.m -***** assert (isequal (postpad (infsupdec (1:3), 4, 4), infsupdec (1:4))); -***** assert (isequal (postpad (infsupdec (1:3), 2, 4), infsupdec (1:2))); -***** assert (isequal (postpad (infsupdec (0), 10, 0, 3), infsupdec (zeros (1, 1, 10)))); -***** assert (isequal (postpad (infsupdec (zeros (1, 2, 2)), 3), infsupdec (zeros (1, 3, 2)))); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/csch.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/csch.m -***** # from the documentation string -***** assert (isequal (csch (infsupdec (1)), infsupdec ("[0x1.B3AB8A78B90Cp-1, 0x1.B3AB8A78B90C1p-1]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cancelminus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cancelminus.m -***** # from the documentation string -***** assert (isequal (cancelminus (infsupdec (2, 3), infsupdec (1, 1.5)), infsupdec (1, 1.5, "trv"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (tanrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.cancelMinus; + testcases = testdata.NoSignal.infsup.tanRevBin; for testcase = [testcases]' assert (isequaln (... - cancelminus (testcase.in{1}, testcase.in{2}), ... + tanrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.cancelMinus; + testcases = testdata.NoSignal.infsup.tanRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cancelminus (in1, in2), out)); + assert (isequaln (tanrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.cancelMinus; + testcases = testdata.NoSignal.infsup.tanRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -10266,35 +10005,42 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cancelminus (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/max.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/max.m + assert (isequaln (tanrev (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/norm.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/norm.m +***** test + A = infsup ("0 [Empty] [0, 1] 1"); + assert (isequal (norm (A, 0, "cols"), infsup ("0 [Empty] [0, 1] 1"))); +***** assert (norm (infsup (magic (3)), inf, 1) == 45); +***** assert (norm (infsup (-magic (3), magic (3)), inf, 1) == "[0, 45]"); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/mid.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mid.m +***** assert (mid (infsup (-inf, inf)), 0); ***** # from the documentation string -***** assert (isequal (max (infsupdec (2, 3), infsupdec (1, 2)), infsupdec (2, 3))); +***** assert (mid (infsup (2.5, 3.5)), 3); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.max; + testcases = testdata.NoSignal.infsup.mid; for testcase = [testcases]' assert (isequaln (... - max (testcase.in{1}, testcase.in{2}), ... + mid (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.max; + testcases = testdata.NoSignal.infsup.mid; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (max (in1, in2), out)); + assert (isequaln (mid (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.max; + testcases = testdata.NoSignal.infsup.mid; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10303,48 +10049,25 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (max (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/linspace.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/linspace.m -***** assert (isequal (linspace (infsupdec (0), infsupdec (10), 9), infsupdec (linspace (0, 10, 9)))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/intervalpart.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/intervalpart.m -***** warning id=interval:IntvlPartOfNaI - assert (intervalpart (nai ()) == infsup ()); -***** assert (intervalpart (infsupdec (2, 3)) == infsup (2, 3)); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (mid (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.intervalPart; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.mid; for testcase = [testcases]' assert (isequaln (... - intervalpart (testcase.in{1}), ... + mid (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.intervalPart; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.mid; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (intervalpart (in1), out)); -***** warning - testcases = testdata.IntvlPartOfNaI.infsupdec.intervalPart; - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - intervalpart (testcase.in{1}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:IntvlPartOfNaI"); - endfor + assert (isequaln (mid (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.intervalPart; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.mid; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10355,52 +10078,43 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (intervalpart (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mulrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mulrev.m -***** # IEEE Std 1788-2015 mulRevToPair examples -***** test - [u, v] = mulrev (infsupdec (0), infsupdec (1, 2)); - assert (isempty (u) & isempty (v)); -***** test - [u, v] = mulrev (infsupdec (0), infsupdec (0, 1)); - assert (isentire (u) & isempty (v)); -***** test - [u, v] = mulrev (infsupdec (1), infsupdec (1, 2)); - assert (isequal (u, infsupdec (1, 2)) & isempty (v)); -***** test - [u, v] = mulrev (infsupdec (1, inf), infsupdec (1)); - assert (isequal (u, infsupdec (0, 1, "dac")) & isempty (v)); + assert (isequaln (mid (in1), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/sin.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sin.m +***** # from the documentation string +***** assert (sin (infsup (1)) == "[0x1.AED548F090CEEp-1, 0x1.AED548F090CEFp-1]"); +***** # correct use of signed zeros ***** test - [u, v] = mulrev (infsupdec (-1, 1), infsupdec (1, 2)); - assert (isequal (u, infsupdec (-inf, -1, "trv")) & isequal (v, infsupdec (1, inf, "trv"))); + x = sin (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** # test fix for bug #51283 ***** test - [u, v] = mulrev (infsupdec (-inf, inf), infsupdec (1)); - assert (isequal (u, infsupdec (-inf, 0, "trv")) & isequal (v, infsupdec (0, inf, "trv"))); + x = sin (infsup ([0, 0])); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair1; + testcases = testdata.NoSignal.infsup.sin; for testcase = [testcases]' assert (isequaln (... - nthargout (1, 2, @mulrev, testcase.in{1}, testcase.in{2}), ... + sin (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair1; + testcases = testdata.NoSignal.infsup.sin; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); + assert (isequaln (sin (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair1; + testcases = testdata.NoSignal.infsup.sin; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10409,27 +10123,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); + assert (isequaln (sin (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/min.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/min.m +***** # from the documentation string +***** assert (min (infsup (2, 3), infsup (1, 2)) == infsup (1, 2)); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair2; + testcases = testdata.NoSignal.infsup.min; for testcase = [testcases]' assert (isequaln (... - nthargout (2, @mulrev, testcase.in{1}, testcase.in{2}), ... + min (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair2; + testcases = testdata.NoSignal.infsup.min; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); + assert (isequaln (min (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mulRevToPair2; + testcases = testdata.NoSignal.infsup.min; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -10442,25 +10163,182 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); + assert (isequaln (min (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/dot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/dot.m +***** # matrix × matrix +***** assert (dot (infsup (magic (3)), magic (3)) == [89, 107, 89]); +***** assert (dot (infsup (magic (3)), magic (3), 1) == [89, 107, 89]); +***** assert (dot (infsup (magic (3)), magic (3), 2) == [101; 83; 101]); +***** # matrix × vector +***** assert (dot (infsup (magic (3)), [1, 2, 3]) == [28; 34; 28]); +***** assert (dot (infsup (magic (3)), [1, 2, 3], 1) == [15, 30, 45]); +***** assert (dot (infsup (magic (3)), [1, 2, 3], 2) == [28; 34; 28]); +***** assert (dot (infsup (magic (3)), [1; 2; 3]) == [26, 38, 26]); +***** assert (dot (infsup (magic (3)), [1; 2; 3], 1) == [26, 38, 26]); +***** assert (dot (infsup (magic (3)), [1; 2; 3], 2) == [15; 30; 45]); +***** # matrix × scalar +***** assert (dot (infsup (magic (3)), 42) == [630, 630, 630]); +***** assert (dot (infsup (magic (3)), 42, 1) == [630, 630, 630]); +***** assert (dot (infsup (magic (3)), 42, 2) == [630; 630; 630]); +***** # vector x vector +***** assert (dot (infsup([1, 2, 3]), [4, 5, 6]) == 32); +***** assert (dot (infsup([1, 2, 3]), [4, 5, 6], 1) == [4, 10, 18]); +***** assert (dot (infsup([1, 2, 3]), [4, 5, 6], 2) == 32); +***** assert (dot (infsup([1; 2; 3]), [4; 5; 6]) == 32); +***** assert (dot (infsup([1; 2; 3]), [4; 5; 6], 1) == 32); +***** assert (dot (infsup([1; 2; 3]), [4; 5; 6], 2) == [4; 10; 18]); +***** # vector × scalar +***** assert (dot (infsup ([1, 2, 3]), 42) == 252); +***** assert (dot (infsup ([1, 2, 3]), 42, 1) == [42, 84, 126]); +***** assert (dot (infsup ([1, 2, 3]), 42, 2) == 252); +***** assert (dot (infsup ([1; 2; 3]), 42) == 252); +***** assert (dot (infsup ([1; 2; 3]), 42, 1) == 252); +***** assert (dot (infsup ([1; 2; 3]), 42, 2) == [42; 84; 126]); +***** # N-dimensional arrays +***** test + x = infsup (reshape (1:24, 2, 3, 4)); + y = infsup (2.*ones (2, 3, 4)); + assert (dot (x, y, 3) == infsup ([80, 96, 112; 88, 104, 120])) +***** test + x = infsup (ones (2, 2, 2, 2)); + y = infsup (1); + assert (size (dot (x, y)), [1, 2, 2, 2]); + assert (size (dot (x, y, 1)), [1, 2, 2, 2]); + assert (size (dot (x, y, 2)), [2, 1, 2, 2]); + assert (size (dot (x, y, 3)), [2, 2, 1, 2]); + assert (size (dot (x, y, 4)), [2, 2, 2]); + assert (size (dot (x, y, 5)), [2, 2, 2, 2]); +***** # from the documentation string +***** assert (dot ([infsup(1), 2, 3], [infsup(2), 3, 4]) == 20); +***** assert (dot (infsup ([realmax; realmin; realmax]), [1; -1; -1], 1) == -realmin); +28 tests, 28 passed, 0 known failure, 0 skipped +[inst/@infsup/display.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/display.m +***** # Test for the display function are also largely done with the help of the +***** # doctest package. +***** xtest + assert (evalc ("display (infsup ())"), "[Empty]\n\n"); + assert (evalc ("display (infsupdec ())"), "[Empty]_trv\n\n"); +***** test + assert (evalc ("a = infsup ()"), "a = [Empty]\n"); + assert (evalc ("b = infsupdec ()"), "b = [Empty]_trv\n"); +***** xtest + assert (evalc ("a = infsup (); display (a)"), "a = [Empty]\n"); + assert (evalc ("b = infsupdec (); display (b)"), "b = [Empty]_trv\n"); +***** xtest + if (ispc ()) + assert (evalc ("display (infsup (magic (3)))"), ... + ["3x3 interval matrix\n", ... + "\n", ... + " [8] [1] [6]\n", ... + " [3] [5] [7]\n", ... + " [4] [9] [2]\n", ... + "\n"]); + else + assert (evalc ("display (infsup (magic (3)))"), ... + ["3×3 interval matrix\n", ... + "\n", ... + " [8] [1] [6]\n", ... + " [3] [5] [7]\n", ... + " [4] [9] [2]\n", ... + "\n"]); + endif +***** test + if (ispc ()) + assert (evalc ("infsup (magic (3))"), ... + ["ans = 3x3 interval matrix\n", ... + "\n", ... + " [8] [1] [6]\n", ... + " [3] [5] [7]\n", ... + " [4] [9] [2]\n", ... + "\n"]); + else + assert (evalc ("infsup (magic (3))"), ... + ["ans = 3×3 interval matrix\n", ... + "\n", ... + " [8] [1] [6]\n", ... + " [3] [5] [7]\n", ... + " [4] [9] [2]\n", ... + "\n"]); + endif +***** test + if (ispc ()) + assert (evalc ("infsup ('pi')"), "ans = [3.1415, 3.1416]\n"); + else + assert (evalc ("infsup ('pi')"), "ans ⊂ [3.1415, 3.1416]\n"); + endif +***** test + if (ispc ()) + assert (evalc ("infsup (1:3)"), ... + ["ans = 1x3 interval vector\n", ... + "\n", ... + " [1] [2] [3]\n", ... + "\n"]); + else + assert (evalc ("infsup (1:3)"), ... + ["ans = 1×3 interval vector\n", ... + "\n", ... + " [1] [2] [3]\n", ... + "\n"]); + endif +***** test + if (ispc ()) + assert (evalc ("infsup (ones(2, 2, 2))"), ... + ["ans = 2x2x2 interval array\n", ... + "\n", ... + "ans(:,:,1) =\n", ... + "\n", ... + " [1] [1]\n", ... + " [1] [1]\n", ... + "\n", ... + "ans(:,:,2) =\n", ... + "\n", ... + " [1] [1]\n", ... + " [1] [1]\n", ... + "\n"]); + else + assert (evalc ("infsup (ones(2, 2, 2))"), ... + ["ans = 2×2×2 interval array\n", ... + "\n", ... + "ans(:,:,1) =\n", ... + "\n", ... + " [1] [1]\n", ... + " [1] [1]\n", ... + "\n", ... + "ans(:,:,2) =\n", ... + "\n", ... + " [1] [1]\n", ... + " [1] [1]\n", ... + "\n"]); + endif +warning: test: file /build/octave-interval-3.2.1/inst/@infsup/display.m leaked global variables: current_print_indent_level +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/pownrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/pownrev.m +***** assert (pownrev (infsup (25, 36), infsup (0, inf), 2) == infsup (5, 6)); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mulRev; + testcases = testdata.NoSignal.infsup.pownRev; for testcase = [testcases]' assert (isequaln (... - mulrev (testcase.in{1}, testcase.in{2}), ... + pownrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mulRev; + testcases = testdata.NoSignal.infsup.pownRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (mulrev (in1, in2), out)); + assert (isequaln (pownrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mulRev; + testcases = testdata.NoSignal.infsup.pownRev; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -10473,26 +10351,26 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mulrev (in1, in2), out)); + assert (isequaln (pownrev (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mulRevTen; + testcases = testdata.NoSignal.infsup.pownRevBin; for testcase = [testcases]' assert (isequaln (... - mulrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + pownrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mulRevTen; + testcases = testdata.NoSignal.infsup.pownRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (mulrev (in1, in2, in3), out)); + assert (isequaln (pownrev (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mulRevTen; + testcases = testdata.NoSignal.infsup.pownRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); in3 = vertcat (vertcat (testcases.in){:, 3}); @@ -10507,34 +10385,120 @@ in2 = reshape ([in2; in2(1:i)], testsize); in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (mulrev (in1, in2, in3), out)); -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/@infsupdec/asinh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/asinh.m -***** # from the documentation string -***** assert (isequal (asinh (infsupdec (1)), infsupdec ("[0x1.C34366179D426p-1, 0x1.C34366179D427p-1]"))); + assert (isequaln (pownrev (in1, in2, in3), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/isscalar.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/isscalar.m +***** assert (not (isscalar (infsup ([])))); +***** assert (isscalar (infsup (0))); +***** assert (not (isscalar (infsup (zeros (1, 2))))); +***** assert (not (isscalar (infsup (zeros (2, 1))))); +***** assert (not (isscalar (infsup (zeros (5))))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/numel.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/numel.m +***** assert (numel (infsup ([])), 0); +***** assert (numel (infsup (0)), 1); +***** assert (numel (infsup (zeros (3, 1))), 3); +***** assert (numel (infsup (zeros (1, 4))), 4); +***** assert (numel (infsup (zeros (3, 4))), 12); +***** assert (numel (infsup (ones (2, 3)), 3:5), 3); +***** assert (numel (infsup (ones (2, 3)), ":", 2), 2); +***** assert (numel (infsup (ones (2, 3)), 2, ":"), 3); +***** # numel is called implicitly during this subsref expression (see bug #53375) +***** assert (infsup ()(:).inf, inf); +***** error numel (1, infsup(1)); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/@infsup/overlap.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/overlap.m +***** test + [s, n] = overlap (infsup (), infsup ()); + assert (s, "bothEmpty"); + assert (n, uint16 (32768)); +***** test + [s, n] = overlap (infsup (), infsup (0)); + assert (s, "firstEmpty"); + assert (n, uint16 (16384)); +***** test + [s, n] = overlap (infsup (0), infsup ()); + assert (s, "secondEmpty"); + assert (n, uint16 (8192)); +***** test + [s, n] = overlap (infsup (1, 2), infsup (3, 4)); + assert (s, "before"); + assert (n, uint16 (4096)); +***** test + [s, n] = overlap (infsup (1, 2), infsup (2, 3)); + assert (s, "meets"); + assert (n, uint16 (2048)); +***** test + [s, n] = overlap (infsup (1, 3), infsup (2, 4)); + assert (s, "overlaps"); + assert (n, uint16 (1024)); +***** test + [s, n] = overlap (infsup (1, 2), infsup (1, 3)); + assert (s, "starts"); + assert (n, uint16 (512)); +***** test + [s, n] = overlap (infsup (2, 3), infsup (1, 4)); + assert (s, "containedBy"); + assert (n, uint16 (256)); +***** test + [s, n] = overlap (infsup (2, 3), infsup (1, 3)); + assert (s, "finishes"); + assert (n, uint16 (128)); +***** test + [s, n] = overlap (infsup (1, 2), infsup (1, 2)); + assert (s, "equals"); + assert (n, uint16 (64)); +***** test + [s, n] = overlap (infsup (1, 3), infsup (2, 3)); + assert (s, "finishedBy"); + assert (n, uint16 (32)); +***** test + [s, n] = overlap (infsup (1, 4), infsup (2, 3)); + assert (s, "contains"); + assert (n, uint16 (16)); +***** test + [s, n] = overlap (infsup (1, 3), infsup (1, 2)); + assert (s, "startedBy"); + assert (n, uint16 (8)); +***** test + [s, n] = overlap (infsup (2, 4), infsup (1, 3)); + assert (s, "overlappedBy"); + assert (n, uint16 (4)); +***** test + [s, n] = overlap (infsup (2, 3), infsup (1, 2)); + assert (s, "metBy"); + assert (n, uint16 (2)); +***** test + [s, n] = overlap (infsup (3, 4), infsup (1, 2)); + assert (s, "after"); + assert (n, uint16 (1)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.asinh; + testcases = testdata.NoSignal.infsup.overlap; for testcase = [testcases]' assert (isequaln (... - asinh (testcase.in{1}), ... + overlap (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.asinh; + testcases = testdata.NoSignal.infsup.overlap; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); - assert (isequaln (asinh (in1), out)); + in2 = vertcat (vertcat (testcases.in){:, 2}); + out = {testcases.out}'; + assert (isequaln (overlap (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.asinh; + testcases = testdata.NoSignal.infsup.overlap; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = vertcat (testcases.out); + in2 = vertcat (vertcat (testcases.in){:, 2}); + out = {testcases.out}'; # Reshape data i = -1; do @@ -10542,67 +10506,46 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (asinh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/erf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/erf.m -***** # from the documentation string -***** assert (erf (infsupdec (1)) == "[0x1.AF767A741088Ap-1, 0x1.AF767A741088Bp-1]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/bitunpack.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/bitunpack.m -***** test - littleendian = bitunpack (uint16 (1))(1); - b = zeros (1, 136); - if (littleendian) - b([52, 63, 117, 127, 133]) = 1; - else - b([7, 12, 71, 77, 133]) = 1; - endif - assert (bitunpack (infsupdec (3, 4)), logical (b)); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/gammaln.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gammaln.m -***** assert (isequal (gammaln (infsupdec (-inf, inf)), infsupdec ("[-0x1.F19B9BCC38A42p-4, +Inf]_trv"))); + assert (isequaln (overlap (in1, in2), out)); +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/@infsup/mtimes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mtimes.m ***** # from the documentation string -***** assert (isequal (gammaln (infsupdec (1.5)), infsupdec ("[-0x1.EEB95B094C192p-4, -0x1.EEB95B094C191p-4]_com"))); +***** assert (infsup ([1, 2; 7, 15], [2, 2; 7.5, 15]) * infsup ([3, 3; 0, 1], [3, 3.25; 0, 2]) == infsup ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375])); +***** # matrix multiplication using BLAS routines +***** assert (mtimes (infsup ([1, 2; 7, 15], [2, 2; 7.5, 15]), infsup ([3, 3; 0, 1], [3, 3.25; 0, 2]), 'valid') == infsup ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375])); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cot.m +[inst/@infsup/powrev2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/powrev2.m ***** # from the documentation string -***** assert (isequal (cot (infsupdec (1)), infsupdec ("[0x1.48C05D04E1CFDp-1, 0x1.48C05D04E1CFEp-1]"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/polyval.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/polyval.m -***** assert (isequal (polyval (infsupdec (3, "trv"), 0), infsupdec (3, "trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/le.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/le.m -***** assert (le (infsupdec (1, 3), infsupdec (3))); +***** assert (powrev2 (infsup (2, 5), infsup (3, 6)) == "[0x1.5D7E8F22BA886p-1, 0x1.4AE00D1CFDEB5p1]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.less; + testcases = testdata.NoSignal.infsup.powRev2; for testcase = [testcases]' assert (isequaln (... - le (testcase.in{1}, testcase.in{2}), ... + powrev2 (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.less; + testcases = testdata.NoSignal.infsup.powRev2; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (le (in1, in2), out)); + assert (isequaln (powrev2 (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.less; + testcases = testdata.NoSignal.infsup.powRev2; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10612,58 +10555,34 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (le (in1, in2), out)); + assert (isequaln (powrev2 (in1, in2, in3), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/erfc.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/erfc.m +[inst/@infsup/sec.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sec.m ***** # from the documentation string -***** assert (erfc (infsupdec (1)) == "[0x1.4226162FBDDD4p-3, 0x1.4226162FBDDD5p-3]"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/round.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/round.m -***** # Empty interval -***** assert (isequal (round (infsupdec ()), infsupdec ())); -***** # Singleton intervals -***** assert (isequal (round (infsupdec (0)), infsupdec (0))); -***** assert (isequal (round (infsupdec (0.5)), infsupdec (1, "dac"))); -***** assert (isequal (round (infsupdec (0.25)), infsupdec (0))); -***** assert (isequal (round (infsupdec (0.75)), infsupdec (1))); -***** assert (isequal (round (infsupdec (-0.5)), infsupdec (-1, "dac"))); -***** # Bounded intervals -***** assert (isequal (round (infsupdec (-0.5, 0)), infsupdec (-1, 0, "def"))); -***** assert (isequal (round (infsupdec (0, 0.5)), infsupdec (0, 1, "def"))); -***** assert (isequal (round (infsupdec (0.25, 0.5)), infsupdec (0, 1, "def"))); -***** assert (isequal (round (infsupdec (-1, 0)), infsupdec (-1, 0, "def"))); -***** assert (isequal (round (infsupdec (-1, 1)), infsupdec (-1, 1, "def"))); -***** assert (isequal (round (infsupdec (-realmin, realmin)), infsupdec (0))); -***** assert (isequal (round (infsupdec (-realmax, realmax)), infsupdec (-realmax, realmax, "def"))); -***** # Unbounded intervals -***** assert (isequal (round (infsupdec (-realmin, inf)), infsupdec (0, inf, "def"))); -***** assert (isequal (round (infsupdec (-realmax, inf)), infsupdec (-realmax, inf, "def"))); -***** assert (isequal (round (infsupdec (-inf, realmin)), infsupdec (-inf, 0, "def"))); -***** assert (isequal (round (infsupdec (-inf, realmax)), infsupdec (-inf, realmax, "def"))); -***** assert (isequal (round (infsupdec (-inf, inf)), infsupdec (-inf, inf, "def"))); +***** assert (sec (infsup (1)) == "[0x1.D9CF0F125CC29, 0x1.D9CF0F125CC2A]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.roundTiesToAway; + testcases = testdata.NoSignal.infsup.sec; for testcase = [testcases]' assert (isequaln (... - round (testcase.in{1}), ... + sec (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.roundTiesToAway; + testcases = testdata.NoSignal.infsup.sec; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (round (in1), out)); + assert (isequaln (sec (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.roundTiesToAway; + testcases = testdata.NoSignal.infsup.sec; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10674,39 +10593,33 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (round (in1), out)); -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/@infsupdec/dilog.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/dilog.m -***** assert (isequal (dilog (infsupdec (-inf, inf)), infsupdec ("[-Inf, +0x1.3BD3CC9BE45DFp1]_dac"))); -***** # from the documentation string -***** assert (isequal (dilog (infsupdec (1)), infsupdec ("[0x1.A51A6625307D3, 0x1.A51A6625307D4]_com"))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/pow.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow.m -***** # from the documentation string -***** assert (isequal (pow (infsupdec (5, 6), infsupdec (2, 3)), infsupdec (25, 216))); + assert (isequaln (sec (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/strictprecedes.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/strictprecedes.m +***** assert (strictprecedes (infsup (1, 1.9), infsup (2.1, 3))); +***** assert (not (strictprecedes (infsup (1, 2), infsup (2, 3)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.pow; + testcases = testdata.NoSignal.infsup.strictPrecedes; for testcase = [testcases]' assert (isequaln (... - pow (testcase.in{1}, testcase.in{2}), ... + strictprecedes (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.pow; + testcases = testdata.NoSignal.infsup.strictPrecedes; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pow (in1, in2), out)); + assert (isequaln (strictprecedes (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.pow; + testcases = testdata.NoSignal.infsup.strictPrecedes; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -10719,32 +10632,33 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/log.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log.m + assert (isequaln (strictprecedes (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/pown.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/pown.m ***** # from the documentation string -***** assert (isequal (log (infsupdec (2)), infsupdec ("[0x1.62E42FEFA39EFp-1, 0x1.62E42FEFA39Fp-1]"))); +***** assert (pown (infsup (5, 6), 2) == infsup (25, 36)); +***** assert (pown (infsup (-2, 1), 2) == infsup (0, 4)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.log; + testcases = testdata.NoSignal.infsup.sqr; for testcase = [testcases]' assert (isequaln (... - log (testcase.in{1}), ... + pown (testcase.in{1}, 2), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.log; + testcases = testdata.NoSignal.infsup.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (log (in1), out)); + assert (isequaln (pown (in1, 2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log; + testcases = testdata.NoSignal.infsup.sqr; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10755,33 +10669,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/atan2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2.m -***** # from the documentation string -***** assert (isequal (atan2 (infsupdec (1), infsupdec (-1)), infsupdec ("[0x1.2D97C7F3321D2p1, 0x1.2D97C7F3321D3p1]"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (pown (in1, 2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.atan2; + testcases = testdata.NoSignal.infsup.pown; for testcase = [testcases]' assert (isequaln (... - atan2 (testcase.in{1}, testcase.in{2}), ... + pown (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.atan2; + testcases = testdata.NoSignal.infsup.pown; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (atan2 (in1, in2), out)); + assert (isequaln (pown (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.atan2; + testcases = testdata.NoSignal.infsup.pown; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -10794,45 +10700,50 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atan2 (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/strictsubset.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/strictsubset.m -***** assert (strictsubset (infsupdec (1, 2), infsupdec (1, 3))); -***** assert (strictsubset (infsupdec (2, 3), infsupdec (1, 3))); -***** assert (not (strictsubset (infsupdec (1, 2), infsupdec (1, 2)))); -***** assert (not (strictsubset (infsupdec (1, 3), infsupdec (1, 2)))); -***** assert (strictsubset (infsupdec (), infsupdec (1, 3))); -***** assert (not (strictsubset (infsupdec (), infsupdec ()))); -***** assert (strictsubset (infsupdec (), infsupdec (-inf, inf))); -***** assert (strictsubset (infsupdec (0, inf), infsupdec (-inf, inf))); -***** assert (strictsubset (infsupdec (-inf, 0), infsupdec (-inf, inf))); -***** assert (not (strictsubset (infsupdec (-inf, inf), infsupdec (-inf, inf)))); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/@infsupdec/log2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log2.m + assert (isequaln (pown (in1, in2), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/vertcat.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/vertcat.m +***** assert (vertcat (infsup (1), infsup (2)) == infsup (vertcat (1, 2))); +***** test + # from the documentation string + a = infsup (2, 5); + assert (vertcat (a, a, a) == infsup ([2; 2; 2], [5; 5; 5])); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/erf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/erf.m ***** # from the documentation string -***** assert (isequal (log2 (infsupdec (2)), infsupdec (1))); +***** assert (erf (infsup (1)) == "[0x1.AF767A741088Ap-1, 0x1.AF767A741088Bp-1]"); +***** # correct use of signed zeros +***** test + x = erf (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/uplus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/uplus.m +***** # from the documentation string +***** assert (+infsup (2, 3) == infsup (2, 3)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.log2; + testcases = testdata.NoSignal.infsup.pos; for testcase = [testcases]' assert (isequaln (... - log2 (testcase.in{1}), ... + uplus (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.log2; + testcases = testdata.NoSignal.infsup.pos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (log2 (in1), out)); + assert (isequaln (uplus (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log2; + testcases = testdata.NoSignal.infsup.pos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10843,35 +10754,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log2 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/plus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/plus.m -***** # from the documentation string -***** assert (isequal (infsupdec (2, 3) + infsupdec (1, 2), infsupdec (3, 5))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (uplus (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.add; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.pos; for testcase = [testcases]' assert (isequaln (... - plus (testcase.in{1}, testcase.in{2}), ... + uplus (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.add; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.pos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (plus (in1, in2), out)); + assert (isequaln (uplus (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.add; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.pos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10880,34 +10781,38 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (plus (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/uminus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/uminus.m + assert (isequaln (uplus (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/atan.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/atan.m ***** # from the documentation string -***** assert (isequal (-infsupdec (2, 3), infsupdec (-3, -2))); +***** assert (atan (infsup (1)) == "[0x1.921FB54442D18p-1, 0x1.921FB54442D19p-1]"); +***** # correct use of signed zeros +***** test + x = atan (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.neg; + testcases = testdata.NoSignal.infsup.atan; for testcase = [testcases]' assert (isequaln (... - uminus (testcase.in{1}), ... + atan (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.neg; + testcases = testdata.NoSignal.infsup.atan; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (uminus (in1), out)); + assert (isequaln (atan (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.neg; + testcases = testdata.NoSignal.infsup.atan; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -10918,34 +10823,41 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (uminus (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/pownrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pownrev.m -***** assert (isequal (pownrev (infsupdec (25, 36), infsupdec (0, inf), 2), infsupdec (5, 6, "trv"))); + assert (isequaln (atan (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/length.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/length.m +***** assert (length (infsup ([])), 0); +***** assert (length (infsup (0)), 1); +***** assert (length (infsup (zeros (3, 1))), 3); +***** assert (length (infsup (zeros (1, 4))), 4); +***** assert (length (infsup (zeros (3, 4))), 4); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/coshrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/coshrev.m +***** # from the documentation string +***** assert (coshrev (infsup (-2, 1)) == 0); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.pownRev; + testcases = testdata.NoSignal.infsup.coshRev; for testcase = [testcases]' assert (isequaln (... - pownrev (testcase.in{1}, testcase.in{2}), ... + coshrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.pownRev; + testcases = testdata.NoSignal.infsup.coshRev; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pownrev (in1, in2), out)); + assert (isequaln (coshrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.pownRev; + testcases = testdata.NoSignal.infsup.coshRev; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10954,31 +10866,28 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pownrev (in1, in2), out)); + assert (isequaln (coshrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.pownRevBin; + testcases = testdata.NoSignal.infsup.coshRevBin; for testcase = [testcases]' assert (isequaln (... - pownrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + coshrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.pownRevBin; + testcases = testdata.NoSignal.infsup.coshRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (pownrev (in1, in2, in3), out)); + assert (isequaln (coshrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.pownRevBin; + testcases = testdata.NoSignal.infsup.coshRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -10988,20 +10897,81 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pownrev (in1, in2, in3), out)); + assert (isequaln (coshrev (in1, in2), out)); 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sqrrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sqrrev.m +[inst/@infsup/reshape.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/reshape.m +***** assert (reshape (infsup (1 : 6), 2, 3) == infsup (reshape (1 : 6, 2, 3))); +***** assert (reshape (infsup (1 : 24), 2, [], 4) == infsup (reshape (1 : 24, 2, 3, 4))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/isvector.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/isvector.m +***** assert (not (isvector (infsup ([])))); +***** assert (isvector (infsup (0))); +***** assert (isvector (infsup (zeros (1, 2)))); +***** assert (isvector (infsup (zeros (2, 1)))); +***** assert (not (isvector (infsup (zeros (5))))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/plot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/plot.m +***** # this test is rather pointless +***** test + clf + plot (empty ()); + close +warning: using the gnuplot graphics toolkit is discouraged + +The gnuplot graphics toolkit is not actively maintained and has a number +of limitations that are unlikely to be fixed. Communication with gnuplot +uses a one-directional pipe and limited information is passed back to the +Octave interpreter so most changes made interactively in the plot window +will not be reflected in the graphics properties managed by Octave. For +example, if the plot window is closed with a mouse click, Octave will not +be notified and will not update its internal list of open figure windows. +The qt toolkit is recommended instead. +Fontconfig error: No writable cache directories +***** demo + clf + hold on + plot (infsup (0), infsup (0)); + plot (infsup (1, 2), infsup (0)); + plot (infsup (0), infsup (1, 2)); + plot (infsup (1, 2), infsup (1, 2)); + axis ([-.5, 2.5, -.5, 2.5]); + hold off +***** demo + clf + plot (infsup (-rand (50, 1), +rand (50, 1))); +***** demo + clf + hold on + axis off + range = infsup (0, 9); + x = linspace (inf (range), sup (range), 250); + X = mince (range, 9); + f = @ (x) 0.5 * sin (x) .* x .^ 2; + y = f (x); + Y = f (X); + plot (range, f (range), [42 161 152]/255); + plot (X, Y, [238 232 213]/255, [88 110 117]/255); + plot (x, y, '-', 'color', [220 50 47]/255, 'linewidth', 2); + hold off +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/intervaltoexact.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/intervaltoexact.m +***** assert (intervaltoexact (infsup (1 + eps)), "[0x1.0000000000001p+0]"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/sqrrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sqrrev.m ***** # from the documentation string -***** assert (isequal (sqrrev (infsupdec (-2, 1)), infsupdec (-1, 1, "trv"))); +***** assert (sqrrev (infsup (-2, 1)) == infsup (-1, 1)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sqrRev; + testcases = testdata.NoSignal.infsup.sqrRev; for testcase = [testcases]' assert (isequaln (... sqrrev (testcase.in{1}), ... @@ -11009,13 +10979,13 @@ endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sqrRev; + testcases = testdata.NoSignal.infsup.sqrRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); assert (isequaln (sqrrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sqrRev; + testcases = testdata.NoSignal.infsup.sqrRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11029,7 +10999,7 @@ assert (isequaln (sqrrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sqrRevBin; + testcases = testdata.NoSignal.infsup.sqrRevBin; for testcase = [testcases]' assert (isequaln (... sqrrev (testcase.in{1}, testcase.in{2}), ... @@ -11037,14 +11007,14 @@ endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sqrRevBin; + testcases = testdata.NoSignal.infsup.sqrRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); assert (isequaln (sqrrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sqrRevBin; + testcases = testdata.NoSignal.infsup.sqrRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -11059,35 +11029,35 @@ out = reshape ([out; out(1:i)], testsize); assert (isequaln (sqrrev (in1, in2), out)); 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/gamma.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gamma.m -***** # from the documentation string -***** assert (isequal (gamma (infsupdec (1.5)), infsupdec ("[0x1.C5BF891B4EF6Ap-1, 0x1.C5BF891B4EF6Bp-1]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cosrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cosrev.m +[inst/@infsup/log1p.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/log1p.m ***** # from the documentation string -***** assert (isequal (cosrev (0, infsupdec (6, 9)), infsupdec ("[0x1.F6A7A2955385Ep2, 0x1.F6A7A2955386p2]_trv"))); +***** assert (log1p (infsup (eps)) == "[0x1.FFFFFFFFFFFFFp-53, 0x1p-52]"); +***** # correct use of signed zeros +***** test + x = log1p (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.cosRev; + testcases = testdata.NoSignal.infsup.logp1; for testcase = [testcases]' assert (isequaln (... - cosrev (testcase.in{1}), ... + log1p (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.cosRev; + testcases = testdata.NoSignal.infsup.logp1; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cosrev (in1), out)); + assert (isequaln (log1p (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.cosRev; + testcases = testdata.NoSignal.infsup.logp1; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11098,25 +11068,176 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosrev (in1), out)); + assert (isequaln (log1p (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/chol.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/chol.m +***** assert (chol (infsup (pascal (10))) == chol (pascal (10))); +***** assert (chol (infsupdec (pascal (10))) == chol (pascal (10))); +***** test + A = infsup ([2, 1; 1, 1]); + R = chol (A); + assert (ismember ([sqrt(2), 1/sqrt(2); 0, 1/sqrt(2)], R)); + assert (wid (R) < 1e-15); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/subsasgn.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/subsasgn.m +***** test + A = infsup (magic (3)); + A(4, 4) = 42; + assert (inf (A), [magic(3),[0;0;0];0,0,0,42]); + assert (sup (A), [magic(3),[0;0;0];0,0,0,42]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/sumsq.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sumsq.m +***** # from the documentation string +***** assert (sumsq ([infsup(1), pow2(-1074), -1]) == infsup (2, 2+eps*2)); +***** assert (sumsq (infsup ([])) == 0); +***** # correct use of signed zeros +***** test + x = sumsq (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/ge.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ge.m +***** assert (ge (infsup (2, 3), infsup (1, 3))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/qr.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/qr.m +***** test + A = infsup ([1 2 3; 4 5 6]); + [Q, R] = qr (A); + assert (all (all (subset (A, Q * R)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-14); +***** test + A = infsup ([1 2; 3 4; 5 6]); + [Q, R] = qr (A); + assert (all (all (subset (A, Q * R)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q (:, [1 2])))) < 1e-14); +***** test + A = infsup ([1 2 3; 4 9 6; 9 8 7]); + [Q, R] = qr (A); + assert (all (all (subset (A, Q * R)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-13); +***** test + for n = 3 : 2 : 10 + A = infsup (magic (n)); + [Q, R] = qr (A); + assert (all (all (subset (A, Q * R)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-10); + endfor +***** test + A = infsup (magic (3)) + "[2, 2.2]"; + [Q, R] = qr (A); + assert (all (all (subset (A, Q * R)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1.5); +***** function result = is_permutation_matrix (P) + result = isequal (P, eye (length (P))) || ... + isequal (typeinfo (P), "permutation matrix"); +***** endfunction +***** test + A = infsup ([1 2 3; 4 5 6]); + [Q, R, P] = qr (A); + assert (all (all (subset (A, Q * R * P)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-14); + assert (is_permutation_matrix (P)); +***** test + A = infsup ([1 2; 3 4; 5 6]); + [Q, R, P] = qr (A); + assert (all (all (subset (A, Q * R * P)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q (:, [1 2])))) < 1e-14); + assert (is_permutation_matrix (P)); +***** test + A = infsup ([1 2 3; 4 9 6; 9 8 7]); + [Q, R, P] = qr (A); + assert (all (all (subset (A, Q * R * P)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-13); + assert (is_permutation_matrix (P)); +***** test + for n = 3 : 2 : 10 + A = infsup (magic (n)); + [Q, R, P] = qr (A); + assert (all (all (subset (A, Q * R * P)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1e-10); + assert (is_permutation_matrix (P)); + endfor +***** test + A = infsup (magic (3)) + "[2, 2.2]"; + [Q, R, P] = qr (A); + assert (all (all (subset (A, Q * R * P)))); + assert (all (all (subset (eye (length (Q)), Q' * Q)))); + assert (max (max (wid (Q))) < 1.5); + assert (is_permutation_matrix (P)); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/@infsup/prepad.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/prepad.m +***** assert (prepad (infsup (2:4), 4, 1) == infsup (1:4)); +***** assert (prepad (infsup (0:2), 2, 1) == infsup (1:2)); +***** assert (prepad (infsup (0), 10, 0, 3) == infsup (zeros (1, 1, 10))) +***** assert (prepad (infsup (zeros (1, 2, 2)), 3) == infsup (zeros (1, 3, 2))); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/setdiff.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/setdiff.m +***** assert (isempty (setdiff (infsup (), infsup (1, 4)))); +***** assert (setdiff (infsup (1, 3), infsup ()) == infsup (1, 3)); +***** assert (isempty (setdiff (infsup (1, 3), infsup (-inf, inf)))); +***** assert (isempty (setdiff (infsup (1, 3), infsup (1, 4)))); +***** assert (setdiff (infsup (-inf, inf), infsup (1, 4)) == infsup (-inf, inf)); +***** # from the documentation string + assert (setdiff (infsup (1, 3), infsup (2, 4)) == infsup (1, 2)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/mulrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mulrev.m +***** #IEEE Std 1788-2015 mulRevToPair examples +***** test + [u, v] = mulrev (infsup (0), infsup (1, 2)); + assert (isempty (u) & isempty (v)); +***** test + [u, v] = mulrev (infsup (0), infsup (0, 1)); + assert (isentire (u) & isempty (v)); +***** test + [u, v] = mulrev (infsup (1), infsup (1, 2)); + assert (eq (u, infsup (1, 2)) & isempty (v)); +***** test + [u, v] = mulrev (infsup (1, inf), infsup (1)); + assert (eq (u, infsup (0, 1)) & isempty (v)); +***** test + [u, v] = mulrev (infsup (-1, 1), infsup (1, 2)); + assert (eq (u, infsup (-inf, -1)) & eq (v, infsup (1, inf))); +***** test + [u, v] = mulrev (infsup (-inf, inf), infsup (1)); + assert (eq (u, infsup (-inf, 0)) & eq (v, infsup (0, inf))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.cosRevBin; + testcases = testdata.NoSignal.infsup.mulRevToPair1; for testcase = [testcases]' assert (isequaln (... - cosrev (testcase.in{1}, testcase.in{2}), ... + nthargout (1, 2, @mulrev, testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.cosRevBin; + testcases = testdata.NoSignal.infsup.mulRevToPair1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cosrev (in1, in2), out)); + assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.cosRevBin; + testcases = testdata.NoSignal.infsup.mulRevToPair1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -11129,33 +11250,25 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/minus.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/minus.m -***** # from the documentation string -***** assert (isequal (infsupdec (2, 3) - infsupdec (1, 2), infsupdec (0, 2))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (nthargout (1, 2, @mulrev, in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sub; + testcases = testdata.NoSignal.infsup.mulRevToPair2; for testcase = [testcases]' assert (isequaln (... - minus (testcase.in{1}, testcase.in{2}), ... + nthargout (2, @mulrev, testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sub; + testcases = testdata.NoSignal.infsup.mulRevToPair2; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (minus (in1, in2), out)); + assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sub; + testcases = testdata.NoSignal.infsup.mulRevToPair2; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -11168,33 +11281,27 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (minus (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/tanrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tanrev.m -***** # from the documentation string -***** assert (isequal (tanrev (infsupdec (0), infsupdec (2, 4)), infsupdec ("pi", "trv"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (nthargout (2, @mulrev, in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.tanRev; + testcases = testdata.NoSignal.infsup.mulRev; for testcase = [testcases]' assert (isequaln (... - tanrev (testcase.in{1}), ... + mulrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.tanRev; + testcases = testdata.NoSignal.infsup.mulRev; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (tanrev (in1), out)); + assert (isequaln (mulrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.tanRev; + testcases = testdata.NoSignal.infsup.mulRev; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11203,28 +11310,31 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanrev (in1), out)); + assert (isequaln (mulrev (in1, in2), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.tanRevBin; + testcases = testdata.NoSignal.infsup.mulRevTen; for testcase = [testcases]' assert (isequaln (... - tanrev (testcase.in{1}, testcase.in{2}), ... + mulrev (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.tanRevBin; + testcases = testdata.NoSignal.infsup.mulRevTen; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (tanrev (in1, in2), out)); + assert (isequaln (mulrev (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.tanRevBin; + testcases = testdata.NoSignal.infsup.mulRevTen; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11234,34 +11344,63 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/fix.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/fix.m -***** # from the documentation string -***** assert (isequal (fix (infsupdec (2.5, 3.5)), infsupdec (2, 3, "def"))); -***** assert (isequal (fix (infsupdec (-0.5, 5)), infsupdec (0, 5, "def"))); + assert (isequaln (mulrev (in1, in2, in3), out)); +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/@infsup/round.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/round.m +***** # Empty interval +***** assert (round (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (round (infsup (0)) == infsup (0)); +***** assert (round (infsup (0.5)) == infsup (1)); +***** assert (round (infsup (0.25)) == infsup (0)); +***** assert (round (infsup (0.75)) == infsup (1)); +***** assert (round (infsup (-0.5)) == infsup (-1)); +***** # Bounded intervals +***** assert (round (infsup (-0.5, 0)) == infsup (-1, 0)); +***** assert (round (infsup (0, 0.5)) == infsup (0, 1)); +***** assert (round (infsup (0.25, 0.5)) == infsup (0, 1)); +***** assert (round (infsup (-1, 0)) == infsup (-1, 0)); +***** assert (round (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (round (infsup (-realmin, realmin)) == infsup (0)); +***** assert (round (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** # Unbounded intervals +***** assert (round (infsup (-realmin, inf)) == infsup (0, inf)); +***** assert (round (infsup (-realmax, inf)) == infsup (-realmax, inf)); +***** assert (round (infsup (-inf, realmin)) == infsup (-inf, 0)); +***** assert (round (infsup (-inf, realmax)) == infsup (-inf, realmax)); +***** assert (round (infsup (-inf, inf)) == infsup (-inf, inf)); +***** # correct use of signed zeros +***** test + x = round (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = round (infsup (-0.25, 0.25)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.trunc; + testcases = testdata.NoSignal.infsup.roundTiesToAway; for testcase = [testcases]' assert (isequaln (... - fix (testcase.in{1}), ... + round (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.trunc; + testcases = testdata.NoSignal.infsup.roundTiesToAway; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (fix (in1), out)); + assert (isequaln (round (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.trunc; + testcases = testdata.NoSignal.infsup.roundTiesToAway; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11272,119 +11411,88 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (fix (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sum.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sum.m -***** # from the documentation string -***** assert (isequal (sum ([infsupdec(1), pow2(-1074), -1]), infsupdec (pow2 (-1074)))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/rsqrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rsqrt.m -***** # from the documentation string -***** assert (isequal (rsqrt (infsupdec (-6, 4)), infsupdec (.5, inf, "trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/prod.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/prod.m -***** # from the documentation string -***** assert (prod (infsupdec (1 : 4)) == 24); -***** assert (prod (infsupdec ([])) == 1); -***** assert (isequal (prod (infsupdec (magic (3))), infsupdec ([96, 45, 84]))); -***** assert (isequal (prod (infsupdec (magic (3)), 2), infsupdec ([48; 105; 72]))); -***** assert (isequal (prod (infsupdec (magic (3)), 3), infsupdec (magic (3)))); -***** assert (isequal (prod (prod (reshape (infsup (1:24), 1, 2, 3, 4))), infsup (reshape ([720, 665280, 13366080, 96909120], 1, 1, 1, 4)))); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/factorial.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/factorial.m -***** # from the documentation string -***** assert (isequal (factorial (infsupdec (6)), infsupdec (720))); -***** assert (isequal (factorial (infsupdec (0)), infsupdec (1))); -***** assert (isequal (factorial (infsupdec ("[0, 1.99]")), infsupdec (1, "trv"))); -***** assert (isequal (factorial (infsupdec ("[0, 2]")), infsupdec (1, 2, "trv"))); -***** assert (isequal (factorial (infsupdec ("[1.4, 1.6]")), empty ())); -***** assert (isequal (factorial (infsupdec (23)), infsupdec ("[0x1.5e5c335f8a4cdp+74, 0x1.5e5c335f8a4cep+74]_com"))); -***** assert (isequal (factorial (infsupdec (171)), infsupdec ("[0x1.fffffffffffffp+1023, Inf]_dac"))); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mince.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mince.m -***** assert (isequal (mince (infsupdec (0, 10), 10), infsupdec (0 : 9, 1 : 10, "trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/fma.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/fma.m + assert (isequaln (round (in1), out)); +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/@infsup/plus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/plus.m ***** # from the documentation string -***** assert (isequal (fma (infsupdec (1+eps), infsupdec (7), infsupdec ("0.1")), infsupdec ("[0x1.C666666666668p2, 0x1.C666666666669p2]"))); +***** assert (infsup (2, 3) + infsup (1, 2) == infsup (3, 5)); +***** # correct use of signed zeros +***** test + x = plus (infsup (0), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.fma; + testcases = testdata.NoSignal.infsup.add; for testcase = [testcases]' assert (isequaln (... - fma (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... + plus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.fma; + testcases = testdata.NoSignal.infsup.add; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (fma (in1, in2, in3), out)); + assert (isequaln (plus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.fma; + testcases = testdata.NoSignal.infsup.add; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); - in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2 | i == numel (in1)) + until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); - in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (fma (in1, in2, in3), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/diag.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/diag.m -***** assert (diag (infsupdec (-inf, inf)) == "[Entire]"); -***** assert (diag (infsupdec ()) == "[Empty]"); -***** assert (numel (diag (infsupdec ([]))), 0); -***** assert (isequal (diag (infsupdec (magic (3))), infsupdec ([8; 5; 2]))); -***** assert (isequal (diag (infsupdec ([8 5 3])), infsupdec ([8 0 0; 0 5 0; 0 0 3]))); + assert (isequaln (plus (in1, in2), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/pown.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pown.m +[inst/@infsup/linspace.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/linspace.m +***** assert (isequal (linspace (infsup (0), infsup (10), 9), infsup (linspace (0, 10, 9)))); +***** # correct use of signed zeros +***** test + x = linspace (infsup (0), infsup (0)); + assert (all (signbit (inf (x)))); + assert (all (not (signbit (sup (x))))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/cancelminus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cancelminus.m ***** # from the documentation string -***** assert (isequal (pown (infsupdec (5, 6), 2), infsupdec (25, 36))); -***** assert (pown (infsupdec (-2, 1), 2) == infsupdec (0, 4)); +***** assert (cancelminus (infsup (2, 3), infsup (1, 1.5)) == infsup (1, 1.5)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sqr; + testcases = testdata.NoSignal.infsup.cancelMinus; for testcase = [testcases]' assert (isequaln (... - pown (testcase.in{1}, 2), ... + cancelminus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sqr; + testcases = testdata.NoSignal.infsup.cancelMinus; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pown (in1, 2), out)); + assert (isequaln (cancelminus (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sqr; + testcases = testdata.NoSignal.infsup.cancelMinus; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11393,26 +11501,49 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pown (in1, 2), out)); + assert (isequaln (cancelminus (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/size.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/size.m +***** assert (size (infsup (zeros (3, 4))), [3 4]); +***** assert (size (infsup (zeros (2, 3, 4))), [2, 3, 4]); +***** test + [x y z] = size (infsup (magic (3))); + assert (x, 3); + assert (y, 3); + assert (z, 1); +***** assert (ismatrix (infsup ([]))); +***** assert (ismatrix (infsup (0))); +***** assert (ismatrix (infsup (zeros (3, 1)))); +***** assert (ismatrix (infsup (zeros (1, 4)))); +***** assert (ismatrix (infsup (zeros (3, 4)))); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/le.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/le.m +***** assert (le (infsup (1, 3), infsup (3))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.pown; + testcases = testdata.NoSignal.infsup.less; for testcase = [testcases]' assert (isequaln (... - pown (testcase.in{1}, testcase.in{2}), ... + le (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.pown; + testcases = testdata.NoSignal.infsup.less; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (pown (in1, in2), out)); + assert (isequaln (le (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.pown; + testcases = testdata.NoSignal.infsup.less; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -11425,35 +11556,38 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pown (in1, in2), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsupdec/overlap.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/overlap.m -***** assert (overlap (infsupdec (1, 2), infsupdec (3, 4)), "before"); + assert (isequaln (le (in1, in2), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/sech.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sech.m +***** # from the documentation string +***** assert (sech (infsup (1)) == "[0x1.4BCDC50ED6BE7p-1, 0x1.4BCDC50ED6BE8p-1]"); +***** # correct use of signed zeros +***** test + x = sech (infsup (0, inf)); + assert (signbit (inf (x))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.overlap; + testcases = testdata.NoSignal.infsup.sech; for testcase = [testcases]' assert (isequaln (... - overlap (testcase.in{1}, testcase.in{2}), ... + sech (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.overlap; + testcases = testdata.NoSignal.infsup.sech; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); - out = {testcases.out}'; - assert (isequaln (overlap (in1, in2), out)); + out = vertcat (testcases.out); + assert (isequaln (sech (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.overlap; + testcases = testdata.NoSignal.infsup.sech; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); - out = {testcases.out}'; + out = vertcat (testcases.out); # Reshape data i = -1; do @@ -11461,39 +11595,33 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (overlap (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/gauss.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/gauss.m -***** # from the documentation string -***** assert (isequal (gauss (infsupdec ([1, 0; 0, 2]), [2, 0; 0, 4]), infsupdec ([2, 0; 0, 2], "trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/atanh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atanh.m -***** # from the documentation string -***** assert (isequal (atanh (infsupdec (.5)), infsupdec ("[0x1.193EA7AAD030Ap-1, 0x1.193EA7AAD030Bp-1]"))); + assert (isequaln (sech (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/mig.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mig.m +***** assert (mig (infsup (-1, 2)), 0); +***** assert (mig (infsup (-42, -23)), 23); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.atanh; + testcases = testdata.NoSignal.infsup.mig; for testcase = [testcases]' assert (isequaln (... - atanh (testcase.in{1}), ... + mig (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.atanh; + testcases = testdata.NoSignal.infsup.mig; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (atanh (in1), out)); + assert (isequaln (mig (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.atanh; + testcases = testdata.NoSignal.infsup.mig; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11504,40 +11632,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (atanh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/coth.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/coth.m -***** # from the documentation string -***** assert (isequal (coth (infsupdec (1)), infsupdec ("[0x1.50231499B6B1D, 0x1.50231499B6B1E]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/union.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/union.m -***** # from the documentation string -***** assert (isequal (union (infsupdec (1, 3), infsupdec (2, 4)), infsupdec (1, 4, "trv"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (mig (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.convexHull; + testcases = testdata.NoSignal.infsupdec.mig; for testcase = [testcases]' assert (isequaln (... - union (testcase.in{1}, testcase.in{2}), ... + mig (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.convexHull; + testcases = testdata.NoSignal.infsupdec.mig; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (union (in1, in2), out)); + assert (isequaln (mig (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.convexHull; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.mig; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11546,58 +11659,67 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (union (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/lu.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/lu.m -***** test - [l, u] = lu (infsupdec (magic (3))); - assert (isequal (l, infsupdec ({1, 0, 0; .375, 1, 0; .5, "68/37", 1}, "trv")));, ... - assert (subset (u, infsupdec ({8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F2298375Bp3"}, ... - {8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F22983759p3"}))); - A = magic (3); - A ([1, 5, 9]) = 0; - [l, u, p] = lu (infsupdec (A)); - assert (p, [0, 0, 1; 1, 0, 0; 0, 1, 0]); - assert (isequal (l, infsupdec ({1, 0, 0; "4/3", 1, 0; 0, "1/9", 1}, "trv"))); - assert (subset (u, infsupdec ({3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAACp3"; 0, 0, "0x1.C25ED097B425Ep2"}, ... - {3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAAAp3"; 0, 0, "0x1.C25ED097B426p2"}))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/bisect.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/bisect.m + assert (isequaln (mig (in1), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/psi.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/psi.m +***** assert (isempty (psi (infsup (0)))); +***** assert (isempty (psi (infsup (-1)))); +***** assert (isempty (psi (infsup (-2)))); +***** assert (isempty (psi (infsup (-3)))); +***** assert (isentire (psi (infsup (-inf, -42.23)))); +***** assert (isentire (psi (infsup (0, inf)))); +***** assert (isentire (psi (infsup (-1, 0)))); +***** assert (isentire (psi (infsup (-2, -1)))); +***** assert (isentire (psi (infsup (-eps, eps)))); +***** assert (isentire (psi (infsup (-1-eps, -1+eps)))); +***** assert (isentire (psi (infsup (-4.1, -3.9)))); ***** # from the documentation string -***** test - [a, b] = bisect (infsupdec (2, 32)); - assert (a == infsupdec (2, 8, "trv")); - assert (b == infsupdec (8, 32, "trv")); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/log10.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log10.m +***** assert (psi (infsup (1)) == "[-0x1.2788CFC6FB619p-1, -0x1.2788CFC6FB618p-1]"); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/@infsup/fma.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fma.m ***** # from the documentation string -***** assert (isequal (log10 (infsupdec (2)), infsupdec ("[0x1.34413509F79FEp-2, 0x1.34413509F79FFp-2]"))); +***** assert (fma (infsup (1+eps), infsup (7), infsup ("0.1")) == "[0x1.C666666666668p2, 0x1.C666666666669p2]"); +***** # correct use of signed zeros +***** test + x = fma (infsup (0), 0, 0); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = fma (infsup (1), 0, 0); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = fma (infsup (1), 1, -1); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.log10; + testcases = testdata.NoSignal.infsup.fma; for testcase = [testcases]' assert (isequaln (... - log10 (testcase.in{1}), ... + fma (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.log10; + testcases = testdata.NoSignal.infsup.fma; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (log10 (in1), out)); + assert (isequaln (fma (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.log10; + testcases = testdata.NoSignal.infsup.fma; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11606,40 +11728,38 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (log10 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/transpose.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/transpose.m -***** assert (isequal (transpose (infsupdec (magic (3))), infsupdec (magic (3).'))); -***** # from the documentation string -***** assert (isequal (transpose (infsupdec (zeros (1, 3), ones (1, 3))), infsupdec (zeros (3, 1), ones (3, 1)))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cos.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cos.m + assert (isequaln (fma (in1, in2, in3), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/union.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/union.m ***** # from the documentation string -***** assert (isequal (cos (infsupdec (1)), infsupdec ("[0x1.14A280FB5068Bp-1, 0x1.14A280FB5068Cp-1]"))); +***** assert (union (infsup (1, 3), infsup (2, 4)) == infsup (1, 4)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.cos; + testcases = testdata.NoSignal.infsup.convexHull; for testcase = [testcases]' assert (isequaln (... - cos (testcase.in{1}), ... + union (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.cos; + testcases = testdata.NoSignal.infsup.convexHull; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (cos (in1), out)); + assert (isequaln (union (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cos; + testcases = testdata.NoSignal.infsup.convexHull; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11648,34 +11768,42 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cos (in1), out)); + assert (isequaln (union (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sinrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sinrev.m +[inst/@infsup/pow.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/pow.m ***** # from the documentation string -***** assert (isequal (sinrev (infsupdec (-1), infsupdec (0, 6)), infsupdec ("[0x1.2D97C7F3321D2p2, 0x1.2D97C7F3321D3p2]_trv"))); +***** assert (pow (infsup (5, 6), infsup (2, 3)) == infsup (25, 216)); +***** # correct use of signed zeros +***** test + x = pow (infsup (0), infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sinRev; + testcases = testdata.NoSignal.infsup.pow; for testcase = [testcases]' assert (isequaln (... - sinrev (testcase.in{1}), ... + pow (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sinRev; + testcases = testdata.NoSignal.infsup.pow; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sinrev (in1), out)); + assert (isequaln (pow (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sinRev; + testcases = testdata.NoSignal.infsup.pow; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11684,26 +11812,63 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinrev (in1), out)); + assert (isequaln (pow (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/printf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/printf.m +***** xtest + assert (evalc ("n = printf ('%g', infsup ('pi'));"), "3.14159 3.1416"); + assert (n, 14); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/tril.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/tril.m +***** assert (tril (infsup (magic (10))) == tril (magic (10))); +***** assert (tril (infsup (magic (10)), 1) == tril (magic (10), 1)); +***** assert (tril (infsup (magic (10)), -1) == tril (magic (10), -1)); +***** assert (tril (infsup (magic (10)), 0, "pack") == tril (magic (10), 0, "pack")); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/cancelplus.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cancelplus.m +***** # from the documentation string +***** assert (cancelplus (infsup (2, 3), infsup (1, 1.5)) == infsup (3.5, 4)); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sinRevBin; + testcases = testdata.NoSignal.infsup.cancelPlus; for testcase = [testcases]' assert (isequaln (... - sinrev (testcase.in{1}, testcase.in{2}), ... + cancelplus (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sinRevBin; + testcases = testdata.NoSignal.infsup.cancelPlus; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sinrev (in1, in2), out)); + assert (isequaln (cancelplus (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sinRevBin; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.cancelPlus; + for testcase = [testcases]' + assert (isequaln (... + cancelplus (testcase.in{1}, testcase.in{2}), ... + testcase.out)); + endfor +***** test + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.cancelPlus; + in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); + out = vertcat (testcases.out); + assert (isequaln (cancelplus (in1, in2), out)); +***** test + # N-dimensional array vector evaluation + testcases = testdata.NoSignal.infsupdec.cancelPlus; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -11716,48 +11881,37 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cat.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cat.m -***** assert (size (cat (1, infsupdec ([]), infsupdec ([]))), [0 0]); -***** assert (isequal (cat (1, infsupdec (1), infsupdec (2)), infsupdec (cat (1, 1, 2)))); -***** assert (isequal (cat (2, infsupdec (1), infsupdec (2)), infsupdec (cat (2, 1, 2)))); -***** assert (isequal (horzcat (infsupdec (1), infsupdec (2)), infsupdec (horzcat (1, 2)))); -***** test - a = infsupdec (2, 5); - assert (isequal (horzcat (a, a, a), infsupdec ([2, 2, 2], [5, 5, 5]))); -***** assert (isequal (vertcat (infsupdec (1), infsupdec (2)), infsupdec (vertcat (1, 2)))); -***** test - a = infsupdec (2, 5); - assert (isequal (vertcat (a, a, a), infsupdec ([2; 2; 2], [5; 5; 5]))); -***** assert (isequal (cat (5, infsupdec (1), infsupdec (2)), infsupdec (cat (5, 1, 2)))); -***** assert (isequal (cat (1, infsupdec (zeros (2, 2, 2)), infsupdec (ones (2, 2, 2))), infsupdec (cat (1, zeros (2, 2, 2), ones (2, 2, 2))))); -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/@infsupdec/acos.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/acos.m + assert (isequaln (cancelplus (in1, in2), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/exp.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/exp.m ***** # from the documentation string -***** assert (isequal (acos (infsupdec (.5)), infsupdec ("[0x1.0C152382D7365, 0x1.0C152382D7366]"))); +***** assert (exp (infsup (1)) == infsup ("e")); +***** # correct use of signed zeros +***** test + x = exp (infsup (-realmax)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.acos; + testcases = testdata.NoSignal.infsup.exp; for testcase = [testcases]' assert (isequaln (... - acos (testcase.in{1}), ... + exp (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.acos; + testcases = testdata.NoSignal.infsup.exp; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (acos (in1), out)); + assert (isequaln (exp (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.acos; + testcases = testdata.NoSignal.infsup.exp; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11768,33 +11922,40 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (acos (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sinh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sinh.m -***** # from the documentation string -***** assert (isequal (sinh (infsupdec (1)), infsupdec ("[0x1.2CD9FC44EB982, 0x1.2CD9FC44EB983]"))); + assert (isequaln (exp (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/atan2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2.m +***** test "from the documentation string"; +***** assert (atan2 (infsup (1), infsup (-1)) == "[0x1.2D97C7F3321D2p1, 0x1.2D97C7F3321D3p1]"); +***** # correct use of signed zeros +***** test + x = atan2 (0, infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sinh; + testcases = testdata.NoSignal.infsup.atan2; for testcase = [testcases]' assert (isequaln (... - sinh (testcase.in{1}), ... + atan2 (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sinh; + testcases = testdata.NoSignal.infsup.atan2; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sinh (in1), out)); + assert (isequaln (atan2 (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.sinh; + testcases = testdata.NoSignal.infsup.atan2; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11803,34 +11964,36 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sinh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/tanh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tanh.m -***** test "from the documentation string"; - assert (isequal (tanh (infsupdec (1)), infsupdec ("[0x1.85EFAB514F394p-1, 0x1.85EFAB514F395p-1]"))); + assert (isequaln (atan2 (in1, in2), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/subset.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/subset.m +***** assert (subset (infsup (1, 2), infsup (1, 3))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.tanh; + testcases = testdata.NoSignal.infsup.subset; for testcase = [testcases]' assert (isequaln (... - tanh (testcase.in{1}), ... + subset (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.tanh; + testcases = testdata.NoSignal.infsup.subset; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (tanh (in1), out)); + assert (isequaln (subset (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tanh; + testcases = testdata.NoSignal.infsup.subset; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -11839,33 +12002,37 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tanh (in1), out)); + assert (isequaln (subset (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/realsqrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/realsqrt.m -***** # from the documentation string -***** assert (isequal (realsqrt (infsupdec (-6, 4)), infsupdec (0, 2, "trv"))); +[inst/@infsup/isentire.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/isentire.m +***** assert (isentire (entire ())); +***** assert (isentire (intervalpart (entire ()))); +***** assert (not (isentire (empty ()))); +***** assert (not (isentire (intervalpart (empty ())))); +***** warning assert (not (isentire (infsupdec (2, 1)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sqrt; + testcases = testdata.NoSignal.infsup.isEntire; for testcase = [testcases]' assert (isequaln (... - realsqrt (testcase.in{1}), ... + isentire (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sqrt; + testcases = testdata.NoSignal.infsup.isEntire; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (realsqrt (in1), out)); + assert (isequaln (isentire (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sqrt; + testcases = testdata.NoSignal.infsup.isEntire; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11876,35 +12043,24 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (realsqrt (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/inf.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/inf.m -***** assert (inf (infsupdec (2.5, 3.5)), 2.5); -***** assert (inf (infsupdec ()), +inf); -***** assert (inf (infsupdec ("[nai]")), nan); -***** warning id=interval:UndefinedOperation - assert (inf (infsupdec (2, 1)), nan); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (isentire (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.inf; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.isEntire; for testcase = [testcases]' assert (isequaln (... - inf (testcase.in{1}), ... + isentire (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.inf; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.isEntire; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (inf (in1), out)); + assert (isequaln (isentire (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.inf; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.isEntire; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11915,72 +12071,37 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (inf (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/setxor.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/setxor.m -***** test - [z, z1, z2] = setxor (infsupdec (), infsupdec ()); - assert (isempty (z)); - assert (isempty (z1)); - assert (isempty (z2)); -***** test - [z, z1, z2] = setxor (infsupdec (-inf, inf), infsupdec ()); - assert (isentire (z)); - assert (isentire (z1)); - assert (isempty (z2)); -***** test - [z, z1, z2] = setxor (infsupdec (-inf, inf), infsupdec (2)); - assert (isentire (z)); - assert (z1 == infsupdec (-inf, 2)); - assert (z2 == infsupdec (2, inf)); -***** test - [z, z1, z2] = setxor (infsupdec (2, 3), infsupdec (2)); - assert (z == infsupdec (2, 3)); - assert (z1 == infsupdec ()); - assert (z2 == infsupdec (2, 3)); -***** test - [z, z1, z2] = setxor (infsupdec (2, 3), infsupdec (2, 2.5)); - assert (z == infsupdec (2.5, 3)); - assert (z1 == infsupdec ()); - assert (z2 == infsupdec (2.5, 3)); -***** test - # from the documentation string - [z, z1, z2] = setxor (infsupdec (1, 3), infsupdec (2, 4)); - assert (z == infsupdec (1, 4)); - assert (z1 == infsupdec (1, 2)); - assert (z2 == infsupdec (3, 4)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/det.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/det.m + assert (isequaln (isentire (in1), out)); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/@infsup/sqrt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sqrt.m ***** # from the documentation string -***** assert (det (infsupdec (magic (3))) == -360); +***** assert (sqrt (infsup (-6, 4)) == infsup (0, 2)); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/isnai.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/isnai.m -***** assert (isnai (infsupdec ("[nai]"))); -***** assert (not (isnai (infsupdec (2, 3)))); -***** warning assert (isnai (infsupdec ("happy 42 hacking")), logical ([1 0 1])); +[inst/@infsup/wid.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/wid.m +***** # from the documentation string +***** assert (wid (infsup (2.5, 3.5)), 1); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.isNaI; + testcases = testdata.NoSignal.infsup.wid; for testcase = [testcases]' assert (isequaln (... - isnai (testcase.in{1}), ... + wid (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.isNaI; + testcases = testdata.NoSignal.infsup.wid; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (isnai (in1), out)); + assert (isequaln (wid (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.isNaI; + testcases = testdata.NoSignal.infsup.wid; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -11991,34 +12112,25 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (isnai (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/subset.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subset.m -***** assert (subset (infsupdec (1, 2), infsupdec (1, 3))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (wid (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.subset; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.wid; for testcase = [testcases]' assert (isequaln (... - subset (testcase.in{1}, testcase.in{2}), ... + wid (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.subset; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.wid; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (subset (in1, in2), out)); + assert (isequaln (wid (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.subset; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.wid; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12027,44 +12139,80 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (subset (in1, in2), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/atan2rev2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2rev2.m -***** # from the documentation string -***** assert (isequal (atan2rev2 (infsupdec (1, 2), infsupdec ("pi") / 4), infsupdec ("[0x1.FFFFFFFFFFFFEp-1, 0x1.0000000000001p1]_trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/log1p.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/log1p.m -***** # from the documentation string -***** assert (isequal (log1p (infsupdec (eps)), infsupdec ("[0x1.FFFFFFFFFFFFFp-53, 0x1p-52]"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/asin.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/asin.m + assert (isequaln (wid (in1), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/subsref.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/subsref.m +***** assert (infsup (magic (3))([1, 2, 3]) == magic (3)([1, 2, 3])); +***** test + x = infsup (magic (3), magic (3) + 1); + assert (x(1) == infsup (8, 9)); +***** test + x = infsup (magic (3), magic (3) + 1); + assert (x(:, 2) == infsup ([1; 5; 9], [2; 6; 10])); +***** assert (infsup (3).inf, 3); +***** test + x = infsup (magic (3), magic (3) + 1); + assert (x.inf, magic (3)); +***** assert (reshape (infsup (1:16), 2, 2, 2, 2)(2, 7) == infsup (14)) +***** assert (reshape (infsup (1:16), 2, 2, 2, 2)(:, 2, 2, 2) == infsup ([15; 16])) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/abs.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/abs.m +***** # Empty interval +***** assert (abs (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (abs (infsup (1)) == infsup (1)); +***** assert (abs (infsup (0)) == infsup (0)); +***** assert (abs (infsup (-1)) == infsup (1)); +***** assert (abs (infsup (realmax)) == infsup (realmax)); +***** assert (abs (infsup (realmin)) == infsup (realmin)); +***** assert (abs (infsup (-realmin)) == infsup (realmin)); +***** assert (abs (infsup (-realmax)) == infsup (realmax)); +***** # Bounded intervals +***** assert (abs (infsup (1, 2)) == infsup (1, 2)); +***** assert (abs (infsup (0, 1)) == infsup (0, 1)); +***** assert (abs (infsup (-1, 1)) == infsup (0, 1)); +***** assert (abs (infsup (-1, 0)) == infsup (0, 1)); +***** assert (abs (infsup (-2, -1)) == infsup (1, 2)); +***** # Unbounded intervals +***** assert (abs (infsup (0, inf)) == infsup (0, inf)); +***** assert (abs (infsup (-inf, inf)) == infsup (0, inf)); +***** assert (abs (infsup (-inf, 0)) == infsup (0, inf)); +***** assert (abs (infsup (1, inf)) == infsup (1, inf)); +***** assert (abs (infsup (-1, inf)) == infsup (0, inf)); +***** assert (abs (infsup (-inf, -1)) == infsup (1, inf)); +***** assert (abs (infsup (-inf, 1)) == infsup (0, inf)); ***** # from the documentation string -***** assert (isequal (asin (infsupdec (.5)), infsupdec ("[0x1.0C152382D7365p-1, 0x1.0C152382D7366p-1]"))); +***** assert (abs (infsup (2.5, 3.5)) == infsup (2.5, 3.5)); +***** assert (abs (infsup (-0.5, 5.5)) == infsup (0, 5.5)); +***** # correct use of signed zeros +***** assert (signbit (inf (abs (infsup (-1, 0))))); +***** test + x = abs (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.asin; + testcases = testdata.NoSignal.infsup.abs; for testcase = [testcases]' assert (isequaln (... - asin (testcase.in{1}), ... + abs (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.asin; + testcases = testdata.NoSignal.infsup.abs; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (asin (in1), out)); + assert (isequaln (abs (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.asin; + testcases = testdata.NoSignal.infsup.abs; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12075,44 +12223,73 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (asin (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mldivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mldivide.m -***** # unique solution -***** assert (isequal (infsupdec ([1, 0; 0, 2]) \ [2, 0; 0, 4], infsupdec ([2, 0; 0 2], "trv"))); -***** # no solution -***** assert (all (isempty (infsupdec ([1, 0; 2, 0]) \ [3; 0]))); -***** # many solutions -***** assert (isequal (infsupdec ([1, 0; 2, 0]) \ [4; 8], infsupdec ([4; -inf], [4; inf], "trv"))); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@infsupdec/strictprecedes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/strictprecedes.m -***** assert (strictprecedes (infsupdec (1, 1.9), infsupdec (2.1, 3))); -***** assert (not (strictprecedes (infsupdec (1, 2), infsupdec (2, 3)))); + assert (isequaln (abs (in1), out)); +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/@infsup/hdist.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/hdist.m +***** # from the documentation string +***** assert (hdist (infsup (1, 6), infsup (2, 8)), 2); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/idist.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/idist.m +***** # from the documentation string +***** assert (idist (infsup (0, 6), infsup (7, 20)), 1); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/ceil.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ceil.m +***** # Empty interval +***** assert (ceil (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (ceil (infsup (0)) == infsup (0)); +***** assert (ceil (infsup (0.5)) == infsup (1)); +***** assert (ceil (infsup (-0.5)) == infsup (0)); +***** # Bounded intervals +***** assert (ceil (infsup (-0.5, 0)) == infsup (0)); +***** assert (ceil (infsup (0, 0.5)) == infsup (0, 1)); +***** assert (ceil (infsup (0.25, 0.5)) == infsup (1)); +***** assert (ceil (infsup (-1, 0)) == infsup (-1, 0)); +***** assert (ceil (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (ceil (infsup (-realmin, realmin)) == infsup (0, 1)); +***** assert (ceil (infsup (-realmax, realmax)) == infsup (-realmax, realmax)); +***** # Unbounded intervals +***** assert (ceil (infsup (-realmin, inf)) == infsup (0, inf)); +***** assert (ceil (infsup (-realmax, inf)) == infsup (-realmax, inf)); +***** assert (ceil (infsup (-inf, realmin)) == infsup (-inf, 1)); +***** assert (ceil (infsup (-inf, realmax)) == infsup (-inf, realmax)); +***** assert (ceil (infsup (-inf, inf)) == infsup (-inf, inf)); +***** # from the documentation string +***** assert (ceil (infsup (2.5, 3.5)) == infsup (3, 4)); +***** assert (ceil (infsup (-.5, 5)) == infsup (0, 5)); +***** # correct use of signed zeros +***** test + x = ceil (infsup (-0.5)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = ceil (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.strictPrecedes; + testcases = testdata.NoSignal.infsup.ceil; for testcase = [testcases]' assert (isequaln (... - strictprecedes (testcase.in{1}, testcase.in{2}), ... + ceil (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.strictPrecedes; + testcases = testdata.NoSignal.infsup.ceil; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (strictprecedes (in1, in2), out)); + assert (isequaln (ceil (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.strictPrecedes; + testcases = testdata.NoSignal.infsup.ceil; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12121,59 +12298,154 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (strictprecedes (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/ei.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/ei.m -***** assert (isempty (ei (infsupdec (0)))); -***** assert (isempty (ei (infsupdec (-inf, -2)))); -***** assert (isequal (ei (infsupdec (0, inf)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (ei (infsupdec (1, inf)), infsupdec ("[0x1.E52670F350D08, Inf]_dac"))); + assert (isequaln (ceil (in1), out)); +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/@infsup/bisect.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/bisect.m +***** test + # from the documentation string + [a, b] = bisect (infsup (2, 32)); + assert (a == infsup (2, 8)); + assert (b == infsup (8, 32)); +***** test + [a, b] = bisect (infsup (-inf, inf)); + assert (a == infsup (-inf, 0)); + assert (b == infsup (0, inf)); +***** test + [a, b] = bisect (infsup (0)); + assert (a == 0); + assert (b == 0); +***** test + [a, b] = bisect (infsup ()); + assert (isempty (a)); + assert (isempty (b)); +***** test + [a, b] = bisect (infsup (0, inf)); + assert (a == infsup (0, pow2 (-25))); + assert (b == infsup (pow2 (-25), inf)); +***** test + [a, b] = bisect (infsup (-inf, 0)); + assert (a == infsup (-inf, -pow2 (-25))); + assert (b == infsup (-pow2 (-25), 0)); +***** # correct use of signed zeros +***** test + [a, b] = bisect (infsup (0)); + assert (signbit (inf (a))); + assert (signbit (inf (b))); + assert (not (signbit (sup (a)))); + assert (not (signbit (sup (b)))); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/sprintf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sprintf.m +***** assert (sprintf ("%g", infsup ("pi")), "3.14159 3.1416"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/gt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/gt.m +***** assert (not (gt (infsup (2, 3), infsup (1, 3)))); +***** assert (gt (infsup (2, 3.1), infsup (1, 3))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/nextout.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/nextout.m ***** # from the documentation string -***** assert (isequal (ei (infsupdec (1)), infsupdec ("[0x1.E52670F350D08, 0x1.E52670F350D09]_com"))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/nthroot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/nthroot.m -***** assert (isequal (nthroot (infsupdec (25, 36), 2), infsupdec (5, 6))); -***** assert (isequal (nthroot (infsupdec (-1, 1), 2), infsupdec (0, 1, "trv"))); -***** assert (isequal (nthroot (infsupdec (-1, 1), 3), infsupdec (-1, 1))); -***** assert (isequal (nthroot (infsupdec (-1, 1), -2), infsupdec (1, inf, "trv"))); -***** assert (isequal (nthroot (infsupdec (-1, 1), -3), infsupdec (-inf, inf, "trv"))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/csc.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/csc.m +***** test + x = nextout (infsup (1)); + assert (inf (x), 1 - eps / 2); + assert (sup (x), 1 + eps); +***** # correct use of signed zeros +***** test + x = nextout (infsup (pow2 (-1074))); + assert (signbit (inf (x))); +***** test + x = nextout (infsup (-pow2 (-1074))); + assert (not (signbit (sup (x)))); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/sum.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sum.m ***** # from the documentation string -***** assert (isequal (csc (infsupdec (1)), infsupdec ("[0x1.303AA9620B223, 0x1.303AA9620B224]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/intersect.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/intersect.m +***** assert (sum ([infsup(1), pow2(-1074), -1]) == infsup (pow2 (-1074))); +***** assert (sum (infsup ([])) == 0); +***** # correct use of signed zeros +***** test + x = sum (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** # N-dimensional arrays +***** assert (sum (infsup (ones (1, 1, 10))) == infsup (10)); +***** assert (sum (infsup (ones (1, 1, 10))) == infsup (10)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/disp.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/disp.m +***** assert (disp (infsup([])), ""); +***** assert (disp (infsup(zeros (0, 1))), ""); +***** assert (disp (infsup(zeros (1, 0))), ""); +***** assert (disp (infsup(0)), "[0]\n"); +***** assert (disp (infsup(0, 1)), "[0, 1]\n"); +***** assert (disp (infsup([0 0])), " [0] [0]\n"); +***** assert (disp (infsup([0 0; 0 0])), " [0] [0]\n [0] [0]\n"); +***** assert (disp (infsup([0; 0])), " [0]\n [0]\n"); +***** assert (disp (infsup (zeros (1, 1, 1, 0))), ""); +***** assert (disp (infsup(zeros(2, 2, 2))), "ans(:,:,1) =\n\n [0] [0]\n [0] [0]\n\nans(:,:,2) =\n\n [0] [0]\n [0] [0]\n") +***** test + i = infsupdec (reshape (1:24, 2, 3, 4)); + i(1, 1, 2) = entire (); + i(1, 1, 3) = empty (); + i(1, 1, 4) = nai (); + assert (disp (i(1,1,:)), "ans(:,:,1) = [1]_com\nans(:,:,2) = [Entire]_dac\nans(:,:,3) = [Empty]_trv\nans(:,:,4) = [NaI]\n") +***** test + x = infsup (zeros ([1 2 2])); + unwind_protect + format compact + compact = disp (x); + format loose + loose = disp (x); + unwind_protect_cleanup + format + end_unwind_protect + assert (compact, "ans(:,:,1) =\n [0] [0]\nans(:,:,2) =\n [0] [0]\n"); + assert (loose, "ans(:,:,1) =\n\n [0] [0]\n\nans(:,:,2) =\n\n [0] [0]\n"); +***** test + x = infsup (zeros ([1 1 2])); + unwind_protect + format compact + compact = disp (x); + format loose + loose = disp (x); + unwind_protect_cleanup + format + end_unwind_protect + assert (compact, "ans(:,:,1) = [0]\nans(:,:,2) = [0]\n"); + assert (loose, "ans(:,:,1) = [0]\nans(:,:,2) = [0]\n"); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/@infsup/powrev1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/powrev1.m ***** # from the documentation string -***** assert (isequal (intersect (infsupdec (1, 3), infsupdec (2, 4)), infsupdec (2, 3, "trv"))); +***** assert (powrev1 (infsup (2, 5), infsup (3, 6)) == "[0x1.3EE8390D43955, 0x1.3988E1409212Fp1]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.intersection; + testcases = testdata.NoSignal.infsup.powRev1; for testcase = [testcases]' assert (isequaln (... - intersect (testcase.in{1}, testcase.in{2}), ... + powrev1 (testcase.in{1}, testcase.in{2}, testcase.in{3}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.intersection; + testcases = testdata.NoSignal.infsup.powRev1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); - assert (isequaln (intersect (in1, in2), out)); + assert (isequaln (powrev1 (in1, in2, in3), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.intersection; + testcases = testdata.NoSignal.infsup.powRev1; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); + in3 = vertcat (vertcat (testcases.in){:, 3}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12183,55 +12455,60 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); + in3 = reshape ([in3; in3(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (intersect (in1, in2), out)); + assert (isequaln (powrev1 (in1, in2, in3), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mtimes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mtimes.m -***** assert (isequal (infsupdec ([1, 2; 7, 15], [2, 2; 7.5, 15], {"com", "def"; "dac", "com"}) * infsupdec ([3, 3; 0, 1], [3, 3.25; 0, 2]), infsupdec ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375], {"def", "def"; "dac", "dac"}))); +[inst/@infsup/mrdivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mrdivide.m ***** # from the documentation string -***** assert (isequal (infsupdec ([1, 2; 7, 15], [2, 2; 7.5, 15]) * infsupdec ([3, 3; 0, 1], [3, 3.25; 0, 2]), infsupdec ([3, 5; 21, 36], [6, 10.5; 22.5, 54.375]))); +***** assert (infsup ([1, 2; 3, 4]) / [3, 4; 1, 2] == infsup ([0, 1; 1, 0])); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/lu.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/lu.m +***** test + [l, u] = lu (infsup (magic (3))); + assert (l == infsup ({1, 0, 0; .375, 1, 0; .5, "68/37", 1}));, ... + assert (subset (u, infsup ({8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F2298375Bp3"}, ... + {8, 1, 6; 0, 4.625, 4.75; 0, 0, "-0x1.3759F22983759p3"}))); +***** test + A = magic (3); + A([1, 5, 9]) = 0; + [l, u, p] = lu (infsup (A)); + assert (p, [0, 0, 1; 1, 0, 0; 0, 1, 0]); + assert (l == infsup ({1, 0, 0; "4/3", 1, 0; 0, "1/9", 1})); + assert (subset (u, infsup ({3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAACp3"; 0, 0, "0x1.C25ED097B425Ep2"}, ... + {3, 0, 7; 0, 9, "-0x1.2AAAAAAAAAAAAp3"; 0, 0, "0x1.C25ED097B426p2"}))); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/nextout.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/nextout.m +[inst/@infsup/pow10.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/pow10.m ***** # from the documentation string + assert (pow10 (infsup (5)) == infsup (100000)); +***** # correct use of signed zeros ***** test - x = nextout (infsupdec (1)); - assert (inf (x), 1 - eps / 2); - assert (sup (x), 1 + eps); - assert (decorationpart (x), {"trv"}); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/atan2rev1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/atan2rev1.m -***** # from the documentation string -***** assert (isequal (atan2rev1 (infsupdec (1, 2), infsupdec ("pi") / 4), infsupdec ("[0x1.FFFFFFFFFFFFFp-1, 0x1.0000000000001p1]_trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/interior.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/interior.m -***** assert (interior (infsupdec (1, 2), infsupdec (0, 3))); + x = pow10 (infsup (-inf, -realmax)); + assert (signbit (inf (x))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.interior; + testcases = testdata.NoSignal.infsup.exp10; for testcase = [testcases]' assert (isequaln (... - interior (testcase.in{1}, testcase.in{2}), ... + pow10 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.interior; + testcases = testdata.NoSignal.infsup.exp10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (interior (in1, in2), out)); + assert (isequaln (pow10 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.interior; + testcases = testdata.NoSignal.infsup.exp10; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12240,37 +12517,38 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (interior (in1, in2), out)); + assert (isequaln (pow10 (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sign.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sign.m +[inst/@infsup/csch.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/csch.m ***** # from the documentation string -***** assert (isequal (sign (infsupdec (2, 3)), infsupdec (1))); -***** assert (isequal (sign (infsupdec (0)), infsupdec (0, "dac"))); -***** assert (isequal (sign (infsupdec (0, 5)), infsupdec (0, 1, "def"))); -***** assert (isequal (sign (infsupdec (-17)), infsupdec (-1))); +***** assert (csch (infsup (1)) == "[0x1.B3AB8A78B90Cp-1, 0x1.B3AB8A78B90C1p-1]"); +***** # correct use of signed zeros +***** test + x = csch (infsup (0, inf)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sign; + testcases = testdata.NoSignal.infsup.csch; for testcase = [testcases]' assert (isequaln (... - sign (testcase.in{1}), ... + csch (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sign; + testcases = testdata.NoSignal.infsup.csch; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sign (in1), out)); + assert (isequaln (csch (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sign; + testcases = testdata.NoSignal.infsup.csch; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12281,32 +12559,36 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sign (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/acosh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/acosh.m + assert (isequaln (csch (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/rad.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/rad.m +***** test; + [m, r] = rad (infsup (2.5, 3.5)); + assert (m, 3); + assert (r, .5); ***** # from the documentation string -***** assert (isequal (acosh (infsupdec (2)), infsupdec ("[0x1.5124271980434, 0x1.5124271980435]"))); +***** assert (rad (infsup (2.5, 3.5)), .5); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.acosh; + testcases = testdata.NoSignal.infsup.rad; for testcase = [testcases]' assert (isequaln (... - acosh (testcase.in{1}), ... + rad (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.acosh; + testcases = testdata.NoSignal.infsup.rad; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (acosh (in1), out)); + assert (isequaln (rad (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.acosh; + testcases = testdata.NoSignal.infsup.rad; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12317,251 +12599,95 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (acosh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/infsupdec.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/infsupdec.m -***** # [NaI]s -***** assert (isnai (infsupdec ("[nai]"))); # quiet [NaI] -***** assert (isnai (infsupdec (" [ nai ] "))); # quiet [NaI] -***** assert (isnai (infsupdec ({0, "[nai]"})), [false, true]); # quiet [NaI] -***** warning id=interval:UndefinedOperation - assert (isnai (infsupdec (3, 2))); # illegal boundaries -***** warning id=interval:UndefinedOperation - assert (isnai (infsupdec (inf, -inf))); # illegal boundaries -***** warning id=interval:UndefinedOperation - assert (isnai (infsupdec ("Flugeldufel"))); # illegal literal -***** warning id=interval:UndefinedOperation - assert (isnai (infsupdec ("[1, Inf]_com"))); # illegal decorated literal -***** warning id=interval:UndefinedOperation - assert (isnai (infsupdec ("[Empty]_def"))); # illegal decorated literal -***** # decoration adjustments, setDec function -***** test - x = infsupdec (42, inf, "com"); - assert (inf (x), 42); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** test - x = infsupdec (-inf, inf, {"com"}); - assert (inf (x), -inf); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** test - x = infsupdec ("def"); - assert (inf (x), inf); - assert (sup (x), -inf); - assert (decorationpart (x), {"trv"}); -***** # overflow -***** test - x = infsupdec ("[1, 1e999]_com"); - assert (inf (x), 1); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** # decorated interval literal -***** test - x = infsupdec ("[2, 3]_def"); - assert (inf (x), 2); - assert (sup (x), 3); - assert (decorationpart (x), {"def"}); -***** test - x = infsupdec ("[1, 5]_dac"); - assert (inf (x), 1); - assert (sup (x), 5); - assert (decorationpart (x), {"dac"}); -***** test - x = infsupdec ("[1, Infinity]_dac"); - assert (inf (x), 1); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** test - x = infsupdec ("[Empty]_trv"); - assert (inf (x), inf); - assert (sup (x), -inf); - assert (decorationpart (x), {"trv"}); -***** # automatic decoration / undecorated interval literal / newDec function -***** test - x = infsupdec ("[2, 3]"); - assert (inf (x), 2); - assert (sup (x), 3); - assert (decorationpart (x), {"com"}); -***** test - x = infsupdec ("[Empty]"); - assert (inf (x), inf); - assert (sup (x), -inf); - assert (decorationpart (x), {"trv"}); -***** test - x = infsupdec ("[Entire]"); - assert (inf (x), -inf); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** test - x = infsupdec (""); - assert (inf (x), -inf); - assert (sup (x), inf); - assert (decorationpart (x), {"dac"}); -***** # separate decoration information -***** test - x = infsupdec ("[2, 3]", "def"); - assert (inf (x), 2); - assert (sup (x), 3); - assert (decorationpart (x), {"def"}); -***** # cell array with decorated interval literals -***** test - x = infsupdec ({"[2, 3]_def", "[4, 5]_dac"}); - assert (inf (x), [2, 4]); - assert (sup (x), [3, 5]); - assert (decorationpart (x), {"def", "dac"}); -***** #cell array with separate decoration cell array -***** test - x = infsupdec ({"[2, 3]", "[4, 5]"}, {"def", "dac"}); - assert (inf (x), [2, 4]); - assert (sup (x), [3, 5]); - assert (decorationpart (x), {"def", "dac"}); -***** # cell array with separate decoration vector -***** test - x = infsupdec ({"[2, 3]"; "[4, 5]"}, ["def"; "dac"]); - assert (inf (x), [2; 4]); - assert (sup (x), [3; 5]); - assert (decorationpart (x), {"def"; "dac"}); -***** # cell array with broadcasting decoration -***** test - x = infsupdec ({"[2, 3]", "[4, 5]"}, "def"); - assert (inf (x), [2, 4]); - assert (sup (x), [3, 5]); - assert (decorationpart (x), {"def", "def"}); -***** test - x = infsupdec ({"[2, 3]", "[4, 5]"}, "def; dac"); - assert (inf (x), [2, 4; 2, 4]); - assert (sup (x), [3, 5; 3, 5]); - assert (decorationpart (x), {"def", "def"; "dac", "dac"}); -***** # separate boundaries with decoration -***** test - x = infsupdec (2, 3, "def"); - assert (inf (x), 2); - assert (sup (x), 3); - assert (decorationpart (x), {"def"}); -***** # matrix boundaries with decoration -***** test - x = infsupdec ([3, 16], {"def", "trv"}); - assert (inf (x), [3, 16]); - assert (sup (x), [3, 16]); - assert (decorationpart (x), {"def", "trv"}); -***** # separate matrix boundaries with broadcasting decoration -***** test - x = infsupdec (magic (3), magic (3) + 1, "def"); - assert (inf (x), magic (3)); - assert (sup (x), magic (3) + 1); - assert (decorationpart (x), {"def", "def", "def"; "def", "def", "def"; "def", "def", "def"}); -***** # N-dimensional arrays -***** test - x = infsupdec (zeros (2, 2, 2)); - assert (inf (x), zeros (2, 2, 2)); - assert (sup (x), zeros (2, 2, 2)); - assert (decorationpart (x), repmat ({"com"}, [2, 2, 2])); + assert (isequaln (rad (in1), out)); ***** test - x = infsupdec (zeros (2, 2, 2), ones (2, 2, 2), repmat ({"trv"}, [2, 2, 2])); - assert (inf (x), zeros (2, 2, 2)); - assert (sup (x), ones (2, 2, 2)); - assert (decorationpart (x), repmat ({"trv"}, [2, 2, 2])); + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.rad; + for testcase = [testcases]' + assert (isequaln (... + rad (testcase.in{1}), ... + testcase.out)); + endfor ***** test - x = infsupdec (zeros (1, 1, 2), ones (1, 2, 1), {"trv"; "trv"}); - assert (inf (x), zeros (2, 2, 2)); - assert (sup (x), ones (2, 2, 2)); - assert (decorationpart (x), repmat ({"trv"}, [2, 2, 2])); + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.rad; + in1 = vertcat (vertcat (testcases.in){:, 1}); + out = vertcat (testcases.out); + assert (isequaln (rad (in1), out)); ***** test - c1 = reshape ({1, 2, 3, 4, 5, 6, 7, 8}, 2, 2, 2); - c2 = reshape ({2, 3, 4, 5, 6, 7, 8, 9}, 2, 2, 2); - decpart = reshape ({"trv", "def", "dac", "com", "trv", "def", "dac", "com"}, 2, 2, 2); - x = infsupdec (c1, c2, decpart); - assert (inf (x), reshape (1:8, 2, 2, 2)); - assert (sup (x), reshape (2:9, 2, 2, 2)); - assert (decorationpart (x), decpart) + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.rad; + in1 = vertcat (vertcat (testcases.in){:, 1}); + out = vertcat (testcases.out); + # Reshape data + i = -1; + do + i = i + 1; + testsize = factor (numel (in1) + i); + until (numel (testsize) > 2) + in1 = reshape ([in1; in1(1:i)], testsize); + out = reshape ([out; out(1:i)], testsize); + assert (isequaln (rad (in1), out)); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@infsup/ismember.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ismember.m +***** assert (ismember (0, entire ())); +***** assert (ismember (0, intervalpart (entire ()))); +***** assert (not (ismember (0, empty ()))); +***** assert (not (ismember (0, intervalpart (empty ())))); +***** warning assert (not (ismember (0, infsupdec (2, 1)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsup.setDec; + testcases = testdata.NoSignal.infsup.isMember; for testcase = [testcases]' assert (isequaln (... - infsupdec (testcase.in{1}, testcase.in{2}), ... + ismember (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsup.setDec; + testcases = testdata.NoSignal.infsup.isMember; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (infsupdec (in1, in2), out)); -***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); - for testcase = [testcases]' - assert (isequaln (... - infsupdec (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - endfor + assert (isequaln (ismember (in1, in2), out)); ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); + # N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.isMember; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (infsupdec (in1, in2), out)); + # Reshape data + i = -1; + do + i = i + 1; + testsize = factor (numel (in1) + i); + until (numel (testsize) > 2) + in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); + out = reshape ([out; out(1:i)], testsize); + assert (isequaln (ismember (in1, in2), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.("d-textToInterval"); + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.isMember; for testcase = [testcases]' assert (isequaln (... - infsupdec (testcase.in{1}), ... + ismember (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.("d-textToInterval"); - in1 = vertcat (testcases.in); + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.isMember; + in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (infsupdec (in1), out)); -***** warning - testcases = testdata.PossiblyUndefinedOperation.infsupdec.("d-textToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsupdec (testcase.in{1}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:PossiblyUndefinedOperation"); - endfor -***** warning - testcases = testdata.UndefinedOperation.infsupdec.("d-textToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsupdec (testcase.in{1}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); - endfor -***** warning - testcases = testdata.UndefinedOperation.infsupdec.("d-numsToInterval"); - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsupdec (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); - endfor -***** warning - testcases = testdata.UndefinedOperation.infsup.setDec; - for testcase = [testcases]' - lastwarn ("", ""); - assert (isequaln (... - infsupdec (testcase.in{1}, testcase.in{2}), ... - testcase.out)); - assert (nthargout (2, @lastwarn), "interval:UndefinedOperation"); - endfor + assert (isequaln (ismember (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.("d-numsToInterval"); + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsupdec.isMember; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -12574,32 +12700,34 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (infsupdec (in1, in2), out)); -44 tests, 44 passed, 0 known failure, 0 skipped -[inst/@infsupdec/isempty.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/isempty.m -***** assert (isempty (infsupdec ())); -***** assert (not (isempty (infsupdec (1, 2)))); + assert (isequaln (ismember (in1, in2), out)); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/@infsup/newdec.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/newdec.m +***** # from the documentation string +***** assert (isequal (newdec (infsup (2, 3)), infsupdec (2, 3))); +***** assert (isequal (newdec (infsupdec (2, 3)), infsupdec (2, 3))); +***** assert (isequal (newdec (infsupdec (1, "trv")), infsupdec (1, "trv"))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.isEmpty; + testcases = testdata.NoSignal.infsup.newDec; for testcase = [testcases]' assert (isequaln (... - isempty (testcase.in{1}), ... + newdec (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.isEmpty; + testcases = testdata.NoSignal.infsup.newDec; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (isempty (in1), out)); + assert (isequaln (newdec (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.isEmpty; + testcases = testdata.NoSignal.infsup.newDec; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12610,32 +12738,40 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (isempty (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/exp.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/exp.m -***** # from the documentation string -***** assert (isequal (exp (infsupdec (1)), infsupdec ("e"))); + assert (isequaln (newdec (in1), out)); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/@infsup/iscommoninterval.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/iscommoninterval.m +***** assert (iscommoninterval (infsup (2, 3))); +***** assert (not (iscommoninterval (infsup (2, inf)))); +***** assert (not (iscommoninterval (infsup ()))); +***** assert (not (iscommoninterval (infsup (-inf, inf)))); +***** assert (iscommoninterval (infsupdec (2, 3, "com"))); +***** assert (iscommoninterval (infsupdec (2, 3, "trv"))); +***** assert (not (iscommoninterval (infsupdec (2, inf, "trv")))); +***** assert (not (iscommoninterval (empty ()))); +***** assert (not (iscommoninterval (entire ()))); +***** warning assert (not (iscommoninterval (infsupdec (2, 1)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.exp; + testcases = testdata.NoSignal.infsup.isCommonInterval; for testcase = [testcases]' assert (isequaln (... - exp (testcase.in{1}), ... + iscommoninterval (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.exp; + testcases = testdata.NoSignal.infsup.isCommonInterval; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (exp (in1), out)); + assert (isequaln (iscommoninterval (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.exp; + testcases = testdata.NoSignal.infsup.isCommonInterval; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12646,45 +12782,26 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (exp (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/decorationpart.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/decorationpart.m -***** assert (decorationpart (infsupdec (3, 4)), {"com"}); -***** assert (decorationpart (infsupdec (3, inf)), {"dac"}); -***** assert (decorationpart (infsupdec ("[3, 4]_def")), {"def"}); -***** assert (decorationpart (infsupdec ()), {"trv"}); -***** assert (decorationpart (nai), {"ill"}); -***** assert (decorationpart (nai, "uint8") ... - < decorationpart (infsupdec ("[3, 4]_trv"), "uint8")); -***** assert (decorationpart (infsupdec ("[3, 4]_trv"), "uint8") ... - < decorationpart (infsupdec ("[3, 4]_def"), "uint8")); -***** assert (decorationpart (infsupdec ("[3, 4]_def"), "uint8") ... - < decorationpart (infsupdec ("[3, 4]_dac"), "uint8")); -***** assert (decorationpart (infsupdec ("[3, 4]_dac"), "uint8") ... - < decorationpart (infsupdec ("[3, 4]_com"), "uint8")); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (iscommoninterval (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.decorationPart; + # Decorated scalar evaluation + testcases = testdata.NoSignal.infsupdec.isCommonInterval; for testcase = [testcases]' assert (isequaln (... - decorationpart (testcase.in{1}), ... - {testcase.out})); + iscommoninterval (testcase.in{1}), ... + testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.decorationPart; + # Decorated vector evaluation + testcases = testdata.NoSignal.infsupdec.isCommonInterval; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = {testcases.out}'; - assert (isequaln (decorationpart (in1), out)); + out = vertcat (testcases.out); + assert (isequaln (iscommoninterval (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.decorationPart; + # Decorated N-dimensional array evaluation + testcases = testdata.NoSignal.infsup.isCommonInterval; in1 = vertcat (vertcat (testcases.in){:, 1}); - out = {testcases.out}'; + out = vertcat (testcases.out); # Reshape data i = -1; do @@ -12693,32 +12810,60 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (decorationpart (in1), out)); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/@infsupdec/pow2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/pow2.m + assert (isequaln (iscommoninterval (in1), out)); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/@infsup/absrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/absrev.m +***** # Empty interval +***** assert (absrev (infsup ()) == infsup ()); +***** assert (absrev (infsup (0, 1), infsup ()) == infsup ()); +***** assert (absrev (infsup (0, 1), infsup (7, 9)) == infsup ()); +***** assert (absrev (infsup (), infsup (0, 1)) == infsup ()); +***** assert (absrev (infsup (-2, -1)) == infsup ()); +***** # Singleton intervals +***** assert (absrev (infsup (1)) == infsup (-1, 1)); +***** assert (absrev (infsup (0)) == infsup (0)); +***** assert (absrev (infsup (-1)) == infsup ()); +***** assert (absrev (infsup (realmax)) == infsup (-realmax, realmax)); +***** assert (absrev (infsup (realmin)) == infsup (-realmin, realmin)); +***** assert (absrev (infsup (-realmin)) == infsup ()); +***** assert (absrev (infsup (-realmax)) == infsup ()); +***** # Bound intervals +***** assert (absrev (infsup (1, 2)) == infsup (-2, 2)); +***** assert (absrev (infsup (1, 2), infsup (0, 2)) == infsup (1, 2)); +***** assert (absrev (infsup (0, 1), infsup (-0.5, 2)) == infsup (-0.5, 1)); +***** assert (absrev (infsup (-1, 1)) == infsup (-1, 1)); +***** assert (absrev (infsup (-1, 0)) == infsup (0)); +***** # Unbound intervals +***** assert (absrev (infsup (0, inf)) == infsup (-inf, inf)); +***** assert (absrev (infsup (-inf, inf)) == infsup (-inf, inf)); +***** assert (absrev (infsup (-inf, 0)) == infsup (0)); +***** assert (absrev (infsup (1, inf), infsup (-inf, 0)) == infsup (-inf, -1)); +***** assert (absrev (infsup (-1, inf)) == infsup (-inf, inf)); +***** assert (absrev (infsup (-inf, -1)) == infsup ()); +***** assert (absrev (infsup (-inf, 1)) == infsup (-1, 1)); ***** # from the documentation string -***** assert (isequal (pow2 (infsupdec (5)), infsupdec (32))); +***** assert (absrev (infsup (-2, 1)) == infsup (-1, 1)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.exp2; + # Scalar evaluation with one argument + testcases = testdata.NoSignal.infsup.absRev; for testcase = [testcases]' assert (isequaln (... - pow2 (testcase.in{1}), ... + absrev (testcase.in{1}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.exp2; + # Vector evaluation with one argument + testcases = testdata.NoSignal.infsup.absRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (pow2 (in1), out)); + assert (isequaln (absrev (in1), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.exp2; + # N-dimensional array evaluation with one argument + testcases = testdata.NoSignal.infsup.absRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12726,36 +12871,30 @@ do i = i + 1; testsize = factor (numel (in1) + i); - until (numel (testsize) > 2 | i == numel (in1)) + until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (pow2 (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sin.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sin.m -***** # from the documentation string -***** assert (isequal (sin (infsupdec (1)), infsupdec ("[0x1.AED548F090CEEp-1, 0x1.AED548F090CEFp-1]"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (absrev (in1), out)); ***** test - # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sin; + # Scalar evaluation with two arguments + testcases = testdata.NoSignal.infsup.absRevBin; for testcase = [testcases]' assert (isequaln (... - sin (testcase.in{1}), ... + absrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test - # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sin; + # Vector evaluation with two arguments + testcases = testdata.NoSignal.infsup.absRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (sin (in1), out)); + assert (isequaln (absrev (in1, in2), out)); ***** test - # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sin; + # N-dimensional array evaluation with two arguments + testcases = testdata.NoSignal.infsup.absRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12764,38 +12903,45 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sin (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/powrev1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/powrev1.m -***** # from the documentation string -***** assert (isequal (powrev1 (infsupdec (2, 5), infsupdec (3, 6)), infsupdec ("[0x1.3EE8390D43955, 0x1.3988E1409212Fp1]_trv"))); + assert (isequaln (absrev (in1, in2), out)); +31 tests, 31 passed, 0 known failure, 0 skipped +[inst/@infsup/fprintf.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/fprintf.m +***** xtest + assert (evalc ("n = fprintf ('%g', infsup ('pi'));"), "3.14159 3.1416"); + assert (n, 14); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/coshrev.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/coshrev.m +[inst/@infsup/log2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/log2.m ***** # from the documentation string -***** assert (isequal (coshrev (infsupdec (-2, 1)), infsupdec (0, "trv"))); +***** assert (log2 (infsup (2)) == 1); +***** # correct use of signed zeros +***** test + x = log2 (infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.coshRev; + testcases = testdata.NoSignal.infsup.log2; for testcase = [testcases]' assert (isequaln (... - coshrev (testcase.in{1}), ... + log2 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.coshRev; + testcases = testdata.NoSignal.infsup.log2; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (coshrev (in1), out)); + assert (isequaln (log2 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.coshRev; + testcases = testdata.NoSignal.infsup.log2; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12806,27 +12952,45 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (coshrev (in1), out)); + assert (isequaln (log2 (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/triu.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/triu.m +***** assert (triu (infsup (magic (10))) == triu (magic (10))); +***** assert (triu (infsup (magic (10)), 1) == triu (magic (10), 1)); +***** assert (triu (infsup (magic (10)), -1) == triu (magic (10), -1)); +***** assert (triu (infsup (magic (10)), 0, "pack") == triu (magic (10), 0, "pack")); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/asinh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/asinh.m +***** # from the documentation string +***** assert (asinh (infsup (1)) == "[0x1.C34366179D426p-1, 0x1.C34366179D427p-1]"); +***** # correct use of signed zeros +***** test + x = asinh (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.coshRevBin; + testcases = testdata.NoSignal.infsup.asinh; for testcase = [testcases]' assert (isequaln (... - coshrev (testcase.in{1}, testcase.in{2}), ... + asinh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.coshRevBin; + testcases = testdata.NoSignal.infsup.asinh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (coshrev (in1, in2), out)); + assert (isequaln (asinh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.coshRevBin; + testcases = testdata.NoSignal.infsup.asinh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12835,35 +12999,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (coshrev (in1, in2), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/precedes.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/precedes.m -***** assert (precedes (infsupdec (1, 2), infsupdec (2, 3))); -***** assert (not (precedes (infsupdec (1, 2.1), infsupdec (1.9, 3)))); + assert (isequaln (asinh (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/lt.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/lt.m +***** assert (not (lt (infsup (1, 3), infsup (3)))); +***** assert (lt (infsup (1, 3), infsup (3.1))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.precedes; + testcases = testdata.NoSignal.infsup.strictLess; for testcase = [testcases]' assert (isequaln (... - precedes (testcase.in{1}, testcase.in{2}), ... + lt (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.precedes; + testcases = testdata.NoSignal.infsup.strictLess; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (precedes (in1, in2), out)); + assert (isequaln (lt (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.precedes; + testcases = testdata.NoSignal.infsup.strictLess; in1 = vertcat (vertcat (testcases.in){:, 1}); in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); @@ -12876,35 +13039,81 @@ in1 = reshape ([in1; in1(1:i)], testsize); in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (precedes (in1, in2), out)); + assert (isequaln (lt (in1, in2), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sup.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sup.m -***** assert (sup (infsupdec (2.5, 3.5)), 3.5); -***** assert (sup (infsupdec ()), -inf); -***** assert (sup (infsupdec ("[nai]")), nan); -***** warning id=interval:UndefinedOperation - assert (sup (infsupdec (3, 2)), nan); +[inst/@infsup/iscolumn.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/iscolumn.m +***** assert (not (iscolumn (infsup ([])))); +***** assert (iscolumn (infsup (0))); +***** assert (not (iscolumn (infsup (zeros (1, 2))))); +***** assert (iscolumn (infsup (zeros (2, 1)))); +***** assert (not (iscolumn (infsup (zeros (5))))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/columns.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/columns.m +***** assert (columns (infsup (zeros (3, 4))), 4); +***** assert (columns (infsup (zeros (0, 4))), 4); +***** assert (columns (infsup (zeros (3, 0))), 0); +***** assert (columns (infsup (zeros (3, 1))), 1); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/sdist.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sdist.m +***** # from the documentation string +***** assert (sdist (infsup (0, 6), infsup (7, 20)), -1); +***** assert (sdist (infsup (3, 5), infsup (0, 1)), 2); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/postpad.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/postpad.m +***** assert (postpad (infsup (1:3), 4, 4) == infsup (1:4)); +***** assert (postpad (infsup (1:3), 2, 4) == infsup (1:2)); +***** assert (postpad (infsup (0), 10, 0, 3) == infsup (zeros (1, 1, 10))) +***** assert (postpad (infsup (zeros (1, 2, 2)), 3) == infsup (zeros (1, 3, 2))); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/issquare.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/issquare.m +***** assert (issquare (infsup ([]))); +***** assert (issquare (infsup (0))); +***** assert (not (issquare (infsup (zeros (1, 2))))); +***** assert (not (issquare (infsup (zeros (2, 1))))); +***** assert (issquare (infsup (zeros (5)))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/end.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/end.m +***** assert (infsup (magic (3))(end) == 2); +***** assert (infsup (magic (3))(end, 2) == 9); +***** assert (infsup (magic (3))(2, end) == 7); +***** assert (infsup ([1 2; 3 4; 5 6])(end:-1:1, :) == [5 6; 3 4; 1 2]); +***** assert (reshape (infsup (1:24), 2, 3, 4)(end, end) == 24) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/gauss.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/gauss.m +***** # from the documentation string +***** assert (gauss (infsup ([1, 0; 0, 2]), [2, 0; 0, 4]) == [2, 0; 0, 2]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/sinrev.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sinrev.m +***** # from the documentation string +***** assert (sinrev (infsup (-1), infsup (0, 6)) == "[0x1.2D97C7F3321D2p2, 0x1.2D97C7F3321D3p2]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.sup; + testcases = testdata.NoSignal.infsup.sinRev; for testcase = [testcases]' assert (isequaln (... - sup (testcase.in{1}), ... + sinrev (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.sup; + testcases = testdata.NoSignal.infsup.sinRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (sup (in1), out)); + assert (isequaln (sinrev (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.sup; + testcases = testdata.NoSignal.infsup.sinRev; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -12915,39 +13124,27 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (sup (in1), out)); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/@infsupdec/reshape.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/reshape.m -***** assert (isequal (reshape (infsupdec (1 : 6), 2, 3), infsupdec (reshape (1 : 6, 2, 3)))); -***** assert (isequal (reshape (infsupdec (1 : 24), 2, [], 4), infsupdec (reshape (1 : 24, 2, 3, 4)))); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/ceil.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/ceil.m -***** # from the documentation string -***** assert (isequal (ceil (infsupdec (2.5, 3.5)), infsupdec (3, 4, "def"))); -***** assert (isequal (ceil (infsupdec (-.5, 5)), infsupdec (0, 5, "def"))); -***** shared testdata - # Load compiled test data (from src/test/*.itl) - testdata = load (file_in_loadpath ("test/itl.mat")); + assert (isequaln (sinrev (in1), out)); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.ceil; + testcases = testdata.NoSignal.infsup.sinRevBin; for testcase = [testcases]' assert (isequaln (... - ceil (testcase.in{1}), ... + sinrev (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.ceil; + testcases = testdata.NoSignal.infsup.sinRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (ceil (in1), out)); + assert (isequaln (sinrev (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.ceil; + testcases = testdata.NoSignal.infsup.sinRevBin; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -12956,140 +13153,37 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (ceil (in1), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/setdiff.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/setdiff.m -***** assert (isempty (setdiff (infsupdec (), infsupdec (1, 4)))); -***** assert (setdiff (infsupdec (1, 3), infsupdec ()) == infsupdec (1, 3)); -***** assert (isempty (setdiff (infsupdec (1, 3), infsupdec (-inf, inf)))); -***** assert (isempty (setdiff (infsupdec (1, 3), infsupdec (1, 4)))); -***** assert (setdiff (infsupdec (-inf, inf), infsupdec (1, 4)) == infsupdec (-inf, inf)); -***** # from the documentation string -***** assert (setdiff (infsupdec (1, 3), infsupdec (2, 4)) == infsupdec (1, 2)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/tril.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tril.m -***** assert (tril (infsupdec (magic (10))) == tril (magic (10))); -***** assert (tril (infsupdec (magic (10)), 1) == tril (magic (10), 1)); -***** assert (tril (infsupdec (magic (10)), -1) == tril (magic (10), -1)); -***** assert (tril (infsupdec (magic (10)), 0, "pack") == tril (magic (10), 0, "pack")); -***** test - A = infsupdec (zeros (3), "trv"); - assert (decorationpart (tril (A)), {"trv", "com", "com"; "trv", "trv", "com"; "trv", "trv", "trv"}); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/rem.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rem.m -***** assert (isequal (rem (infsupdec (), infsupdec ()), infsupdec ())); -***** assert (isequal (rem (infsupdec (0), infsupdec ()), infsupdec ())); -***** assert (isequal (rem (infsupdec (), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (0), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (1), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (1, 2), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (0, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (1, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (0)), infsupdec ())); -***** assert (isequal (rem (infsupdec (0), infsupdec (1)), infsupdec (0))); -***** assert (isequal (rem (infsupdec (0), infsupdec (0, 1)), infsupdec (0, "trv"))); -***** assert (isequal (rem (infsupdec (0), infsupdec (1, 2)), infsupdec (0))); -***** assert (isequal (rem (infsupdec (0), infsupdec (0, inf)), infsupdec (0, "trv"))); -***** assert (isequal (rem (infsupdec (0), infsupdec (1, inf)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (0), infsupdec (realmax, inf)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (2), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (4), infsupdec (2)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (6), infsupdec (3)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (8), infsupdec (2)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (9), infsupdec (3)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 2)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 4)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 8)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 16)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (realmax), infsupdec (realmax / 32)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (0.1), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (0.1 * 2), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (0.1 * 4), infsupdec (0.1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (pi)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (pi / 2)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (pi / 4)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pow2 (-1074)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pow2 (-1073)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (pow2 (-1072)), infsupdec (pow2 (-1074))), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (2)), infsupdec (1))); -***** assert (isequal (rem (infsupdec (0.5), infsupdec (1)), infsupdec (0.5))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); -***** assert (isequal (rem (infsupdec (1), infsupdec (2, 3)), infsupdec (1))); -***** assert (isequal (rem (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); -***** assert (isequal (rem (infsupdec (0.5), infsupdec (1, 2)), infsupdec (0.5))); -***** assert (isequal (rem (infsupdec (0.5), infsupdec (1, inf)), infsupdec (0.5, "dac"))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15)), infsupdec (pi))); -***** assert (isequal (rem (infsupdec (pi), infsupdec (3.15, inf)), infsupdec (pi, "dac"))); -***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); -***** assert (isequal (rem (infsupdec (0, 2), infsupdec (0, 1)), infsupdec (0, 1, "trv"))); -***** assert (isequal (rem (infsupdec (0, 1), infsupdec (0, 2)), infsupdec (0, 1, "trv"))); -***** assert (isequal (rem (infsupdec (0, realmax), infsupdec (0, realmax)), infsupdec (0, realmax, "trv"))); -***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (realmax, inf)), infsupdec (0, inf, "def"))); -***** assert (isequal (rem (infsupdec (0, inf), infsupdec (0, inf)), infsupdec (0, inf, "trv"))); -***** assert (isequal (rem (infsupdec (0), infsupdec (1)), infsupdec (0))); -***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (0, 1), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (1, 2), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (0, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (1, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (realmax, inf), infsupdec (1)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (1)), infsupdec (0, "dac"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (0, 1)), infsupdec (0, 0.5, "trv"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (1, 2)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (0, inf)), infsupdec (0, 1, "trv"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (1, inf)), infsupdec (0, 1, "def"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (2, inf)), infsupdec (1, "dac"))); -***** assert (isequal (rem (infsupdec (1), infsupdec (realmax, inf)), infsupdec (1, "dac"))); -66 tests, 66 passed, 0 known failure, 0 skipped -[inst/@infsupdec/psi.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/psi.m -***** assert (isempty (psi (infsupdec (0)))); -***** assert (isempty (psi (infsupdec (-1)))); -***** assert (isempty (psi (infsupdec (-2)))); -***** assert (isempty (psi (infsupdec (-3)))); -***** assert (isequal (psi (infsupdec (pow2 (-1074), inf)), infsupdec ("[Entire]_dac"))); -***** assert (isequal (psi (infsupdec (0, inf)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-inf, -43.23)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-1, 0)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-2, -1)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-eps, eps)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-1-eps, -1+eps)), infsupdec ("[Entire]_trv"))); -***** assert (isequal (psi (infsupdec (-4.1, -3.9)), infsupdec ("[Entire]_trv"))); -***** # from the documentation string -***** assert (isequal (psi (infsupdec (1)), infsupdec ("[-0x1.2788CFC6FB619p-1, -0x1.2788CFC6FB618p-1]_com"))); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/@infsupdec/tan.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/tan.m + assert (isequaln (sinrev (in1, in2), out)); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/@infsup/times.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/times.m ***** # from the documentation string -***** assert (isequal (tan (infsupdec (1)), infsupdec ("[0x1.8EB245CBEE3A5, 0x1.8EB245CBEE3A6]"))); +***** assert (infsup (2, 3) .* infsup (1, 2) == infsup (2, 6)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.tan; + testcases = testdata.NoSignal.infsup.mul; for testcase = [testcases]' assert (isequaln (... - tan (testcase.in{1}), ... + times (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.tan; + testcases = testdata.NoSignal.infsup.mul; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (tan (in1), out)); + assert (isequaln (times (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.tan; + testcases = testdata.NoSignal.infsup.mul; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13098,41 +13192,52 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (tan (in1), out)); + assert (isequaln (times (in1, in2), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cbrt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cbrt.m +[inst/@infsup/ldivide.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ldivide.m ***** # from the documentation string -***** assert (isequal (cbrt (infsupdec (-27, 27)), infsupdec (-3, 3))); +***** assert (ldivide (infsup (2, 3), infsup (1, 2)) == "[1/3, 1]"); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/disjoint.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/disjoint.m -***** assert (disjoint (infsupdec (3, 4), infsupdec (5, 6))); -***** assert (not (disjoint (infsupdec (3, 4), infsupdec (4, 5)))); +[inst/@infsup/cat.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cat.m +***** assert (size (cat (1, infsup ([]), infsup ([]))), [0 0]); +***** assert (cat (1, infsup (1), infsup (2)) == infsup (cat (1, 1, 2))); +***** assert (cat (2, infsup (1), infsup (2)) == infsup (cat (2, 1, 2))); +***** assert (cat (5, infsup (1), infsup (2)) == infsup (cat (5, 1, 2))); +***** assert (cat (1, infsup (zeros (2, 2, 2)), infsup (ones (2, 2, 2))) == infsup (cat (1, zeros (2, 2, 2), ones (2, 2, 2)))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/pow2.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/pow2.m +***** # from the documentation string + assert (pow2 (infsup (5)) == infsup (32)); +***** # correct use of signed zeros +***** test + x = pow2 (infsup (-inf, -realmax)); + assert (signbit (inf (x))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.disjoint; + testcases = testdata.NoSignal.infsup.exp2; for testcase = [testcases]' assert (isequaln (... - disjoint (testcase.in{1}, testcase.in{2}), ... + pow2 (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.disjoint; + testcases = testdata.NoSignal.infsup.exp2; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (disjoint (in1, in2), out)); + assert (isequaln (pow2 (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.disjoint; + testcases = testdata.NoSignal.infsup.exp2; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13141,34 +13246,108 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (disjoint (in1, in2), out)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/cosh.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/cosh.m + assert (isequaln (pow2 (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/ctranspose.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ctranspose.m +***** assert (ctranspose (infsup (magic (3))) == infsup (magic (3)')); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/plot3.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/plot3.m +***** # this test is rather pointless +***** test + clf + plot3 (empty (), empty (), empty ()); + close +***** demo + clf + colormap hot + x = y = z = (1 : 3) + infsup ("[0, 1]"); + plot3 (x, y, z); + grid on +***** demo + clf + colormap jet + z = 1 : 8; + x = y = infsup ("[-1, 1]") ./ z; + plot3 (x, y, z); + grid on +***** demo + clf + [x, y] = meshgrid (mince (infsup ("[-5, 5]"), 20), ... + mince (infsup ("[0.1, 5]"), 10)); + z = log (hypot (x, y)); + blue = [38 139 210]/255; base2 = [238 232 213]/255; + plot3 (x, y, z, base2, blue); + view (330, 12) +***** demo + clf + [x, y] = meshgrid (midrad (-10 : 0.5 : 10, .25)); + z = sin (hypot (x, y)) .* hypot (x, y); + plot3 (mid (x), mid (y), z); + grid on +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/resize.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/resize.m +***** assert (resize (infsup (magic (3)), 4, 2) == infsup ([8, 1; 3, 5; 4, 9; 0, 0])); +***** assert (resize (infsup (ones (2, 2, 2)), 4, 1, 2) == infsup (resize (ones (2, 2, 2), 4, 1, 2))) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/atan2rev1.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/atan2rev1.m ***** # from the documentation string -***** assert (isequal (cosh (infsupdec (1)), infsupdec ("[0x1.8B07551D9F55, 0x1.8B07551D9F551]"))); +***** assert (atan2rev1 (infsup (1, 2), infsup ("pi") / 4) == "[0x1.FFFFFFFFFFFFFp-1, 0x1.0000000000001p1]"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/ne.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ne.m +***** assert (ne (infsup (1, 2), infsup (1, 3))); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/acos.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/acos.m +***** # Empty interval +***** assert (acos (infsup ()) == infsup ()); +***** # Singleton intervals +***** assert (acos (infsup (-1)) == infsup ("pi")); +***** assert (subset (acos (infsup (-.5)), union ((infsup ("pi") / 2), infsup ("pi")))); +***** assert (acos (infsup (0)) == infsup ("pi") / 2); +***** assert (subset (acos (infsup (.5)), union ((infsup ("pi") / 2), infsup (0)))); +***** assert (acos (infsup (1)) == infsup (0)); +***** # Bounded intervals +***** assert (acos (infsup (-1, 0)) == union ((infsup ("pi") / 2), infsup ("pi"))); +***** assert (acos (infsup (0, 1)) == union ((infsup ("pi") / 2), infsup (0))); +***** assert (acos (infsup (-1, 1)) == infsup (0, "pi")); +***** assert (acos (infsup (-2, 2)) == infsup (0, "pi")); +***** # Unbounded intervals +***** assert (acos (infsup (0, inf)) == union ((infsup ("pi") / 2), infsup (0))); +***** assert (acos (infsup (-inf, 0)) == union ((infsup ("pi") / 2), infsup ("pi"))); +***** assert (acos (infsup (-inf, inf)) == infsup (0, "pi")); +***** # from the documentation string +***** assert (acos (infsup (.5)) == "[0x1.0C152382D7365, 0x1.0C152382D7366]"); +***** # correct use of signed zeros +***** test + x = acos (infsup (1)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.cosh; + testcases = testdata.NoSignal.infsup.acos; for testcase = [testcases]' assert (isequaln (... - cosh (testcase.in{1}), ... + acos (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.cosh; + testcases = testdata.NoSignal.infsup.acos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (cosh (in1), out)); + assert (isequaln (acos (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.cosh; + testcases = testdata.NoSignal.infsup.acos; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -13179,68 +13358,37 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (cosh (in1), out)); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/sec.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/sec.m + assert (isequaln (acos (in1), out)); +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/@infsup/tan.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/tan.m ***** # from the documentation string -***** assert (isequal (sec (infsupdec (1)), infsupdec ("[0x1.D9CF0F125CC29, 0x1.D9CF0F125CC2A]_com"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/subsasgn.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/subsasgn.m +***** assert (tan (infsup (1)) == "[0x1.8EB245CBEE3A5, 0x1.8EB245CBEE3A6]"); +***** # correct use of signed zeros ***** test - A = infsupdec (magic (3)); - A(4, 4) = 42; - assert (inf (A), [magic(3),[0;0;0];0,0,0,42]); - assert (sup (A), [magic(3),[0;0;0];0,0,0,42]); - assert (decorationpart (A), {"com", "com", "com", "com"; "com", "com", "com", "com"; "com", "com", "com", "com"; "com", "com", "com", "com"}); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/roundb.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/roundb.m -***** # Empty interval -***** assert (isequal (roundb (infsupdec ()), infsupdec ())); -***** # Singleton intervals -***** assert (isequal (roundb (infsupdec (0)), infsupdec (0))); -***** assert (isequal (roundb (infsupdec (0.5)), infsupdec (0, "dac"))); -***** assert (isequal (roundb (infsupdec (0.25)), infsupdec (0))); -***** assert (isequal (roundb (infsupdec (0.75)), infsupdec (1))); -***** assert (isequal (roundb (infsupdec (1.5)), infsupdec (2, "dac"))); -***** assert (isequal (roundb (infsupdec (-0.5)), infsupdec (0, "dac"))); -***** assert (isequal (roundb (infsupdec (-1.5)), infsupdec (-2, "dac"))); -***** # Bounded intervals -***** assert (isequal (roundb (infsupdec (-0.5, 0)), infsupdec (0, "dac"))); -***** assert (isequal (roundb (infsupdec (0, 0.5)), infsupdec (0, "dac"))); -***** assert (isequal (roundb (infsupdec (0.25, 0.5)), infsupdec (0, "dac"))); -***** assert (isequal (roundb (infsupdec (-1, 0)), infsupdec (-1, 0, "def"))); -***** assert (isequal (roundb (infsupdec (-1, 1)), infsupdec (-1, 1, "def"))); -***** assert (isequal (roundb (infsupdec (-realmin, realmin)), infsupdec (0))); -***** assert (isequal (roundb (infsupdec (-realmax, realmax)), infsupdec (-realmax, realmax, "def"))); -***** # Unbounded intervals -***** assert (isequal (roundb (infsupdec (-realmin, inf)), infsupdec (0, inf, "def"))); -***** assert (isequal (roundb (infsupdec (-realmax, inf)), infsupdec (-realmax, inf, "def"))); -***** assert (isequal (roundb (infsupdec (-inf, realmin)), infsupdec (-inf, 0, "def"))); -***** assert (isequal (roundb (infsupdec (-inf, realmax)), infsupdec (-inf, realmax, "def"))); -***** assert (isequal (roundb (infsupdec (-inf, inf)), infsupdec (-inf, inf, "def"))); + x = tan (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.roundTiesToEven; + testcases = testdata.NoSignal.infsup.tan; for testcase = [testcases]' assert (isequaln (... - roundb (testcase.in{1}), ... + tan (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.roundTiesToEven; + testcases = testdata.NoSignal.infsup.tan; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); - assert (isequaln (roundb (in1), out)); + assert (isequaln (tan (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.roundTiesToEven; + testcases = testdata.NoSignal.infsup.tan; in1 = vertcat (vertcat (testcases.in){:, 1}); out = vertcat (testcases.out); # Reshape data @@ -13251,58 +13399,33 @@ until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (roundb (in1), out)); -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/@infsupdec/resize.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/resize.m -***** assert (isequal (resize (infsupdec (magic (3)), 4, 2), infsupdec([8, 1; 3, 5; 4, 9; 0, 0]))); -***** assert (isequal (resize (infsupdec (ones (2, 2, 2)), 4, 1, 2), infsupdec (resize (ones (2, 2, 2), 4, 1, 2)))) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@infsupdec/eq.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/eq.m -***** # Empty interval -***** assert (eq (infsupdec (), infsupdec ()) == true); -***** assert (eq (infsupdec (), infsupdec (1)) == false); -***** assert (eq (infsupdec (0), infsupdec ()) == false); -***** assert (eq (infsupdec (-inf, inf), infsupdec ()) == false); -***** # Singleton intervals -***** assert (eq (infsupdec (0), infsupdec (1)) == false); -***** assert (eq (infsupdec (0), infsupdec (0)) == true); -***** # Bounded intervals -***** assert (eq (infsupdec (1, 2), infsupdec (3, 4)) == false); -***** assert (eq (infsupdec (1, 2), infsupdec (2, 3)) == false); -***** assert (eq (infsupdec (1, 2), infsupdec (1.5, 2.5)) == false); -***** assert (eq (infsupdec (1, 2), infsupdec (1, 2)) == true); -***** # Unbounded intervals -***** assert (eq (infsupdec (0, inf), infsupdec (-inf, 0)) == false); -***** assert (eq (infsupdec (0, inf), infsupdec (0, inf)) == true); -***** assert (eq (infsupdec (-inf, 0), infsupdec (-inf, 0)) == true); -***** assert (eq (infsupdec (-inf, inf), infsupdec (42)) == false); -***** assert (eq (infsupdec (-inf, 0), infsupdec (-inf, inf)) == false); -***** assert (eq (infsupdec (-inf, inf), infsupdec (-inf, inf)) == true); + assert (isequaln (tan (in1), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/cot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cot.m +***** # from the documentation string +***** assert (cot (infsup (1)) == "[0x1.48C05D04E1CFDp-1, 0x1.48C05D04E1CFEp-1]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.equal; + testcases = testdata.NoSignal.infsup.cot; for testcase = [testcases]' assert (isequaln (... - eq (testcase.in{1}, testcase.in{2}), ... + cot (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.equal; + testcases = testdata.NoSignal.infsup.cot; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (eq (in1, in2), out)); + assert (isequaln (cot (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.equal; + testcases = testdata.NoSignal.infsup.cot; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13311,98 +13434,49 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (eq (in1, in2), out)); -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/@infsupdec/hypot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/hypot.m + assert (isequaln (cot (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/mpower.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/mpower.m ***** # from the documentation string -***** assert (isequal (hypot (infsupdec (2, 3), infsupdec (1, 2)), infsupdec ("[0x1.1E3779B97F4A7p1, 0x1.CD82B446159F4p1]"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/dot.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/dot.m -***** # matrix × matrix -***** assert (isequal (dot (infsupdec (magic (3)), magic (3)), infsupdec([89, 107, 89]))); -***** assert (isequal (dot (infsupdec (magic (3)), magic (3), 1), infsupdec([89, 107, 89]))); -***** assert (isequal (dot (infsupdec (magic (3)), magic (3), 2), infsupdec([101; 83; 101]))); -***** # matrix × vector -***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3]), infsupdec([28; 34; 28]))); -***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3], 1), infsupdec([15, 30, 45]))); -***** assert (isequal (dot (infsupdec (magic (3)), [1, 2, 3], 2), infsupdec([28; 34; 28]))); -***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3]), infsupdec([26, 38, 26]))); -***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3], 1), infsupdec([26, 38, 26]))); -***** assert (isequal (dot (infsupdec (magic (3)), [1; 2; 3], 2), infsupdec([15; 30; 45]))); -***** # matrix × scalar -***** assert (isequal (dot (infsupdec (magic (3)), 42), infsupdec([630, 630, 630]))); -***** assert (isequal (dot (infsupdec (magic (3)), 42, 1), infsupdec([630, 630, 630]))); -***** assert (isequal (dot (infsupdec (magic (3)), 42, 2), infsupdec([630; 630; 630]))); -***** # vector x vector -***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6]), infsupdec(32))); -***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6], 1), infsupdec([4, 10, 18]))); -***** assert (isequal (dot (infsupdec([1, 2, 3]), [4, 5, 6], 2), infsupdec(32))); -***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6]), infsupdec(32))); -***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6], 1), infsupdec(32))); -***** assert (isequal (dot (infsupdec([1; 2; 3]), [4; 5; 6], 2), infsupdec([4; 10; 18]))); -***** # vector × scalar -***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42), infsupdec(252))); -***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42, 1), infsupdec([42, 84, 126]))); -***** assert (isequal (dot (infsupdec ([1, 2, 3]), 42, 2), infsupdec(252))); -***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42), infsupdec(252))); -***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42, 1), infsupdec(252))); -***** assert (isequal (dot (infsupdec ([1; 2; 3]), 42, 2), infsupdec([42; 84; 126]))); -***** # empty matrix x empty matrix -***** assert (isequal (dot (infsupdec (ones (0, 2)), infsupdec (ones (0, 2))), infsupdec ([0, 0]))); -***** # N-dimensional arrays -***** test - x = infsupdec (reshape (1:24, 2, 3, 4)); - y = infsupdec (2.*ones (2, 3, 4)); - assert (isequal (dot (x, y, 3), infsupdec ([80, 96, 112; 88, 104, 120]))) +***** assert (isequal (infsup (magic (3)) ^ 2, infsup (magic (3) ^ 2))); +***** # correct use of signed zeros ***** test - x = infsupdec (ones (2, 2, 2, 2)); - y = infsupdec (1); - assert (size (dot (x, y)), [1, 2, 2, 2]); - assert (size (dot (x, y, 1)), [1, 2, 2, 2]); - assert (size (dot (x, y, 2)), [2, 1, 2, 2]); - assert (size (dot (x, y, 3)), [2, 2, 1, 2]); - assert (size (dot (x, y, 4)), [2, 2, 2]); - assert (size (dot (x, y, 5)), [2, 2, 2, 2]); -***** # from the documentation string -***** assert (isequal (dot ([infsupdec(1), 2, 3], [infsupdec(2), 3, 4]), infsupdec (20))); -***** assert (isequal (dot (infsupdec ([realmax; realmin; realmax]), [1; -1; -1], 1), infsupdec (-realmin))); -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/@infsupdec/powrev2.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/powrev2.m + x = mpower (infsup (eye (2)), 2); + assert (signbit (inf (x(1, 2)))); + assert (not (signbit (sup (x(1, 2))))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/tanh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/tanh.m ***** # from the documentation string -***** assert (isequal (powrev2 (infsupdec (2, 5), infsupdec (3, 6)), infsupdec ("[0x1.5D7E8F22BA886p-1, 0x1.4AE00D1CFDEB5p1]_trv"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/lt.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/lt.m -***** assert (not (lt (infsupdec (1, 3), infsupdec (3)))); -***** assert (lt (infsupdec (1, 3), infsupdec (3.1))); +***** assert (tanh (infsup (1)) == "[0x1.85EFAB514F394p-1, 0x1.85EFAB514F395p-1]"); +***** # correct use of signed zeros +***** test + x = tanh (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.strictLess; + testcases = testdata.NoSignal.infsup.tanh; for testcase = [testcases]' assert (isequaln (... - lt (testcase.in{1}, testcase.in{2}), ... + tanh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.strictLess; + testcases = testdata.NoSignal.infsup.tanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (lt (in1, in2), out)); + assert (isequaln (tanh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.strictLess; + testcases = testdata.NoSignal.infsup.tanh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13411,40 +13485,50 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (lt (in1, in2), out)); + assert (isequaln (tanh (in1), out)); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@infsupdec/floor.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/floor.m -***** # from the documentation string -***** assert (isequal (floor (infsupdec (2.5, 3.5)), infsupdec (2, 3, "def"))); -***** assert (isequal (floor (infsupdec (-0.5, 5)), infsupdec (-1, 5, "def"))); -***** warning - _ = @infsupdec; - assert (isequal (... - floor (_ ("jansen")), nai)) #ghtwish +[inst/@infsup/nthroot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/nthroot.m +***** assert (nthroot (infsup (25, 36), 2) == infsup (5, 6)); +***** # correct use of signed zeros +***** test + x = nthroot (infsup (0), 2); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** test + x = nthroot (infsup (0, inf), -2); + assert (signbit (inf (x))); +***** test + x = nthroot (infsup (0, inf), -3); + assert (signbit (inf (x))); +***** assert (nthroot (infsup (-1, 1), 2) == infsup (0, 1)); +***** assert (nthroot (infsup (-1, 1), 3) == infsup (-1, 1)); +***** assert (nthroot (infsup (-1, 1), -2) == infsup (1, inf)); +***** assert (nthroot (infsup (-1, 1), -3) == infsup (-inf, inf)); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.floor; + testcases = testdata.NoSignal.infsup.rootn; for testcase = [testcases]' assert (isequaln (... - floor (testcase.in{1}), ... + nthroot (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.floor; + testcases = testdata.NoSignal.infsup.rootn; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (floor (in1), out)); + assert (isequaln (nthroot (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsup.floor; + testcases = testdata.NoSignal.infsup.rootn; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13452,42 +13536,61 @@ i = i + 1; testsize = factor (numel (in1) + i); until (numel (testsize) > 2) + if (i > numel (in1)) + i = i - numel (in1); + in1 = [in1; in1]; + in2 = [in2; in2]; + out = [out; out]; + endif in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (floor (in1), out)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@infsupdec/expm1.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/expm1.m + assert (isequaln (nthroot (in1, in2), out)); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/@infsup/factorial.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/factorial.m ***** # from the documentation string -***** assert (isequal (expm1 (infsupdec (eps)), infsupdec ("[0x1p-52, 0x1.0000000000001p-52]"))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/@infsupdec/times.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/times.m +***** assert (factorial (infsup (6)) == 720); +***** assert (factorial (infsup (0)) == 1); +***** assert (factorial (infsup ("[0, 1.99]")) == 1); +***** assert (factorial (infsup ("[0, 2]")) == "[1, 2]"); +***** assert (factorial (infsup ("[1.4, 1.6]")) == "[Empty]"); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@infsup/erfc.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/erfc.m ***** # from the documentation string -***** assert (isequal (infsupdec (2, 3) .* infsupdec (1, 2), infsupdec (2, 6))); +***** assert (erfc (infsup (1)) == "[0x1.4226162FBDDD4p-3, 0x1.4226162FBDDD5p-3]"); +***** # correct use of signed zeros +***** test + x = erfc (infsup (realmax)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/cosh.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cosh.m +***** # from the documentation string +***** assert (cosh (infsup (1)) == "[0x1.8B07551D9F55, 0x1.8B07551D9F551]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.mul; + testcases = testdata.NoSignal.infsup.cosh; for testcase = [testcases]' assert (isequaln (... - times (testcase.in{1}, testcase.in{2}), ... + cosh (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.mul; + testcases = testdata.NoSignal.infsup.cosh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (times (in1, in2), out)); + assert (isequaln (cosh (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.mul; + testcases = testdata.NoSignal.infsup.cosh; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13496,37 +13599,34 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (times (in1, in2), out)); + assert (isequaln (cosh (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/min.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/min.m +[inst/@infsup/sup.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sup.m ***** # from the documentation string -***** assert (isequal (min (infsupdec (2, 3), infsupdec (1, 2)), infsupdec (1, 2))); +***** assert (sup (infsup (2.5, 3.5)), 3.5); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.min; + testcases = testdata.NoSignal.infsup.sup; for testcase = [testcases]' assert (isequaln (... - min (testcase.in{1}, testcase.in{2}), ... + sup (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.min; + testcases = testdata.NoSignal.infsup.sup; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (min (in1, in2), out)); + assert (isequaln (sup (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.min; + testcases = testdata.NoSignal.infsup.sup; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13535,38 +13635,65 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (min (in1, in2), out)); + assert (isequaln (sup (in1), out)); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@infsupdec/rdivide.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/rdivide.m +[inst/@infsup/dilog.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/dilog.m +***** assert (dilog (infsup (-inf, inf)) == "[-Inf, +0x1.3BD3CC9BE45DFp1]"); ***** # from the documentation string -***** assert (isequal (infsupdec (2, 3) ./ infsupdec (1, 2), infsupdec (1, 3))); -***** assert (1 ./ infsupdec (1, 4) == infsupdec (0.25, 1)); +***** assert (dilog (infsup (1)) == "[0x1.A51A6625307D3, 0x1.A51A6625307D4]"); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@infsup/ei.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/ei.m +***** assert (isempty (ei (infsup (0)))); +***** assert (isempty (ei (infsup (-inf, -2)))); +***** assert (isentire (ei (infsup (0, inf)))); +***** # from the documentation string +***** assert (ei (infsup (1)) == "[0x1.E52670F350D08, 0x1.E52670F350D09]"); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/inv.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/inv.m +***** # from the wiki +***** test + A = infsup ([1, 2, 3; 4, 0, 0; 0, 0, 1]); + A (2, 3) = "[0, 6]"; + B = inv (A); + assert (inf (B) == [0, .25, -1.5; .5, -.125, -1.5; 0, 0, 1]); + assert (sup (B) == [0, .25, 0; .5, -.125, -.75; 0, 0, 1]); +***** # from the documentation string +***** assert (inv (infsup ([2, 1, 1; 0, 1, 0; 1, 0, 0])) == [0, 0, 1; 0, 1, 0; 1, -1, -2]); +***** assert (inv (infsup ([1, 2, 3; 4, 0, 6; 0, 0, 1])) == [0, .25, -1.5; .5, -.125, -.75; 0, 0, 1]); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/rows.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/rows.m +***** assert (rows (infsup (zeros (3, 4))), 3); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/@infsup/cos.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/cos.m +***** # from the documentation string +***** assert (cos (infsup (1)) == "[0x1.14A280FB5068Bp-1, 0x1.14A280FB5068Cp-1]"); ***** shared testdata # Load compiled test data (from src/test/*.itl) testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.div; + testcases = testdata.NoSignal.infsup.cos; for testcase = [testcases]' assert (isequaln (... - rdivide (testcase.in{1}, testcase.in{2}), ... + cos (testcase.in{1}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.div; + testcases = testdata.NoSignal.infsup.cos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (rdivide (in1, in2), out)); + assert (isequaln (cos (in1), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.div; + testcases = testdata.NoSignal.infsup.cos; in1 = vertcat (vertcat (testcases.in){:, 1}); - in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13575,27 +13702,58 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); - in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rdivide (in1, in2), out)); + assert (isequaln (cos (in1), out)); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/@infsup/sumabs.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/sumabs.m +***** # from the documentation string +***** assert (sumabs ([infsup(1), pow2(-1074), -1]) == infsup (2, 2+eps*2)); +***** assert (sumabs (infsup ([])) == 0); +***** # correct use of signed zeros +***** test + x = sumabs (infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/smig.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/smig.m +***** assert (smig (infsup (-1, 2)), 0); +***** assert (smig (infsup (-42, -23)), -23); +***** assert (smig (infsup (23, 42)), 23); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/@infsup/hypot.m] +>>>>> /build/octave-interval-3.2.1/inst/@infsup/hypot.m +***** # from the documentation string +***** assert (hypot (infsup (2, 3), infsup (1, 2)) == "[0x1.1E3779B97F4A7p1, 0x1.CD82B446159F4p1]"); +***** # correct use of signed zeros +***** test + x = hypot (infsup (0), infsup (0)); + assert (signbit (inf (x))); + assert (not (signbit (sup (x)))); +***** shared testdata + # Load compiled test data (from src/test/*.itl) + testdata = load (file_in_loadpath ("test/itl.mat")); ***** test # Scalar evaluation - testcases = testdata.NoSignal.infsupdec.recip; + testcases = testdata.NoSignal.infsup.hypot; for testcase = [testcases]' assert (isequaln (... - rdivide (1, testcase.in{1}), ... + hypot (testcase.in{1}, testcase.in{2}), ... testcase.out)); endfor ***** test # Vector evaluation - testcases = testdata.NoSignal.infsupdec.recip; + testcases = testdata.NoSignal.infsup.hypot; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); - assert (isequaln (rdivide (1, in1), out)); + assert (isequaln (hypot (in1, in2), out)); ***** test # N-dimensional array evaluation - testcases = testdata.NoSignal.infsupdec.recip; + testcases = testdata.NoSignal.infsup.hypot; in1 = vertcat (vertcat (testcases.in){:, 1}); + in2 = vertcat (vertcat (testcases.in){:, 2}); out = vertcat (testcases.out); # Reshape data i = -1; @@ -13604,13 +13762,33 @@ testsize = factor (numel (in1) + i); until (numel (testsize) > 2) in1 = reshape ([in1; in1(1:i)], testsize); + in2 = reshape ([in2; in2(1:i)], testsize); out = reshape ([out; out(1:i)], testsize); - assert (isequaln (rdivide (1, in1), out)); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@infsupdec/mpower.m] ->>>>> /build/octave-interval-3.2.1/inst/@infsupdec/mpower.m -***** # from the documentation string -***** assert (isequal (infsupdec (magic (3)) ^ 2, infsupdec (magic (3) ^ 2))); + assert (isequaln (hypot (in1, in2), out)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/vereigback.m] +>>>>> /build/octave-interval-3.2.1/inst/vereigback.m +***** test + [lambda, X, ep] = vereigback (eye (2)); + assert (lambda, [1; 1]); + assert (X, eye (2)); + assert (ep, zeros (2, 1)); +***** test + [lambda, X, ep] = vereigback ([2 1; 1 2]); + assert (lambda, [1; 3]); + assert (X, [-1 1; 1 1] ./ sqrt (2), eps); + assert (ep, zeros (2, 1)); +***** test + [lambda, X, ep] = vereigback ([2 0 0; 0 3 4; 0 4 9]); + assert (lambda, [1; 2; 11]); + assert (ep, zeros (3, 1)); +***** test + [lambda, X, ep] = vereigback ([1 2 3; 0 1 2; 1 1 1]); + assert (max (ep) < 1e-14); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/__check_crlibm__.m] +>>>>> /build/octave-interval-3.2.1/inst/__check_crlibm__.m +***** assert (__check_crlibm__ ()); 1 test, 1 passed, 0 known failure, 0 skipped [inst/verlinprog.m] >>>>> /build/octave-interval-3.2.1/inst/verlinprog.m @@ -13627,149 +13805,14 @@ assert (ismember (625, h)); assert (wid (h) < 1e-12); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/ctc_intersect.m] ->>>>> /build/octave-interval-3.2.1/inst/ctc_intersect.m -***** function [fval, x] = ctc_abs (y, x) - fval = abs (x); - x = absrev (intersect (fval, y), x); -***** endfunction -***** shared c - c = ctc_intersect (@ctc_abs, "[0, 2]", @ctc_abs, "[1, 3]"); -***** test - [fval, x] = c (infsup (0), infsup ("[1, 3]")); - assert (ismember (0, fval) && 0 != fval); - assert (x == infsup ("[1, 2]")); -***** test - [fval, x] = c (infsup (0), infsup ("[1, 2]")); - assert (0 == fval); - assert (x == infsup ("[1, 2]")); -***** test - [fval, x] = c (infsup (0), infsup ("[entire]")); - assert (ismember (0, fval) && 0 != fval); - assert (x == infsup ("[-2, 2]")); -***** test - [fval, x] = c (infsup (0), infsup ("[0, inf]")); - assert (ismember (0, fval) && 0 != fval); - assert (x == infsup ("[1, 2]")); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/verlinineqnn.m] ->>>>> /build/octave-interval-3.2.1/inst/verlinineqnn.m -***** test - A = [-2, -3; -2, -1]; - b = [-1500; -1000]; - [x, y] = verlinineqnn (A, b); - assert (x, [375; 250], 1e-9); - assert (all (x >= [375; 250])); - assert (isnan (y)); -***** test - A = [1, 2; 3, 4]; - b = [-1; 0]; - [x, y] = verlinineqnn (A, b); - assert (y, [1; 0], 1e-9); - assert (all (y >= [1; 0])); - assert (isnan (x)); -***** test - A = [1, 2; 3, 4]; - b = [1; 1]; - [x, y] = verlinineqnn (A, b); - assert (x, [0; 0]); - assert (isnan (y)); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/__split_interval_literals__.m] ->>>>> /build/octave-interval-3.2.1/inst/__split_interval_literals__.m -***** assert (__split_interval_literals__ (""), {""}); -***** assert (__split_interval_literals__ (","), {""}); -***** assert (__split_interval_literals__ ("1"), {"1"}); -***** assert (__split_interval_literals__ ("1?"), {"1?"}); -***** assert (__split_interval_literals__ ("1?u"), {"1?u"}); -***** assert (__split_interval_literals__ ("1?u3"), {"1?u3"}); -***** assert (__split_interval_literals__ ("[Empty]"), {"[Empty]"}); -***** assert (__split_interval_literals__ ("[Entire]"), {"[Entire]"}); -***** assert (__split_interval_literals__ ("[]"), {"[]"}); -***** assert (__split_interval_literals__ ("[,]"), {"[,]"}); -***** assert (__split_interval_literals__ ("[1]"), {"[1]"}); -***** assert (__split_interval_literals__ ("[1,2]"), {"[1,2]"}); -***** assert (__split_interval_literals__ ("1 2"), {"1", "2"}); -***** assert (__split_interval_literals__ ("1, , , , , , ,2"), {"1", "2"}); -***** assert (__split_interval_literals__ ("1;;2"), {"1"; ""; "2"}); -***** assert (__split_interval_literals__ ("1; ;2"), {"1"; ""; "2"}); -***** assert (__split_interval_literals__ ("[1,2] [3,4]"), {"[1,2]", "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2],[3,4]"), {"[1,2]", "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2], [3,4]"), {"[1,2]", "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2]\n[3,4]"), {"[1,2]"; "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2];[3,4]"), {"[1,2]"; "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2]; [3,4]"), {"[1,2]"; "[3,4]"}); -***** assert (__split_interval_literals__ (["[1,2]"; "[3,4]"]), {"[1,2]"; "[3,4]"}); -***** assert (__split_interval_literals__ ("1 [3,4]"), {"1", "[3,4]"}); -***** assert (__split_interval_literals__ ("1,[3,4]"), {"1", "[3,4]"}); -***** assert (__split_interval_literals__ ("1, [3,4]"), {"1", "[3,4]"}); -***** assert (__split_interval_literals__ ("1\n[3,4]"), {"1"; "[3,4]"}); -***** assert (__split_interval_literals__ ("1;[3,4]"), {"1"; "[3,4]"}); -***** assert (__split_interval_literals__ ("1; [3,4]"), {"1"; "[3,4]"}); -***** assert (__split_interval_literals__ (["1"; "[3,4]"]), {"1"; "[3,4]"}); -***** assert (__split_interval_literals__ ("[1,2] 3"), {"[1,2]", "3"}); -***** assert (__split_interval_literals__ ("[1,2],3"), {"[1,2]", "3"}); -***** assert (__split_interval_literals__ ("[1,2], 3"), {"[1,2]", "3"}); -***** assert (__split_interval_literals__ ("[1,2]\n3"), {"[1,2]"; "3"}); -***** assert (__split_interval_literals__ ("[1,2];3"), {"[1,2]"; "3"}); -***** assert (__split_interval_literals__ ("[1,2]; 3"), {"[1,2]"; "3"}); -***** assert (__split_interval_literals__ (["[1,2]"; "3"]), {"[1,2]"; "3"}); -***** assert (__split_interval_literals__ ("1 3"), {"1", "3"}); -***** assert (__split_interval_literals__ ("1,3"), {"1", "3"}); -***** assert (__split_interval_literals__ ("1, 3"), {"1", "3"}); -***** assert (__split_interval_literals__ ("1\n3"), {"1"; "3"}); -***** assert (__split_interval_literals__ ("1;3"), {"1"; "3"}); -***** assert (__split_interval_literals__ ("1; 3"), {"1"; "3"}); -***** assert (__split_interval_literals__ (["1"; "3"]), {"1"; "3"}); -***** assert (__split_interval_literals__ ("[1,2] [3,4] [5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2],[3,4],[5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2], [3,4], [5,6]"), {"[1,2]", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2]\n[3,4];[5,6]"), {"[1,2]"; "[3,4]"; "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2];[3,4] [5,6]"), {"[1,2]", "[Empty]"; "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2] [3,4];[5,6]"), {"[1,2]", "[3,4]"; "[5,6]", "[Empty]"}); -***** assert (__split_interval_literals__ ("1 [3,4] [5,6]"), {"1", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("1,[3,4],[5,6]"), {"1", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("1, [3,4], [5,6]"), {"1", "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("1\n[3,4];[5,6]"), {"1"; "[3,4]"; "[5,6]"}); -***** assert (__split_interval_literals__ ("1;[3,4] [5,6]"), {"1", "[Empty]"; "[3,4]", "[5,6]"}); -***** assert (__split_interval_literals__ ("1 [3,4];[5,6]"), {"1", "[3,4]"; "[5,6]", "[Empty]"}); -***** assert (__split_interval_literals__ ("[1,2] 3 [5,6]"), {"[1,2]", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2],3,[5,6]"), {"[1,2]", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2], 3, [5,6]"), {"[1,2]", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2]\n3;[5,6]"), {"[1,2]"; "3"; "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2];3 [5,6]"), {"[1,2]", "[Empty]"; "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("[1,2] 3;[5,6]"), {"[1,2]", "3"; "[5,6]", "[Empty]"}); -***** assert (__split_interval_literals__ ("[1,2] [3,4] 5"), {"[1,2]", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("[1,2],[3,4],5"), {"[1,2]", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("[1,2], [3,4], 5"), {"[1,2]", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("[1,2]\n[3,4];5"), {"[1,2]"; "[3,4]"; "5"}); -***** assert (__split_interval_literals__ ("[1,2];[3,4] 5"), {"[1,2]", "[Empty]"; "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("[1,2] [3,4];5"), {"[1,2]", "[3,4]"; "5", "[Empty]"}); -***** assert (__split_interval_literals__ ("1 [3,4] 5"), {"1", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("1,[3,4],5"), {"1", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("1, [3,4], 5"), {"1", "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("1\n[3,4];5"), {"1"; "[3,4]"; "5"}); -***** assert (__split_interval_literals__ ("1;[3,4] 5"), {"1", "[Empty]"; "[3,4]", "5"}); -***** assert (__split_interval_literals__ ("1 [3,4];5"), {"1", "[3,4]"; "5", "[Empty]"}); -***** assert (__split_interval_literals__ ("1 3 [5,6]"), {"1", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("1,3,[5,6]"), {"1", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("1, 3, [5,6]"), {"1", "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("1\n3;[5,6]"), {"1"; "3"; "[5,6]"}); -***** assert (__split_interval_literals__ ("1;3 [5,6]"), {"1", "[Empty]"; "3", "[5,6]"}); -***** assert (__split_interval_literals__ ("1 3;[5,6]"), {"1", "3"; "[5,6]", "[Empty]"}); -***** assert (__split_interval_literals__ ("[1,2] 3 5"), {"[1,2]", "3", "5"}); -***** assert (__split_interval_literals__ ("[1,2],3,5"), {"[1,2]", "3", "5"}); -***** assert (__split_interval_literals__ ("[1,2], 3, 5"), {"[1,2]", "3", "5"}); -***** assert (__split_interval_literals__ ("[1,2]\n3;5"), {"[1,2]"; "3"; "5"}); -***** assert (__split_interval_literals__ ("[1,2];3 5"), {"[1,2]", "[Empty]"; "3", "5"}); -***** assert (__split_interval_literals__ ("[1,2] 3;5"), {"[1,2]", "3"; "5", "[Empty]"}); -***** assert (__split_interval_literals__ ("1 3 5"), {"1", "3", "5"}); -***** assert (__split_interval_literals__ ("1,3,5"), {"1", "3", "5"}); -***** assert (__split_interval_literals__ ("1, 3, 5"), {"1", "3", "5"}); -***** assert (__split_interval_literals__ ("1\n3;5"), {"1"; "3"; "5"}); -***** assert (__split_interval_literals__ ("1;3 5"), {"1", "[Empty]"; "3", "5"}); -***** assert (__split_interval_literals__ ("1 3;5"), {"1", "3"; "5", "[Empty]"}); -92 tests, 92 passed, 0 known failure, 0 skipped +[inst/nai.m] +>>>>> /build/octave-interval-3.2.1/inst/nai.m +***** assert (isnai (nai ())); +***** assert (isnai (nai (2)), true (2)); +***** assert (isnai (nai (3, 4)), true (3, 4)); +***** assert (decorationpart (nai ()), {"ill"}); +***** assert (isnai (nai (2, 2, 2)), true (2, 2, 2)) +5 tests, 5 passed, 0 known failure, 0 skipped [inst/exacttointerval.m] >>>>> /build/octave-interval-3.2.1/inst/exacttointerval.m ***** assert (isempty (exacttointerval ("[Empty]"))); @@ -13868,58 +13911,6 @@ ***** test verify ("tan", 0.5, testdata.tan_rn); ***** test verify ("tan", 0, testdata.tan_rz); 60 tests, 60 passed, 0 known failure, 0 skipped -[src/intervaltotext.cc] ->>>>> /build/octave-interval-3.2.1/src/intervaltotext.cc -***** assert (intervaltotext (infsup (1 + eps), "exact decimal"), "[1.0000000000000002220446049250313080847263336181640625]"); -***** assert (intervaltotext (infsup (1 + eps), "exact hexadecimal"), "[0x1.0000000000001p+0]"); -***** assert (intervaltotext (infsup (pi), "[.3g]"), "[3.14, 3.15]"); -***** assert (intervaltotext (infsup (pi), "[.4g]"), "[3.141, 3.142]"); -***** assert (intervaltotext (infsup (1 + eps)), "[1, 1.00001]"); -***** assert (intervaltotext (infsup (1)), "[1]"); -***** assert (reshape (intervaltotext (infsup (reshape (1:120, 2, 3, 4, 5))), 1, 120), intervaltotext (infsup (1:120))); -***** assert (intervaltotext (infsupdec (1 + eps), "exact decimal"), "[1.0000000000000002220446049250313080847263336181640625]_com"); -***** assert (intervaltotext (infsupdec (1 + eps), "exact hexadecimal"), "[0x1.0000000000001p+0]_com"); -***** assert (intervaltotext (infsupdec (1 + eps)), "[1, 1.00001]_com"); -***** assert (intervaltotext (infsupdec (1)), "[1]_com"); -***** assert (reshape (intervaltotext (infsupdec (reshape (1:120, 2, 3, 4, 5))), 1, 120), intervaltotext (infsupdec (1:120))); -***** assert (intervaltotext (infsup (2, 3), "[g]"), "[2, 3]"); -***** assert (intervaltotext (infsup (2, 3), "9:[g]"), "[ 2, 3]"); -***** assert (intervaltotext (infsup (), "[g]"), "[Empty]"); -***** assert (intervaltotext (infsup (), "9:[g]"), "[ Empty ]"); -***** assert (intervaltotext (infsup (2, 3), "g"), "2 3"); -***** assert (intervaltotext (infsupdec (2, 3), "g"), "2 3 _com"); -***** assert (intervaltotext (infsup (), "[Cg]"), "[EMPTY]"); -***** assert (intervaltotext (infsup (), "[cg]"), "[empty]"); -***** assert (intervaltotext (infsup (-inf, inf), "[g]"), "[Entire]"); -***** assert (intervaltotext (infsup (-inf, inf), "[>>>> /build/octave-interval-3.2.1/src/mpfr_to_string_d.cc ***** test; @@ -13935,42 +13926,35 @@ ***** assert (mpfr_to_string_d (0, "exact hexadecimal", pow2 (-1022)), {"0x1.0000000000000p-1022"}); ***** assert (mpfr_to_string_d (0, "exact hexadecimal", pow2 (-1074)), {"0x0.0000000000001p-1022"}); 9 tests, 9 passed, 0 known failure, 0 skipped -[src/__setround__.cc] ->>>>> /build/octave-interval-3.2.1/src/__setround__.cc -***** xtest - __setround__ (+inf); - assert (1 + realmin > 1, true); - assert (1 - realmin == 1, true); - __setround__ (0.5); -***** xtest - __setround__ (-inf); - assert (1 + realmin == 1, true); - assert (1 - realmin < 1, true); - __setround__ (0.5); -***** test - __setround__ (0.5); - assert (1 + realmin == 1, true); - assert (1 - realmin == 1, true); -***** shared - __setround__ (0.5); -3 tests, 3 passed, 0 known failure, 0 skipped -[src/mpfr_matrix_sqr_d.cc] ->>>>> /build/octave-interval-3.2.1/src/mpfr_matrix_sqr_d.cc -***** test - m = magic (3); - [l, u] = mpfr_matrix_sqr_d (m, m + 1); - assert (l, [91, 67, 67; 67, 91, 67; 67, 67, 91]); - assert (u, [124, 100, 100; 100, 124, 100; 100, 100, 124]); -1 test, 1 passed, 0 known failure, 0 skipped -[src/crlibm_function.cc] ->>>>> /build/octave-interval-3.2.1/src/crlibm_function.cc -***** test - for f = {"acos", "asin", "atan", "cos", "cosh", "exp", "expm1", "log", "log10", "log1p", "log2", "sin", "sinh", "tan"} - for rnd = {+inf, -inf, 0, 0.5} - assert (crlibm_function (f{:}, rnd{:}, 0.5), mpfr_function_d (f{:}, rnd{:}, 0.5)); - endfor - endfor -1 test, 1 passed, 0 known failure, 0 skipped +[src/mpfr_matrix_mul_d.cc] +>>>>> /build/octave-interval-3.2.1/src/mpfr_matrix_mul_d.cc +***** test; + [l, u] = mpfr_matrix_mul_d (magic (3), magic (3)', magic (3) + 1, magic (3)' + 1); + assert (l, [101, 71, 53; 71, 83, 71; 53, 71, 101]); + assert (u, [134, 104, 86; 104, 116, 104; 86, 104, 134]); +***** xtest; + if (((exist ("__octave_config_info__") && ... + __octave_config_info__.ENABLE_OPENMP) || ... + (not (exist ("__octave_config_info__")) && ... + octave_config_info ("features").OPENMP)) ... + && nproc ("overridable") > 1) + ## OpenMP is enabled and may use more than one thread. + ## We should observe speed-ups by that. + A = vec (magic (2000)); + tic; + mpfr_matrix_mul_d (A', A, A', A); + time_per_element = toc; + A = [A A]; + tic; + mpfr_matrix_mul_d (A', A, A', A); + time_per_element_parallel = toc / numel (ans); + + ## Ideally, the runtime would be cut in half (at least), + ## however, there is an overhead, so let's be pessimistic and + ## assume that the parallel execution is at least 20% faster. + assert (time_per_element > 1.2 * time_per_element_parallel) + endif +2 tests, 2 passed, 0 known failure, 0 skipped [src/mpfr_vector_dot_d.cc] >>>>> /build/octave-interval-3.2.1/src/mpfr_vector_dot_d.cc ***** test; @@ -14034,6 +14018,66 @@ out = vertcat (testcases.out); assert (isequaln (mpfr_vector_dot_d (0.5, in1, in1, 2), out)); 8 tests, 8 passed, 0 known failure, 0 skipped +[src/mpfr_matrix_sqr_d.cc] +>>>>> /build/octave-interval-3.2.1/src/mpfr_matrix_sqr_d.cc +***** test + m = magic (3); + [l, u] = mpfr_matrix_sqr_d (m, m + 1); + assert (l, [91, 67, 67; 67, 91, 67; 67, 67, 91]); + assert (u, [124, 100, 100; 100, 124, 100; 100, 100, 124]); +1 test, 1 passed, 0 known failure, 0 skipped +[src/intervaltotext.cc] +>>>>> /build/octave-interval-3.2.1/src/intervaltotext.cc +***** assert (intervaltotext (infsup (1 + eps), "exact decimal"), "[1.0000000000000002220446049250313080847263336181640625]"); +***** assert (intervaltotext (infsup (1 + eps), "exact hexadecimal"), "[0x1.0000000000001p+0]"); +***** assert (intervaltotext (infsup (pi), "[.3g]"), "[3.14, 3.15]"); +***** assert (intervaltotext (infsup (pi), "[.4g]"), "[3.141, 3.142]"); +***** assert (intervaltotext (infsup (1 + eps)), "[1, 1.00001]"); +***** assert (intervaltotext (infsup (1)), "[1]"); +***** assert (reshape (intervaltotext (infsup (reshape (1:120, 2, 3, 4, 5))), 1, 120), intervaltotext (infsup (1:120))); +***** assert (intervaltotext (infsupdec (1 + eps), "exact decimal"), "[1.0000000000000002220446049250313080847263336181640625]_com"); +***** assert (intervaltotext (infsupdec (1 + eps), "exact hexadecimal"), "[0x1.0000000000001p+0]_com"); +***** assert (intervaltotext (infsupdec (1 + eps)), "[1, 1.00001]_com"); +***** assert (intervaltotext (infsupdec (1)), "[1]_com"); +***** assert (reshape (intervaltotext (infsupdec (reshape (1:120, 2, 3, 4, 5))), 1, 120), intervaltotext (infsupdec (1:120))); +***** assert (intervaltotext (infsup (2, 3), "[g]"), "[2, 3]"); +***** assert (intervaltotext (infsup (2, 3), "9:[g]"), "[ 2, 3]"); +***** assert (intervaltotext (infsup (), "[g]"), "[Empty]"); +***** assert (intervaltotext (infsup (), "9:[g]"), "[ Empty ]"); +***** assert (intervaltotext (infsup (2, 3), "g"), "2 3"); +***** assert (intervaltotext (infsupdec (2, 3), "g"), "2 3 _com"); +***** assert (intervaltotext (infsup (), "[Cg]"), "[EMPTY]"); +***** assert (intervaltotext (infsup (), "[cg]"), "[empty]"); +***** assert (intervaltotext (infsup (-inf, inf), "[g]"), "[Entire]"); +***** assert (intervaltotext (infsup (-inf, inf), "[>>>> /build/octave-interval-3.2.1/src/mpfr_vector_sum_d.cc ***** assert (mpfr_vector_sum_d (0, [eps, realmax, realmax, -realmax, -realmax], 2), eps) @@ -14098,40 +14142,39 @@ out = vertcat (testcases.out); assert (isequaln (mpfr_vector_sum_d (0.5, abs (in1), 2), out)); 11 tests, 11 passed, 0 known failure, 0 skipped +[src/__setround__.cc] +>>>>> /build/octave-interval-3.2.1/src/__setround__.cc +***** xtest + __setround__ (+inf); + assert (1 + realmin > 1, true); + assert (1 - realmin == 1, true); + __setround__ (0.5); +***** xtest + __setround__ (-inf); + assert (1 + realmin == 1, true); + assert (1 - realmin < 1, true); + __setround__ (0.5); +***** test + __setround__ (0.5); + assert (1 + realmin == 1, true); + assert (1 - realmin == 1, true); +***** shared + __setround__ (0.5); +3 tests, 3 passed, 0 known failure, 0 skipped [src/mpfr_linspace_d.cc] >>>>> /build/octave-interval-3.2.1/src/mpfr_linspace_d.cc ***** assert (mpfr_linspace_d (-inf, 1, 10, 10), 1 : 10); ***** assert (mpfr_linspace_d (inf, 1, 10, 8) - mpfr_linspace_d (-inf, 1, 10, 8), [0 2 2 4 4 4 8 0] .* eps); 2 tests, 2 passed, 0 known failure, 0 skipped -[src/mpfr_matrix_mul_d.cc] ->>>>> /build/octave-interval-3.2.1/src/mpfr_matrix_mul_d.cc -***** test; - [l, u] = mpfr_matrix_mul_d (magic (3), magic (3)', magic (3) + 1, magic (3)' + 1); - assert (l, [101, 71, 53; 71, 83, 71; 53, 71, 101]); - assert (u, [134, 104, 86; 104, 116, 104; 86, 104, 134]); -***** xtest; - if (((exist ("__octave_config_info__") && ... - __octave_config_info__.ENABLE_OPENMP) || ... - (not (exist ("__octave_config_info__")) && ... - octave_config_info ("features").OPENMP)) ... - && nproc ("overridable") > 1) - ## OpenMP is enabled and may use more than one thread. - ## We should observe speed-ups by that. - A = vec (magic (2000)); - tic; - mpfr_matrix_mul_d (A', A, A', A); - time_per_element = toc; - A = [A A]; - tic; - mpfr_matrix_mul_d (A', A, A', A); - time_per_element_parallel = toc / numel (ans); - - ## Ideally, the runtime would be cut in half (at least), - ## however, there is an overhead, so let's be pessimistic and - ## assume that the parallel execution is at least 20% faster. - assert (time_per_element > 1.2 * time_per_element_parallel) - endif -2 tests, 2 passed, 0 known failure, 0 skipped +[src/crlibm_function.cc] +>>>>> /build/octave-interval-3.2.1/src/crlibm_function.cc +***** test + for f = {"acos", "asin", "atan", "cos", "cosh", "exp", "expm1", "log", "log10", "log1p", "log2", "sin", "sinh", "tan"} + for rnd = {+inf, -inf, 0, 0.5} + assert (crlibm_function (f{:}, rnd{:}, 0.5), mpfr_function_d (f{:}, rnd{:}, 0.5)); + endfor + endfor +1 test, 1 passed, 0 known failure, 0 skipped Run tests in debian/check.m Checking supplementary TST files ... >>>>> processing crlibm.tst @@ -14158,12 +14201,12 @@ dh_octave_substvar -O--buildsystem=octave dh_installdeb -O--buildsystem=octave dh_gencontrol -O--buildsystem=octave -dpkg-gencontrol: warning: package octave-interval-doc: substitution variable ${octave:Depends} unused, but is defined dpkg-gencontrol: warning: package octave-interval: substitution variable ${octave:Upstream-Description} unused, but is defined +dpkg-gencontrol: warning: package octave-interval-doc: substitution variable ${octave:Depends} unused, but is defined dh_md5sums -O--buildsystem=octave dh_builddeb -O--buildsystem=octave -dpkg-deb: building package 'octave-interval-dbgsym' in '../octave-interval-dbgsym_3.2.1-5_armhf.deb'. dpkg-deb: building package 'octave-interval-doc' in '../octave-interval-doc_3.2.1-5_all.deb'. +dpkg-deb: building package 'octave-interval-dbgsym' in '../octave-interval-dbgsym_3.2.1-5_armhf.deb'. dpkg-deb: building package 'octave-interval' in '../octave-interval_3.2.1-5_armhf.deb'. dpkg-genbuildinfo --build=binary -O../octave-interval_3.2.1-5_armhf.buildinfo dpkg-genchanges --build=binary -O../octave-interval_3.2.1-5_armhf.changes @@ -14173,12 +14216,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/21859/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/9505 and its subdirectories -I: Current time: Wed Jun 7 09:14:12 -12 2023 -I: pbuilder-time-stamp: 1686172452 +I: removing directory /srv/workspace/pbuilder/21859 and its subdirectories +I: Current time: Thu Jun 8 14:57:53 +14 2023 +I: pbuilder-time-stamp: 1686185873