Diff of the two buildlogs: -- --- b1/build.log 2020-06-16 12:51:42.880716260 +0000 +++ b2/build.log 2020-06-16 13:05:19.536459289 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jul 19 07:12:31 -12 2021 -I: pbuilder-time-stamp: 1626721951 +I: Current time: Wed Jun 17 02:51:45 +14 2020 +I: pbuilder-time-stamp: 1592311905 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -18,7 +18,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Fri Jan 4 20:41:51 2019 -12 +gpgv: Signature made Sat Jan 5 22:41:51 2019 +14 gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./octave-optim_1.5.3-2.dsc @@ -30,138 +30,172 @@ dpkg-source: info: applying info-file-path.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/21454/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/16250/tmp/hooks/D01_modify_environment starting +debug: Running on profitbricks-build12-i386. +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 +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by 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/16250/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/16250/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=18' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='i386' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.0.3(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=10' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='5465548109d24a058756faec7233833c' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='21454' - PS1='# ' - PS2='> ' + INVOCATION_ID=0b1fa02a332b4a0f87d9637e3c8f7aec + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + 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=16250 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/tmp.FQ9kYQet7x/pbuilderrc_vA2W --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.FQ9kYQet7x/b1 --logfile b1/build.log octave-optim_1.5.3-2.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + 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/tmp.FQ9kYQet7x/pbuilderrc_ecmM --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.FQ9kYQet7x/b2 --logfile b2/build.log octave-optim_1.5.3-2.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux profitbricks-build6-i386 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux + Linux i-capture-the-hostname 4.19.0-9-686-pae #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) i686 GNU/Linux I: ls -l /bin - total 5476 - -rwxr-xr-x 1 root root 1302248 Apr 17 2019 bash - -rwxr-xr-x 3 root root 38280 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 38280 Jul 10 2019 bzcat - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep - -rwxr-xr-x 3 root root 38280 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 17768 Jul 10 2019 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore - -rwxr-xr-x 1 root root 38692 Feb 28 2019 cat - -rwxr-xr-x 1 root root 75588 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 63268 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 75588 Feb 28 2019 chown - -rwxr-xr-x 1 root root 153732 Feb 28 2019 cp - -rwxr-xr-x 1 root root 132820 Jan 17 2019 dash - -rwxr-xr-x 1 root root 120676 Feb 28 2019 date - -rwxr-xr-x 1 root root 92040 Feb 28 2019 dd - -rwxr-xr-x 1 root root 100620 Feb 28 2019 df - -rwxr-xr-x 1 root root 149736 Feb 28 2019 dir - -rwxr-xr-x 1 root root 79412 Jan 9 2019 dmesg - lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname - -rwxr-xr-x 1 root root 34532 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 34532 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 67700 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 30112 Apr 22 2020 fusermount - -rwxr-xr-x 1 root root 206392 Jan 7 2019 grep - -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip - -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe - -rwxr-xr-x 1 root root 100952 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 21916 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 79752 Feb 28 2019 ln - -rwxr-xr-x 1 root root 55400 Jul 26 2018 login - -rwxr-xr-x 1 root root 149736 Feb 28 2019 ls - -rwxr-xr-x 1 root root 112032 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 87972 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 79748 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 46916 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 42348 Jan 9 2019 more - -rwsr-xr-x 1 root root 50592 Jan 9 2019 mount - -rwxr-xr-x 1 root root 13724 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 157832 Feb 28 2019 mv - lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 38660 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 46852 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 75588 Feb 28 2019 rm - -rwxr-xr-x 1 root root 42756 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 22276 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 125036 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 19 02:46 sh -> dash - -rwxr-xr-x 1 root root 34532 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 79652 Feb 28 2019 stty - -rwsr-xr-x 1 root root 71072 Jan 9 2019 su - -rwxr-xr-x 1 root root 34564 Feb 28 2019 sync - -rwxr-xr-x 1 root root 504024 Apr 23 2019 tar - -rwxr-xr-x 1 root root 13860 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 104292 Feb 28 2019 touch - -rwxr-xr-x 1 root root 34532 Feb 28 2019 true - -rwxr-xr-x 1 root root 17768 Apr 22 2020 ulockmgr_server - -rwsr-xr-x 1 root root 30108 Jan 9 2019 umount - -rwxr-xr-x 1 root root 34532 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 149736 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34208 Jan 9 2019 wdctl - -rwxr-xr-x 1 root root 946 Jan 21 2019 which - lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat - -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp - -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff - -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep - -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep - -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce - -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep - -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless - -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore - -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew -I: user script /srv/workspace/pbuilder/21454/tmp/hooks/D02_print_environment finished + total 5500 + -rwxr-xr-x 1 root root 1302248 Apr 18 2019 bash + -rwxr-xr-x 3 root root 38280 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 38280 Jul 11 2019 bzcat + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep + -rwxr-xr-x 3 root root 38280 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 17768 Jul 11 2019 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore + -rwxr-xr-x 1 root root 38692 Mar 1 2019 cat + -rwxr-xr-x 1 root root 75588 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 63268 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 75588 Mar 1 2019 chown + -rwxr-xr-x 1 root root 153732 Mar 1 2019 cp + -rwxr-xr-x 1 root root 132820 Jan 18 2019 dash + -rwxr-xr-x 1 root root 120676 Mar 1 2019 date + -rwxr-xr-x 1 root root 92040 Mar 1 2019 dd + -rwxr-xr-x 1 root root 100620 Mar 1 2019 df + -rwxr-xr-x 1 root root 149736 Mar 1 2019 dir + -rwxr-xr-x 1 root root 79412 Jan 10 2019 dmesg + lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname + -rwxr-xr-x 1 root root 34532 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 34532 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 67700 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 30112 Apr 23 09:38 fusermount + -rwxr-xr-x 1 root root 206392 Jan 8 2019 grep + -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip + -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe + -rwxr-xr-x 1 root root 100952 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 21916 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 79752 Mar 1 2019 ln + -rwxr-xr-x 1 root root 55400 Jul 27 2018 login + -rwxr-xr-x 1 root root 149736 Mar 1 2019 ls + -rwxr-xr-x 1 root root 112032 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 87972 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 79748 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 46916 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 42348 Jan 10 2019 more + -rwsr-xr-x 1 root root 50592 Jan 10 2019 mount + -rwxr-xr-x 1 root root 13724 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 157832 Mar 1 2019 mv + lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 38660 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 46852 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 75588 Mar 1 2019 rm + -rwxr-xr-x 1 root root 42756 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 22276 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 125036 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Jun 17 02:54 sh -> bash + lrwxrwxrwx 1 root root 4 Jun 16 22:25 sh.distrib -> dash + -rwxr-xr-x 1 root root 34532 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 79652 Mar 1 2019 stty + -rwsr-xr-x 1 root root 71072 Jan 10 2019 su + -rwxr-xr-x 1 root root 34564 Mar 1 2019 sync + -rwxr-xr-x 1 root root 504024 Apr 24 2019 tar + -rwxr-xr-x 1 root root 13860 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 104292 Mar 1 2019 touch + -rwxr-xr-x 1 root root 34532 Mar 1 2019 true + -rwxr-xr-x 1 root root 17768 Apr 23 09:38 ulockmgr_server + -rwsr-xr-x 1 root root 30108 Jan 10 2019 umount + -rwxr-xr-x 1 root root 34532 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 149736 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34208 Jan 10 2019 wdctl + -rwxr-xr-x 1 root root 946 Jan 22 2019 which + lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat + -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp + -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff + -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep + -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep + -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce + -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep + -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless + -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore + -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew +I: user script /srv/workspace/pbuilder/16250/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -596,7 +630,7 @@ Get: 387 http://deb.debian.org/debian buster/main i386 texlive-latex-base all 2018.20190227-2 [984 kB] Get: 388 http://deb.debian.org/debian buster/main i386 texlive-latex-recommended all 2018.20190227-2 [15.2 MB] Get: 389 http://deb.debian.org/debian buster/main i386 texlive all 2018.20190227-2 [32.6 kB] -Fetched 205 MB in 5s (41.5 MB/s) +Fetched 205 MB in 38s (5444 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:i386. (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 ... 19234 files and directories currently installed.) @@ -2213,7 +2247,7 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/octave-optim-1.5.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/octave-optim-1.5.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package octave-optim dpkg-buildpackage: info: source version 1.5.3-2 dpkg-buildpackage: info: source distribution unstable @@ -2291,7 +2325,7 @@ config.status: creating Makefile config.status: creating config.h make[2]: Entering directory '/build/octave-optim-1.5.3/src' -./mkdoc.pl ../inst/lsqcurvefit.m ../inst/nlinfit.m ../inst/rosenbrock.m ../inst/LinearRegression.m ../inst/nelder_mead_min.m ../inst/adsmax.m ../inst/polyfitinf.m ../inst/expfit.m ../inst/cpiv_bard.m ../inst/test_wpolyfit.m ../inst/cg_min.m ../inst/leasqr.m ../inst/statset.m ../inst/bfgsmin_example.m ../inst/cdiff.m ../inst/__all_stat_opts__.m ../inst/gjp.m ../inst/brent_line_min.m ../inst/curvefit_stat.m ../inst/test_nelder_mead_min_2.m ../inst/lsqlin.m ../inst/powell.m ../inst/nonlin_min.m ../inst/fmins.m ../inst/dfxpdp.m ../inst/statget.m ../inst/optim_doc.m ../inst/vfzero.m ../inst/test_min_3.m ../inst/test_min_2.m ../inst/wsolve.m ../inst/mdsmax.m ../inst/test_min_4.m ../inst/wpolyfit.m ../inst/lsqnonlin.m ../inst/polyconf.m ../inst/dfdp.m ../inst/nmsmax.m ../inst/line_min.m ../inst/quadprog.m ../inst/jacobs.m ../inst/nonlin_curvefit.m ../inst/deriv.m ../inst/bfgsmin.m ../inst/dcdp.m ../inst/optim_problems.m ../inst/dfpdp.m ../inst/linprog.m ../inst/battery.m ../inst/de_min.m ../inst/nonlin_residmin.m ../inst/test_nelder_mead_min_1.m ../inst/samin_example.m ../inst/nrm.m ../inst/residmin_stat.m ../inst/test_min_1.m ../inst/wrap_f_dfdp.m ../inst/poly_2_ex.m > MFDOCSTRINGS +./mkdoc.pl ../inst/lsqcurvefit.m ../inst/nlinfit.m ../inst/LinearRegression.m ../inst/nelder_mead_min.m ../inst/adsmax.m ../inst/expfit.m ../inst/cpiv_bard.m ../inst/de_min.m ../inst/leasqr.m ../inst/statset.m ../inst/bfgsmin_example.m ../inst/fmins.m ../inst/__all_stat_opts__.m ../inst/gjp.m ../inst/brent_line_min.m ../inst/rosenbrock.m ../inst/curvefit_stat.m ../inst/test_nelder_mead_min_2.m ../inst/lsqlin.m ../inst/powell.m ../inst/nonlin_min.m ../inst/dfxpdp.m ../inst/statget.m ../inst/optim_doc.m ../inst/cdiff.m ../inst/vfzero.m ../inst/polyfitinf.m ../inst/test_min_2.m ../inst/wsolve.m ../inst/mdsmax.m ../inst/polyconf.m ../inst/wpolyfit.m ../inst/lsqnonlin.m ../inst/dfdp.m ../inst/nmsmax.m ../inst/line_min.m ../inst/quadprog.m ../inst/nonlin_curvefit.m ../inst/deriv.m ../inst/nrm.m ../inst/test_min_4.m ../inst/dcdp.m ../inst/optim_problems.m ../inst/dfpdp.m ../inst/linprog.m ../inst/test_min_3.m ../inst/jacobs.m ../inst/cg_min.m ../inst/nonlin_residmin.m ../inst/test_nelder_mead_min_1.m ../inst/samin_example.m ../inst/battery.m ../inst/test_wpolyfit.m ../inst/residmin_stat.m ../inst/bfgsmin.m ../inst/test_min_1.m ../inst/wrap_f_dfdp.m ../inst/poly_2_ex.m > MFDOCSTRINGS if grep -q DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS __bfgsmin.cc; then echo "The string 'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in __bfgsmin.cc."; exit 1; fi if grep -q DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS numgradient.cc; then echo "The string 'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in numgradient.cc."; exit 1; fi if grep -q DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS numhessian.cc; then echo "The string 'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in numhessian.cc."; exit 1; fi @@ -2302,18 +2336,18 @@ if grep -q DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS numgradient.cc; then echo "The string 'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in numgradient.cc."; exit 1; fi if grep -q DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS numhessian.cc; then echo "The string 'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in numhessian.cc."; exit 1; fi if grep -q DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS samin.cc; then echo "The string 'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in samin.cc."; exit 1; fi -if grep -q DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS __disna_optim__.cc; then echo "The string 'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in __disna_optim__.cc."; exit 1; fi g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security error-helpers.cc -o error-helpers.o +if grep -q DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS __disna_optim__.cc; then echo "The string 'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS' must not be present in source code, but is in __disna_optim__.cc."; exit 1; fi (echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g __bfgsmin.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " __bfgsmin.cc\n" doc "\n\n", 0x1D);' -o __bfgsmin.bin - (echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g numgradient.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " numgradient.cc\n" doc "\n\n", 0x1D);' -o numgradient.bin - -(echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g samin.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " samin.cc\n" doc "\n\n", 0x1D);' -o samin.bin - (echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g numhessian.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " numhessian.cc\n" doc "\n\n", 0x1D);' -o numhessian.bin - +(echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g samin.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " samin.cc\n" doc "\n\n", 0x1D);' -o samin.bin - (echo "#include "; echo "int main () {"; sed -e s/DEFUN_DLD/DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g -e s/DEFUNX_DLD/DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/g __disna_optim__.cc | g++ -E `/usr/bin/mkoctfile --verbose -p INCFLAGS` -x c++ -iquote '.' -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' -D'DEFUNX_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,fname,gname,args,nargout,doc)=DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)' - | sed -e '/.*DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS/!D'; echo "}";) | g++ -x c++ -D'DEFUN_DLD_REPLACEMENT_FOR_PACKAGE_DOCS(name,doc)=printf("%c" #name "\n@c " #name " __disna_optim__.cc\n" doc "\n\n", 0x1D);' -o __disna_optim__.bin - -(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./__bfgsmin.bin) > __bfgsmin.cc.docstrings -(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./__disna_optim__.bin) > __disna_optim__.cc.docstrings (echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./numhessian.bin) > numhessian.cc.docstrings -(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./samin.bin) > samin.cc.docstrings +(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./__disna_optim__.bin) > __disna_optim__.cc.docstrings +(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./__bfgsmin.bin) > __bfgsmin.cc.docstrings (echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./numgradient.bin) > numgradient.cc.docstrings +(echo "### This file is generated automatically from the"; echo "### corresponding .cc file by a Makefile rule."; echo ""; ./samin.bin) > samin.cc.docstrings ./munge-texi.pl MFDOCSTRINGS __bfgsmin.cc.docstrings numgradient.cc.docstrings numhessian.cc.docstrings samin.cc.docstrings __disna_optim__.cc.docstrings < ../doc/optim.txi > ../doc/optim.texi makeinfo ../doc/optim.texi -o ../doc/optim.info CXXFLAGS="-g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security" /usr/bin/mkoctfile --verbose __bfgsmin.cc error-helpers.o @@ -2321,9 +2355,9 @@ CXXFLAGS="-g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security" /usr/bin/mkoctfile --verbose numhessian.cc error-helpers.o CXXFLAGS="-g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security" /usr/bin/mkoctfile --verbose samin.cc error-helpers.o CXXFLAGS="-g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security" LFLAGS="-L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -llapack -lblas" /usr/bin/mkoctfile --verbose __disna_optim__.cc error-helpers.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security numhessian.cc -o numhessian.o g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security __bfgsmin.cc -o __bfgsmin.o g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security numgradient.cc -o numgradient.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security numhessian.cc -o numhessian.o g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security samin.cc -o samin.o g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security __disna_optim__.cc -o __disna_optim__.o g++ -I/usr/include/octave-4.4.1/octave/.. -I/usr/include/octave-4.4.1/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/octave-optim-1.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o __disna_optim__.oct error-helpers.o __disna_optim__.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -llapack -lblas -loctinterp -loctave -Wl,-z,relro @@ -2388,6 +2422,168 @@ dh_octave_check -O--buildsystem=octave Checking package... Checking m files ... +[inst/quadprog.m] +>>>>> /build/octave-optim-1.5.3/inst/quadprog.m +***** test + H= diag([1; 0]); + f = [3; 4]; + A= [-1 -3; 2 5; 3 4]; + b = [-15; 100; 80]; + l= zeros(2,1); + [x,fval,exitflag,output] = quadprog(H,f,A,b,[],[],l,[]); + assert(x,[0;5]) + assert(fval,20) + assert(exitflag,1) + assert(output.iterations,1) +***** demo + C = [0.9501 0.7620 0.6153 0.4057 + 0.2311 0.4564 0.7919 0.9354 + 0.6068 0.0185 0.9218 0.9169 + 0.4859 0.8214 0.7382 0.4102 + 0.8912 0.4447 0.1762 0.8936]; + %% Linear Inequality Constraints + d = [0.0578; 0.3528; 0.8131; 0.0098; 0.1388]; + A =[0.2027 0.2721 0.7467 0.4659 + 0.1987 0.1988 0.4450 0.4186 + 0.6037 0.0152 0.9318 0.8462]; + b =[0.5251; 0.2026; 0.6721]; + %% Linear Equality Constraints + Aeq = [3 5 7 9]; + beq = 4; + %% Bound constraints + lb = -0.1*ones(4,1); + ub = ones(4,1); + H = C' * C; + f = -C' * d; + [x, obj, flag, output, lambda]=quadprog (H, f, A, b, Aeq, beq, lb, ub) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/lsqcurvefit.m] +>>>>> /build/octave-optim-1.5.3/inst/lsqcurvefit.m +***** test + xdata = [0 .3 .8 1.1 1.6 2.3]; + ydata = [.82 .72 .63 .60 .55 .50]; + yhat = @(p,x) p(1) + p(2)*exp(-x); + opt = optimset('TolFun',1e-100); + [p, resnorm, residual] = lsqcurvefit(yhat,[1 1], xdata, ydata,[0 0],[],opt); + assert (p, [ 0.47595; 0.34132], 1e-5) + assert (resnorm, 3.2419e-004, 1e-8) + assert(residual, [-2.7283e-003, 8.8079e-003, -6.8307e-004, -1.0432e-002, -5.1366e-003, 1.0172e-002], 1e-5) +***** demo + %% Example for user specified Jacobian. + + %% independents + x = [1:10:100]'; + %% observed data + y =[9.2160e-001, 3.3170e-001, 8.9789e-002, 2.8480e-002, 2.6055e-002,... + 8.3641e-003, 4.2362e-003, 3.1693e-003, 1.4739e-004, 2.9406e-004]'; + %% initial values: + p0=[0.8; 0.05]; + %% bounds + lb=[0; 0]; ub=[]; + %% Jacobian setting + opts = optimset ("Jacobian", "on") + + %% model function: + function [F,J] = myfun (p, x) + F = p(1) * exp (-p(2) * x); + if nargout > 1 + J = [exp(- p(2) * x), - p(1) * x .* exp(- p(2) * x)]; + endif + endfunction + + [c, resnorm, residual, flag, output, lambda, jacob] = ... + lsqcurvefit (@ (varargin) myfun(varargin{:}), p0, x, y, lb, ub, opts) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/jacobs.m] +>>>>> /build/octave-optim-1.5.3/inst/jacobs.m +***** assert (jacobs (1, @(x) x), 1) +***** assert (jacobs (6, @(x) x^2), 12) +***** assert (jacobs ([1; 1], @(x) [x(1)^2; x(1)*x(2)]), [2, 0; 1, 1]) +***** assert (jacobs ([1; 2], @(x) [x(1)^2 + x(2); x(2)*exp(x(1))]), [2, 1; 2*exp(1), exp(1)]) +***** error jacobs () +***** error jacobs (1) +***** error jacobs (1, 2, 3, 4) +***** error jacobs (@sin, 1, [1, 1]) +***** error jacobs (@sin, 1, ones(2, 2)) +***** demo + # Relative error against several h-values + k = 3:20; h = 10 .^ (-k); x = 0.3*pi; + err = zeros (1, numel (k)); + for count = 1 : numel (k) + err(count) = abs (jacobs (x, @sin, struct ("h", h(count))) - cos (x)) / abs (cos (x)) + eps; + endfor + loglog (h, err); grid minor; + xlabel ("h"); ylabel ("|Df(x) - cos(x)| / |cos(x)|") + title ("f(x)=sin(x), f'(x)=cos(x) at x = 0.3pi") +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/statget.m] +>>>>> /build/octave-optim-1.5.3/inst/statget.m +***** shared opts + opts = statset ("maxit", 100); +***** assert (statget (opts, "maxit"), 100) +***** assert (statget (opts, "MaxITer"), 100) +***** assert (statget (opts, "TolFun"), []) +***** assert (statget (opts, "TolFun", 1e-3), 1e-3) +***** error statget () +***** error statget (1) +***** error statget (1,2,3,4,5) +***** error statget (1, "name") +***** error statget (struct (), 2) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/de_min.m] +>>>>> /build/octave-optim-1.5.3/inst/de_min.m +***** function result = f(x); + result = 100 * (x(2) - x(1)^2)^2 + (1 - x(1))^2; +***** test + tol = 1.0e-4; + ctl.tol = 0.0; + ctl.VTR = 1.0e-6; + ctl.XVmin = [-2 -2]; + ctl.XVmax = [ 2 2]; + rand("state", 11) + [x, obj_value, nfeval, convergence] = de_min (@f, ctl); + assert (convergence == 1); + assert (f(x) == obj_value); + assert (obj_value < ctl.VTR); +***** demo + ## define a simple example function + f = @(x) peaks(x(1), x(2)); + ## plot the function to see where the minimum might be + peaks() + ## first we set the region where we expect the minimum + ctl.XVmin = [-3 -3]; + ctl.XVmax = [ 3 3]; + ## and solve it with de_min + [x, obj_value, nfeval, convergence] = de_min (f, ctl) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/__all_stat_opts__.m] +>>>>> /build/octave-optim-1.5.3/inst/__all_stat_opts__.m +***** assert (1) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/nonlin_curvefit.m] +>>>>> /build/octave-optim-1.5.3/inst/nonlin_curvefit.m +***** demo + ## Example for linear inequality constraints + ## (see also the same example in 'demo nonlin_residmin') + + ## independents and observations + indep = 1:5; + obs = [1, 2, 4, 7, 14]; + ## model function: + f = @ (p, x) p(1) * exp (p(2) * x); + ## initial values: + init = [.25; .25]; + ## linear constraints, A.' * parametervector + B >= 0 + A = [1; -1]; B = 0; # p(1) >= p(2); + settings = optimset ("inequc", {A, B}); + + ## start optimization + [p, model_values, cvg, outp] = nonlin_curvefit (f, init, indep, obs, settings) +***** test + t = optim_problems ().curve.schittkowski_327; + cp = nonlin_curvefit (@ (p, x) t.f (x, p), t.init_p, t.data.x, t.data.y, optimset ("lbound", t.non_strict_inequc.bounds(:, 1), "ubound", t.non_strict_inequc.bounds(:, 2), "inequc", {t.non_strict_inequc.general}, "dfdp", @ (p, x) t.dfdp (x, p))); + assert (cp, t.result.p, [.0001; .001]); +1 test, 1 passed, 0 known failure, 0 skipped [inst/vfzero.m] >>>>> /build/octave-optim-1.5.3/inst/vfzero.m ***** shared opt0 @@ -2440,6 +2636,18 @@ ***** error statset ("%NOT_A_REAL_FUNCTION_NAME%") ***** warning statset ("foobar", 13); 5 tests, 5 passed, 0 known failure, 0 skipped +[inst/polyconf.m] +>>>>> /build/octave-optim-1.5.3/inst/polyconf.m +***** test + # data from Hocking, RR, "Methods and Applications of Linear Models" + temperature=[40;40;40;45;45;45;50;50;50;55;55;55;60;60;60;65;65;65]; + strength=[66.3;64.84;64.36;69.70;66.26;72.06;73.23;71.4;68.85;75.78;72.57;76.64;78.87;77.37;75.94;78.82;77.13;77.09]; + [p,s] = polyfit(temperature,strength,1); + [y,dy] = polyconf(p,40,s,0.05,'ci'); + assert([y,dy],[66.15396825396826,1.71702862681486],200*eps); + [y,dy] = polyconf(p,40,s,0.05,'pi'); + assert(dy,4.45345484470743,200*eps); +1 test, 1 passed, 0 known failure, 0 skipped [inst/linprog.m] >>>>> /build/octave-optim-1.5.3/inst/linprog.m ***** test @@ -2485,44 +2693,38 @@ beq = 0; assert (linprog (f, A, b, Aeq, beq, lb, ub), x_exp); 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/quadprog.m] ->>>>> /build/octave-optim-1.5.3/inst/quadprog.m +[inst/nlinfit.m] +>>>>> /build/octave-optim-1.5.3/inst/nlinfit.m ***** test - H= diag([1; 0]); - f = [3; 4]; - A= [-1 -3; 2 5; 3 4]; - b = [-15; 100; 80]; - l= zeros(2,1); - [x,fval,exitflag,output] = quadprog(H,f,A,b,[],[],l,[]); - assert(x,[0;5]) - assert(fval,20) - assert(exitflag,1) - assert(output.iterations,1) + modelfun = @(b, x) (b(1) + b(2) * exp (- b(3) * x)); + b = [1;3;2]; + v = rande ("state"); + rande ("seed", 1234); + xdata = exprnd (2,100,1); + rande ("state", v); + v = randn ("state"); + randn ("seed", 1234); + ydata = modelfun (b,xdata) + normrnd (0,0.1,100,1); + randn ("state", v); + beta0 = [2;2;3]; + beta = nlinfit(xdata,ydata,modelfun,beta0); + assert (beta, [1;3;2], 1e-1) ***** demo - C = [0.9501 0.7620 0.6153 0.4057 - 0.2311 0.4564 0.7919 0.9354 - 0.6068 0.0185 0.9218 0.9169 - 0.4859 0.8214 0.7382 0.4102 - 0.8912 0.4447 0.1762 0.8936]; - %% Linear Inequality Constraints - d = [0.0578; 0.3528; 0.8131; 0.0098; 0.1388]; - A =[0.2027 0.2721 0.7467 0.4659 - 0.1987 0.1988 0.4450 0.4186 - 0.6037 0.0152 0.9318 0.8462]; - b =[0.5251; 0.2026; 0.6721]; - %% Linear Equality Constraints - Aeq = [3 5 7 9]; - beq = 4; - %% Bound constraints - lb = -0.1*ones(4,1); - ub = ones(4,1); - H = C' * C; - f = -C' * d; - [x, obj, flag, output, lambda]=quadprog (H, f, A, b, Aeq, beq, lb, ub) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/__all_stat_opts__.m] ->>>>> /build/octave-optim-1.5.3/inst/__all_stat_opts__.m -***** assert (1) + modelfun = @(b, x) (b(1) + b(2) * exp (- b(3) * x)); + %% actual value + beta_without_noise = [1; 3; 2]; + x = [3.49622; 0.33751; 1.25675; 3.66981; 0.26237; 5.51095; ... + 2.11407; 1.48774; 6.22436; 2.04519]; + y_actual = modelfun (beta_without_noise, x); + noise = [0.176110; -0.066850; 0.231000; -0.047570; -0.108230; ... + 0.122790; 0.062940; 0.151510; 0.116010; -0.097460]; + y_noisy = y_actual + noise; + %% initial guess + beta0 = [2; 2; 2]; + %% weights vector + weights = [5; 16; 1; 20; 12; 11; 17; 8; 11; 13]; + [beta, R, J, covb, mse] = nlinfit (x, y_noisy, modelfun, beta0) + [beta_w, R_w, J_w, covb_w, mse_w] = nlinfit (x, y_noisy, modelfun, beta0, [], "weights", weights) 1 test, 1 passed, 0 known failure, 0 skipped [inst/lsqlin.m] >>>>> /build/octave-optim-1.5.3/inst/lsqlin.m @@ -2579,174 +2781,6 @@ ub = ones(4,1); [x, resnorm, residual, flag, output, lambda] = lsqlin (C, d, A, b, Aeq, beq, lb, ub) 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/polyconf.m] ->>>>> /build/octave-optim-1.5.3/inst/polyconf.m -***** test - # data from Hocking, RR, "Methods and Applications of Linear Models" - temperature=[40;40;40;45;45;45;50;50;50;55;55;55;60;60;60;65;65;65]; - strength=[66.3;64.84;64.36;69.70;66.26;72.06;73.23;71.4;68.85;75.78;72.57;76.64;78.87;77.37;75.94;78.82;77.13;77.09]; - [p,s] = polyfit(temperature,strength,1); - [y,dy] = polyconf(p,40,s,0.05,'ci'); - assert([y,dy],[66.15396825396826,1.71702862681486],200*eps); - [y,dy] = polyconf(p,40,s,0.05,'pi'); - assert(dy,4.45345484470743,200*eps); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/statget.m] ->>>>> /build/octave-optim-1.5.3/inst/statget.m -***** shared opts - opts = statset ("maxit", 100); -***** assert (statget (opts, "maxit"), 100) -***** assert (statget (opts, "MaxITer"), 100) -***** assert (statget (opts, "TolFun"), []) -***** assert (statget (opts, "TolFun", 1e-3), 1e-3) -***** error statget () -***** error statget (1) -***** error statget (1,2,3,4,5) -***** error statget (1, "name") -***** error statget (struct (), 2) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/nlinfit.m] ->>>>> /build/octave-optim-1.5.3/inst/nlinfit.m -***** test - modelfun = @(b, x) (b(1) + b(2) * exp (- b(3) * x)); - b = [1;3;2]; - v = rande ("state"); - rande ("seed", 1234); - xdata = exprnd (2,100,1); - rande ("state", v); - v = randn ("state"); - randn ("seed", 1234); - ydata = modelfun (b,xdata) + normrnd (0,0.1,100,1); - randn ("state", v); - beta0 = [2;2;3]; - beta = nlinfit(xdata,ydata,modelfun,beta0); - assert (beta, [1;3;2], 1e-1) -***** demo - modelfun = @(b, x) (b(1) + b(2) * exp (- b(3) * x)); - %% actual value - beta_without_noise = [1; 3; 2]; - x = [3.49622; 0.33751; 1.25675; 3.66981; 0.26237; 5.51095; ... - 2.11407; 1.48774; 6.22436; 2.04519]; - y_actual = modelfun (beta_without_noise, x); - noise = [0.176110; -0.066850; 0.231000; -0.047570; -0.108230; ... - 0.122790; 0.062940; 0.151510; 0.116010; -0.097460]; - y_noisy = y_actual + noise; - %% initial guess - beta0 = [2; 2; 2]; - %% weights vector - weights = [5; 16; 1; 20; 12; 11; 17; 8; 11; 13]; - [beta, R, J, covb, mse] = nlinfit (x, y_noisy, modelfun, beta0) - [beta_w, R_w, J_w, covb_w, mse_w] = nlinfit (x, y_noisy, modelfun, beta0, [], "weights", weights) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/lsqcurvefit.m] ->>>>> /build/octave-optim-1.5.3/inst/lsqcurvefit.m -***** test - xdata = [0 .3 .8 1.1 1.6 2.3]; - ydata = [.82 .72 .63 .60 .55 .50]; - yhat = @(p,x) p(1) + p(2)*exp(-x); - opt = optimset('TolFun',1e-100); - [p, resnorm, residual] = lsqcurvefit(yhat,[1 1], xdata, ydata,[0 0],[],opt); - assert (p, [ 0.47595; 0.34132], 1e-5) - assert (resnorm, 3.2419e-004, 1e-8) - assert(residual, [-2.7283e-003, 8.8079e-003, -6.8307e-004, -1.0432e-002, -5.1366e-003, 1.0172e-002], 1e-5) -***** demo - %% Example for user specified Jacobian. - - %% independents - x = [1:10:100]'; - %% observed data - y =[9.2160e-001, 3.3170e-001, 8.9789e-002, 2.8480e-002, 2.6055e-002,... - 8.3641e-003, 4.2362e-003, 3.1693e-003, 1.4739e-004, 2.9406e-004]'; - %% initial values: - p0=[0.8; 0.05]; - %% bounds - lb=[0; 0]; ub=[]; - %% Jacobian setting - opts = optimset ("Jacobian", "on") - - %% model function: - function [F,J] = myfun (p, x) - F = p(1) * exp (-p(2) * x); - if nargout > 1 - J = [exp(- p(2) * x), - p(1) * x .* exp(- p(2) * x)]; - endif - endfunction - - [c, resnorm, residual, flag, output, lambda, jacob] = ... - lsqcurvefit (@ (varargin) myfun(varargin{:}), p0, x, y, lb, ub, opts) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/jacobs.m] ->>>>> /build/octave-optim-1.5.3/inst/jacobs.m -***** assert (jacobs (1, @(x) x), 1) -***** assert (jacobs (6, @(x) x^2), 12) -***** assert (jacobs ([1; 1], @(x) [x(1)^2; x(1)*x(2)]), [2, 0; 1, 1]) -***** assert (jacobs ([1; 2], @(x) [x(1)^2 + x(2); x(2)*exp(x(1))]), [2, 1; 2*exp(1), exp(1)]) -***** error jacobs () -***** error jacobs (1) -***** error jacobs (1, 2, 3, 4) -***** error jacobs (@sin, 1, [1, 1]) -***** error jacobs (@sin, 1, ones(2, 2)) -***** demo - # Relative error against several h-values - k = 3:20; h = 10 .^ (-k); x = 0.3*pi; - err = zeros (1, numel (k)); - for count = 1 : numel (k) - err(count) = abs (jacobs (x, @sin, struct ("h", h(count))) - cos (x)) / abs (cos (x)) + eps; - endfor - loglog (h, err); grid minor; - xlabel ("h"); ylabel ("|Df(x) - cos(x)| / |cos(x)|") - title ("f(x)=sin(x), f'(x)=cos(x) at x = 0.3pi") -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/de_min.m] ->>>>> /build/octave-optim-1.5.3/inst/de_min.m -***** function result = f(x); - result = 100 * (x(2) - x(1)^2)^2 + (1 - x(1))^2; -***** test - tol = 1.0e-4; - ctl.tol = 0.0; - ctl.VTR = 1.0e-6; - ctl.XVmin = [-2 -2]; - ctl.XVmax = [ 2 2]; - rand("state", 11) - [x, obj_value, nfeval, convergence] = de_min (@f, ctl); - assert (convergence == 1); - assert (f(x) == obj_value); - assert (obj_value < ctl.VTR); -***** demo - ## define a simple example function - f = @(x) peaks(x(1), x(2)); - ## plot the function to see where the minimum might be - peaks() - ## first we set the region where we expect the minimum - ctl.XVmin = [-3 -3]; - ctl.XVmax = [ 3 3]; - ## and solve it with de_min - [x, obj_value, nfeval, convergence] = de_min (f, ctl) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/nonlin_curvefit.m] ->>>>> /build/octave-optim-1.5.3/inst/nonlin_curvefit.m -***** demo - ## Example for linear inequality constraints - ## (see also the same example in 'demo nonlin_residmin') - - ## independents and observations - indep = 1:5; - obs = [1, 2, 4, 7, 14]; - ## model function: - f = @ (p, x) p(1) * exp (p(2) * x); - ## initial values: - init = [.25; .25]; - ## linear constraints, A.' * parametervector + B >= 0 - A = [1; -1]; B = 0; # p(1) >= p(2); - settings = optimset ("inequc", {A, B}); - - ## start optimization - [p, model_values, cvg, outp] = nonlin_curvefit (f, init, indep, obs, settings) -***** test - t = optim_problems ().curve.schittkowski_327; - cp = nonlin_curvefit (@ (p, x) t.f (x, p), t.init_p, t.data.x, t.data.y, optimset ("lbound", t.non_strict_inequc.bounds(:, 1), "ubound", t.non_strict_inequc.bounds(:, 2), "inequc", {t.non_strict_inequc.general}, "dfdp", @ (p, x) t.dfdp (x, p))); - assert (cp, t.result.p, [.0001; .001]); -1 test, 1 passed, 0 known failure, 0 skipped [inst/nonlin_residmin.m] >>>>> /build/octave-optim-1.5.3/inst/nonlin_residmin.m ***** demo @@ -2797,17 +2831,17 @@ dh_strip -O--buildsystem=octave dh_makeshlibs -O--buildsystem=octave dh_shlibdeps -O--buildsystem=octave +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__bfgsmin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__disna_optim__.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/samin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numhessian.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numgradient.oct were not linked against libpthread.so.0 (they use none of the library's symbols) dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__disna_optim__.oct was not linked against libblas.so.3 (it uses none of the library's symbols) -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numgradient.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numhessian.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__bfgsmin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__disna_optim__.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/samin.oct were not linked against libgomp.so.1 (they use none of the library's symbols) -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numgradient.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numhessian.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__bfgsmin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__disna_optim__.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/samin.oct were not linked against libpthread.so.0 (they use none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__bfgsmin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/__disna_optim__.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/samin.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numhessian.oct debian/octave-optim/usr/lib/i386-linux-gnu/octave/packages/optim-1.5.3/i686-pc-linux-gnu-api-v52/numgradient.oct were not linked against libgomp.so.1 (they use none of the library's symbols) dh_installdeb -O--buildsystem=octave dh_gencontrol -O--buildsystem=octave dpkg-gencontrol: warning: package octave-optim: substitution variable ${octave:Upstream-Description} unused, but is defined dpkg-gencontrol: warning: package octave-optim: substitution variable ${octave:Upstream-Description} unused, but is defined dh_md5sums -O--buildsystem=octave dh_builddeb -O--buildsystem=octave -dpkg-deb: building package 'octave-optim' in '../octave-optim_1.5.3-2_i386.deb'. dpkg-deb: building package 'octave-optim-dbgsym' in '../octave-optim-dbgsym_1.5.3-2_i386.deb'. +dpkg-deb: building package 'octave-optim' in '../octave-optim_1.5.3-2_i386.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../octave-optim_1.5.3-2_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -2815,12 +2849,14 @@ dpkg-source: info: using options from octave-optim-1.5.3/debian/source/options: --extend-diff-ignore=doc/optim\.info|doc/optim\.texi dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/16250/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/16250/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/21454 and its subdirectories -I: Current time: Mon Jul 19 07:14:40 -12 2021 -I: pbuilder-time-stamp: 1626722080 +I: removing directory /srv/workspace/pbuilder/16250 and its subdirectories +I: Current time: Wed Jun 17 03:05:19 +14 2020 +I: pbuilder-time-stamp: 1592312719