Diff of the two buildlogs: -- --- b1/build.log 2020-06-18 11:45:09.971133718 +0000 +++ b2/build.log 2020-06-18 13:19:21.943252967 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jul 21 06:06:54 -12 2021 -I: pbuilder-time-stamp: 1626890814 +I: Current time: Fri Jun 19 01:45:12 +14 2020 +I: pbuilder-time-stamp: 1592480712 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:40:30 2019 -12 +gpgv: Signature made Sat Jan 5 22:40:30 2019 +14 gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./octave-nurbs_1.3.13-5.dsc @@ -27,138 +27,172 @@ dpkg-source: info: unpacking octave-nurbs_1.3.13-5.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/57568/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/11865/tmp/hooks/D01_modify_environment starting +debug: Running on profitbricks-build2-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/11865/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/11865/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='3170736d13c54f979cd216eae7b6e195' - 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='57568' - PS1='# ' - PS2='> ' + INVOCATION_ID=656d6747e41a45c4b6de7d88ec3e331d + 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=11865 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.nDFKbjLsOn/pbuilderrc_tk44 --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.nDFKbjLsOn/b1 --logfile b1/build.log octave-nurbs_1.3.13-5.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.nDFKbjLsOn/pbuilderrc_3c5G --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.nDFKbjLsOn/b2 --logfile b2/build.log octave-nurbs_1.3.13-5.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-build16-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 21 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/57568/tmp/hooks/D02_print_environment finished + total 5488 + -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 19 01:53 sh -> bash + lrwxrwxrwx 1 root root 4 Jun 17 22:30 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/11865/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -546,7 +580,7 @@ Get: 348 http://deb.debian.org/debian buster/main i386 fonts-freefont-otf all 20120503-9 [3169 kB] Get: 349 http://deb.debian.org/debian buster/main i386 dh-octave-autopkgtest all 0.6.2 [8308 B] Get: 350 http://deb.debian.org/debian buster/main i386 dh-octave all 0.6.2 [19.9 kB] -Fetched 135 MB in 2s (69.2 MB/s) +Fetched 135 MB in 23s (5759 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.) @@ -1993,7 +2027,7 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/octave-nurbs-1.3.13/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/octave-nurbs-1.3.13/ && 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-nurbs dpkg-buildpackage: info: source version 1.3.13-5 dpkg-buildpackage: info: source distribution unstable @@ -2032,24 +2066,22 @@ /usr/bin/mkoctfile --verbose basisfunder.cc low_level_functions.o /usr/bin/mkoctfile --verbose bspderiv.cc low_level_functions.o /usr/bin/mkoctfile --verbose bspeval.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security bspderiv.cc -o bspderiv.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security basisfun.cc -o basisfun.o /usr/bin/mkoctfile --verbose curvederivcpts.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security bspeval.cc -o bspeval.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security basisfunder.cc -o basisfunder.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security curvederivcpts.cc -o curvederivcpts.o /usr/bin/mkoctfile --verbose nrb_srf_basisfun__.cc low_level_functions.o /usr/bin/mkoctfile --verbose nrb_srf_basisfun_der__.cc low_level_functions.o /usr/bin/mkoctfile --verbose nrbsurfderiveval.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security basisfunder.cc -o basisfunder.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security basisfun.cc -o basisfun.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security bspeval.cc -o bspeval.o /usr/bin/mkoctfile --verbose surfderivcpts.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security bspderiv.cc -o bspderiv.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security curvederivcpts.cc -o curvederivcpts.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security nrb_srf_basisfun__.cc -o nrb_srf_basisfun__.o /usr/bin/mkoctfile --verbose surfderiveval.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security nrb_srf_basisfun_der__.cc -o nrb_srf_basisfun_der__.o -/usr/bin/mkoctfile --verbose tbasisfun.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security nrb_srf_basisfun__.cc -o nrb_srf_basisfun__.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security nrbsurfderiveval.cc -o nrbsurfderiveval.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security surfderivcpts.cc -o surfderivcpts.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security surfderiveval.cc -o surfderiveval.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security tbasisfun.cc -o tbasisfun.o bspeval.cc: In function 'bool bspeval_bad_arguments(const octave_value_list&)': bspeval.cc:116:29: warning: 'bool octave_value::is_real_type() const' is deprecated: [4.4]: use 'isreal' instead [-Wdeprecated-declarations] if (!args(3).is_real_type()) @@ -2064,20 +2096,35 @@ /usr/include/octave-4.4.1/octave/../octave/ov.h:707:8: note: declared here bool is_real_type (void) const ^~~~~~~~~~~~ -tbasisfun.cc: In function 'octave_value_list Ftbasisfun(const octave_value_list&, int)': -tbasisfun.cc:159:26: warning: 'bool octave_value::is_cell() const' is deprecated: [4.4]: use 'iscell' instead [-Wdeprecated-declarations] - if (! args(2).is_cell ()) - ^ -In file included from /usr/include/octave-4.4.1/octave/../octave/ovl.h:36, - from /usr/include/octave-4.4.1/octave/../octave/ov-fcn.h:33, - from /usr/include/octave-4.4.1/octave/../octave/ov-builtin.h:32, - from /usr/include/octave-4.4.1/octave/../octave/defun-int.h:30, - from /usr/include/octave-4.4.1/octave/../octave/defun-dld.h:32, - from /usr/include/octave-4.4.1/octave/../octave/oct.h:32, - from tbasisfun.cc:18: -/usr/include/octave-4.4.1/octave/../octave/ov.h:540:8: note: declared here - bool is_cell (void) const - ^~~~~~~ +nrb_srf_basisfun__.cc: In function 'octave_value_list Fnrb_srf_basisfun__(const octave_value_list&, int)': +nrb_srf_basisfun__.cc:69:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] + Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U); + ^ +In file included from nrb_srf_basisfun__.cc:19: +/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here + feval (const std::string& name, + ^~~~~ +nrb_srf_basisfun__.cc:69:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] + Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U); + ^ +In file included from nrb_srf_basisfun__.cc:19: +/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here + feval (const std::string& name, + ^~~~~ +nrb_srf_basisfun__.cc:78:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] + Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V); + ^ +In file included from nrb_srf_basisfun__.cc:19: +/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here + feval (const std::string& name, + ^~~~~ +nrb_srf_basisfun__.cc:78:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] + Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V); + ^ +In file included from nrb_srf_basisfun__.cc:19: +/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here + feval (const std::string& name, + ^~~~~ nrb_srf_basisfun_der__.cc: In function 'octave_value_list Fnrb_srf_basisfun_der__(const octave_value_list&, int)': nrb_srf_basisfun_der__.cc:76:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U); @@ -2135,46 +2182,33 @@ /usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here feval (const std::string& name, ^~~~~ -nrb_srf_basisfun__.cc: In function 'octave_value_list Fnrb_srf_basisfun__(const octave_value_list&, int)': -nrb_srf_basisfun__.cc:69:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] - Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U); - ^ -In file included from nrb_srf_basisfun__.cc:19: -/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here - feval (const std::string& name, - ^~~~~ -nrb_srf_basisfun__.cc:69:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] - Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U); - ^ -In file included from nrb_srf_basisfun__.cc:19: -/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here - feval (const std::string& name, - ^~~~~ -nrb_srf_basisfun__.cc:78:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] - Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V); - ^ -In file included from nrb_srf_basisfun__.cc:19: -/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here - feval (const std::string& name, - ^~~~~ -nrb_srf_basisfun__.cc:78:64: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations] - Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V); - ^ -In file included from nrb_srf_basisfun__.cc:19: -/usr/include/octave-4.4.1/octave/../octave/parse.h:643:1: note: declared here - feval (const std::string& name, - ^~~~~ +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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o curvederivcpts.oct low_level_functions.o curvederivcpts.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o surfderiveval.oct low_level_functions.o surfderiveval.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro +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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o basisfun.oct low_level_functions.o basisfun.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o bspderiv.oct low_level_functions.o bspderiv.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro -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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o basisfunder.oct low_level_functions.o basisfunder.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o surfderivcpts.oct low_level_functions.o surfderivcpts.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro +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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o basisfunder.oct low_level_functions.o basisfunder.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o bspeval.oct low_level_functions.o bspeval.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro -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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o basisfun.oct low_level_functions.o basisfun.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro -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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o curvederivcpts.oct low_level_functions.o curvederivcpts.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o nrbsurfderiveval.oct low_level_functions.o nrbsurfderiveval.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro -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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o tbasisfun.oct low_level_functions.o tbasisfun.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro +/usr/bin/mkoctfile --verbose tbasisfun.cc low_level_functions.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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security tbasisfun.cc -o tbasisfun.o +tbasisfun.cc: In function 'octave_value_list Ftbasisfun(const octave_value_list&, int)': +tbasisfun.cc:159:26: warning: 'bool octave_value::is_cell() const' is deprecated: [4.4]: use 'iscell' instead [-Wdeprecated-declarations] + if (! args(2).is_cell ()) + ^ +In file included from /usr/include/octave-4.4.1/octave/../octave/ovl.h:36, + from /usr/include/octave-4.4.1/octave/../octave/ov-fcn.h:33, + from /usr/include/octave-4.4.1/octave/../octave/ov-builtin.h:32, + from /usr/include/octave-4.4.1/octave/../octave/defun-int.h:30, + from /usr/include/octave-4.4.1/octave/../octave/defun-dld.h:32, + from /usr/include/octave-4.4.1/octave/../octave/oct.h:32, + from tbasisfun.cc:18: +/usr/include/octave-4.4.1/octave/../octave/ov.h:540:8: note: declared here + bool is_cell (void) const + ^~~~~~~ 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o nrb_srf_basisfun__.oct low_level_functions.o nrb_srf_basisfun__.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro 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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o nrb_srf_basisfun_der__.oct low_level_functions.o nrb_srf_basisfun_der__.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro +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-nurbs-1.3.13=. -fstack-protector-strong -Wformat -Werror=format-security -shared -Wl,-Bsymbolic -o tbasisfun.oct low_level_functions.o tbasisfun.o -L/usr/lib/i386-linux-gnu/octave/4.4.1 -L/usr/lib/i386-linux-gnu -loctinterp -loctave -Wl,-z,relro make[1]: Leaving directory '/build/octave-nurbs-1.3.13/src' copyfile /build/octave-nurbs-1.3.13/./src/basisfun.oct /build/octave-nurbs-1.3.13/./src/basisfunder.oct /build/octave-nurbs-1.3.13/./src/bspderiv.oct /build/octave-nurbs-1.3.13/./src/bspeval.oct /build/octave-nurbs-1.3.13/./src/curvederivcpts.oct /build/octave-nurbs-1.3.13/./src/nrb_srf_basisfun__.oct /build/octave-nurbs-1.3.13/./src/nrb_srf_basisfun_der__.oct /build/octave-nurbs-1.3.13/./src/nrbsurfderiveval.oct /build/octave-nurbs-1.3.13/./src/surfderivcpts.oct /build/octave-nurbs-1.3.13/./src/surfderiveval.oct /build/octave-nurbs-1.3.13/./src/tbasisfun.oct /build/octave-nurbs-1.3.13/./inst/i686-pc-linux-gnu-api-v52 warning: function /build/octave-nurbs-1.3.13/debian/octave-nurbs/usr/share/octave/packages/nurbs-1.3.13/vecnorm.m shadows a core library function @@ -2184,69 +2218,373 @@ Checking m files ... warning: function /build/octave-nurbs-1.3.13/debian/octave-nurbs/usr/share/octave/packages/nurbs-1.3.13/vecnorm.m shadows a core library function warning: called from - /tmp/fileybYhqE at line 12 column 1 -[inst/nrbeval.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbeval.m + /tmp/fileCsGUNz at line 12 column 1 +[inst/nrbbasisfunder.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbbasisfunder.m ***** demo - srf = nrbtestsrf; - p = nrbeval(srf,{linspace(0.0,1.0,20) linspace(0.0,1.0,20)}); - h = surf(squeeze(p(1,:,:)),squeeze(p(2,:,:)),squeeze(p(3,:,:))); - title('Test surface.'); + U = [0 0 0 0 1 1 1 1]; + x = [0 1/3 2/3 1] ; + y = [0 0 0 0]; + w = [1 1 1 1]; + nrb = nrbmak ([x;y;y;w], U); + u = linspace(0, 1, 30); + [Bu, id] = nrbbasisfunder (u, nrb); + plot(u, Bu) + title('Derivatives of the cubic Bernstein polynomials') hold off ***** test - knots{1} = [0 0 0 1 1 1]; - knots{2} = [0 0 0 .5 1 1 1]; - knots{3} = [0 0 0 0 1 1 1 1]; - cx = [0 0.5 1]; nx = length(cx); - cy = [0 0.25 0.75 1]; ny = length(cy); - cz = [0 1/3 2/3 1]; nz = length(cz); - coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); - coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); - coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); - coefs(4,:,:,:) = 1; - nurbs = nrbmak(coefs, knots); - x = rand(5,1); y = rand(5,1); z = rand(5,1); - tt = [x y z]'; - points = nrbeval(nurbs,tt); - - assert(points,tt,1e-10) + U = [0 0 0 0 1 1 1 1]; + x = [0 1/3 2/3 1] ; + y = [0 0 0 0]; + w = rand(1,4); + nrb = nrbmak ([x;y;y;w], U); + u = linspace(0, 1, 30); + [Bu, id] = nrbbasisfunder (u, nrb); + #plot(u, Bu) + assert (sum(Bu, 2), zeros(numel(u), 1), 1e-10), +***** test + U = [0 0 0 0 1/2 1 1 1 1]; + x = [0 1/4 1/2 3/4 1] ; + y = [0 0 0 0 0]; + w = rand(1,5); + nrb = nrbmak ([x;y;y;w], U); + u = linspace(0, 1, 300); + [Bu, id] = nrbbasisfunder (u, nrb); + assert (sum(Bu, 2), zeros(numel(u), 1), 1e-10) +***** test + p = 2; q = 3; m = 4; n = 5; + Lx = 1; Ly = 1; + nrb = nrb4surf ([0 0], [1 0], [0 1], [1 1]); + nrb = nrbdegelev (nrb, [p-1, q-1]); + aux1 = linspace(0,1,m); aux2 = linspace(0,1,n); + nrb = nrbkntins (nrb, {aux1(2:end-1), aux2(2:end-1)}); + nrb.coefs (4,:,:) = nrb.coefs(4,:,:) + rand (size (nrb.coefs (4,:,:))); + [Bu, Bv, N] = nrbbasisfunder ({rand(1, 20), rand(1, 20)}, nrb); + #plot3(squeeze(u(1,:,:)), squeeze(u(2,:,:)), reshape(Bu(:,10), 20, 20),'o') + assert (sum (Bu, 2), zeros(20^2, 1), 1e-10) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/findspan.m] +>>>>> /build/octave-nurbs-1.3.13/inst/findspan.m +***** test + n = 3; + U = [0 0 0 1/2 1 1 1]; + p = 2; + u = linspace(0, 1, 10); + s = findspan (n, p, u, U); + assert (s, [2*ones(1, 5) 3*ones(1, 5)]); +***** test + p = 2; m = 7; n = m - p - 1; + U = [zeros(1,p) linspace(0,1,m+1-2*p) ones(1,p)]; + u = [ 0 0.11880 0.55118 0.93141 0.40068 0.35492 0.44392 0.88360 0.35414 0.92186 0.83085 1]; + s = [2 2 3 4 3 3 3 4 3 4 4 4]; + assert (findspan (n, p, u, U), s, 1e-10); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/nrbcrvderiveval.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbcrvderiveval.m +***** test + knots = [0 0 0 1 1 1]; + coefs(:,1) = [0; 0; 0; 1]; + coefs(:,2) = [1; 0; 1; 1]; + coefs(:,3) = [1; 1; 1; 2]; + crv = nrbmak (coefs, knots); + u = linspace (0, 1, 100); + ck = nrbcrvderiveval (crv, u, 2); + w = @(x) 1 + x.^2; + dw = @(x) 2*x; + F1 = @(x) (2*x - x.^2)./w(x); + F2 = @(x) x.^2./w(x); + F3 = @(x) (2*x - x.^2)./w(x); + dF1 = @(x) (2 - 2*x)./w(x) - 2*(2*x - x.^2).*x./w(x).^2; + dF2 = @(x) 2*x./w(x) - 2*x.^3./w(x).^2; + dF3 = @(x) (2 - 2*x)./w(x) - 2*(2*x - x.^2).*x./w(x).^2; + d2F1 = @(x) -2./w(x) - 2*x.*(2-2*x)./w(x).^2 - (8*x-6*x.^2)./w(x).^2 + 8*x.^2.*(2*x-x.^2)./w(x).^3; + d2F2 = @(x) 2./w(x) - 4*x.^2./w(x).^2 - 6*x.^2./w(x).^2 + 8*x.^4./w(x).^3; + d2F3 = @(x) -2./w(x) - 2*x.*(2-2*x)./w(x).^2 - (8*x-6*x.^2)./w(x).^2 + 8*x.^2.*(2*x-x.^2)./w(x).^3; + assert ([F1(u); F2(u); F3(u)], squeeze(ck(:, 1, :)), 1e2*eps); + assert ([dF1(u); dF2(u); dF3(u)], squeeze(ck(:, 2, :)), 1e2*eps); + assert ([d2F1(u); d2F2(u); d2F3(u)], squeeze(ck(:, 3, :)), 1e2*eps); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/crvkntremove.m] +>>>>> /build/octave-nurbs-1.3.13/inst/crvkntremove.m +***** test + crv = nrbdegelev (nrbline (), 3); + acrv = nrbkntins (crv, [.11 .11 .11]); + [rcrv, t] = crvkntremove (acrv, .11, 8, 3, 3, 1e-10); + assert (crv.knots, rcrv.knots, 1e-10); + assert (t, 3); +***** test + crv = nrbcirc (); + acrv = nrbkntins (crv, [.3 .3]); + [rcrv, t] = crvkntremove (acrv, .3, 7, 2, 2, 1e-10); + assert (crv.knots, rcrv.knots, 1e-10); + assert (t, 2); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/kntbrkdegmult.m] +>>>>> /build/octave-nurbs-1.3.13/inst/kntbrkdegmult.m +***** test + breaks = [0 1 2 3 4]; + degree = 3; + knots = kntbrkdegmult (breaks, degree); + assert (knots, [0 0 0 0 1 2 3 4 4 4 4]) +***** test + breaks = [0 1 2 3 4]; + degree = 3; + mult = 2; + knots = kntbrkdegmult (breaks, degree, mult); + assert (knots, [0 0 0 0 1 1 2 2 3 3 4 4 4 4]) +***** test + breaks = [0 1 2 3 4]; + degree = 3; + mult = [1 2 3]; + knots = kntbrkdegmult (breaks, degree, mult); + assert (knots, [0 0 0 0 1 2 2 3 3 3 4 4 4 4]) +***** test + breaks = {[0 1 2 3 4] [0 1 2 3]}; + degree = [3 2]; + mult = {[1 2 3] 2}; + knots = kntbrkdegmult (breaks, degree, mult); + assert (knots, {[0 0 0 0 1 2 2 3 3 3 4 4 4 4] [0 0 0 1 1 2 2 3 3 3]}) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/nrbeval_der_w.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbeval_der_w.m +***** test % 1D + nrb = nrbkntins (nrbcirc (1, [0 0], 0, pi/2), .5); + u = linspace (0, 1, 11); + delta_w = .01; + n = nrb.number; + der_ex = zeros (3, numel (u), n); + der_fd = zeros (3, numel (u), n); + for iw = 1:n + new_w1 = nrb.coefs (4, iw) + delta_w; + new_w2 = nrb.coefs (4, iw) - delta_w; + nrb1 = nrbmodw (nrb, new_w1, iw); + nrb2 = nrbmodw (nrb, new_w2, iw); + der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, u); + p2 = nrbeval (nrb2, u); + p1 = nrbeval (nrb1, u); + der_fd(:,:,iw) = -(p2 - p1) ./ (2*delta_w); + end + error = max (abs (der_ex(:) - der_fd(:))); + assert (error < 1.e-4) + +***** test %2D + crv = nrbline([1 0], [2 0]); + nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); + new_knots = linspace (1/9, 8/9, 8); + nrb = nrbkntins (nrb, {new_knots, new_knots}); + u = linspace (0, 1, 5); + v = u; + delta_w = .01; + n = nrb.number(1) * nrb.number(2); + der_ex = zeros (3, numel(u)* numel(v), n); + der_fd = zeros (3, numel(u)* numel(v), n); + for iw = 1:nrb.number + new_w1 = nrb.coefs (4, iw) + delta_w; + new_w2 = nrb.coefs (4, iw) - delta_w; + nrb1 = nrbmodw (nrb, new_w1, iw); + nrb2 = nrbmodw (nrb, new_w2, iw); + der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, {u v}); + p2 = nrbeval (nrb2, {u v}); + p1 = nrbeval (nrb1, {u v}); + der_fd(:,:,iw) = reshape (-(p2 - p1) ./ (2*delta_w), 3, []); + end + error = max (abs (der_ex(:) - der_fd(:))); + assert (error < 1.e-5) + +***** test % 3D + crv = nrbline([1 0], [2 0]); + nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); + nrb = nrbextrude (nrb, [0 0 1]); + u = 0:.33:.99; + v = 0:.1:.9; + w = [.25 .5 .75]; + delta_w = .01; + n = nrb.number(1) * nrb.number(2) * nrb.number(3); + der_ex = zeros (3, numel(u)*numel(v)*numel(w), n); + der_fd = zeros (3, numel(u)*numel(v)*numel(w), n); + for iw = 1:nrb.number + new_w1 = nrb.coefs (4, iw) + delta_w; + new_w2 = nrb.coefs (4, iw) - delta_w; + nrb1 = nrbmodw (nrb, new_w1, iw); + nrb2 = nrbmodw (nrb, new_w2, iw); + der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, {u v w}); + p2 = nrbeval (nrb2, {u v w}); + p1 = nrbeval (nrb1, {u v w}); + der_fd(:,:,iw) = reshape (-(p2 - p1) ./ (2*delta_w), 3, []); + end + error = max (max (squeeze (max (abs (der_ex - der_fd))))); + assert (error < 1.e-4) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/nrbtransp.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbtransp.m +***** demo + srf = nrb4surf([0 0 0], [1 0 1], [0 1 1], [1 1 2]); + nrbplot(srf,[20 5]); + title('Plane surface and its transposed (translated)') + hold on + srf.coefs(3,:,:) = srf.coefs(3,:,:) + 10; + srf = nrbtransp(srf); + nrbplot(srf,[20 5]); + hold off +***** test + srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); + srft = nrbtransp(srf); + assert (srf.number, fliplr(srft.number)); + assert (srf.order, fliplr(srft.order)); + assert (srf.knots, fliplr(srft.knots)); + assert (srf.coefs, permute(srft.coefs, [1 3 2])); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/aveknt.m] +>>>>> /build/octave-nurbs-1.3.13/inst/aveknt.m +***** test + knt = [0 0 0 0.5 1 1 1]; + pts = aveknt (knt, 3); + assert (pts - [0 1/4 3/4 1] < 1e-14) ***** test - knots{1} = [0 0 0 1 1 1]; - knots{2} = [0 0 0 0 1 1 1 1]; - knots{3} = [0 0 1 1]; - cx = [0 0 1]; nx = length(cx); - cy = [0 0 0 1]; ny = length(cy); - cz = [0 1]; nz = length(cz); - coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); - coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); - coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); - coefs(4,:,:,:) = 1; - nurbs = nrbmak(coefs, knots); - x = rand(5,1); y = rand(5,1); z = rand(5,1); - tt = [x y z]'; - points = nrbeval(nurbs,tt); - assert(points,[x.^2 y.^3 z]',1e-10); + knt = {[0 0 0 0.5 1 1 1] [0 0 0 0 1/3 2/3 1 1 1 1]}; + pts = aveknt (knt, [3 4]); + assert (pts{1} - [0 1/4 3/4 1] < 1e-14); + assert (pts{2} - [0 1/9 1/3 2/3 8/9 1] < 1e-14); ***** test - knots{1} = [0 0 0 1 1 1]; - knots{2} = [0 0 0 0 1 1 1 1]; - knots{3} = [0 0 1 1]; - cx = [0 0 1]; nx = length(cx); - cy = [0 0 0 1]; ny = length(cy); - cz = [0 1]; nz = length(cz); - coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); - coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); - coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); - coefs(4,:,:,:) = 1; - coefs = coefs([2 1 3 4],:,:,:); - nurbs = nrbmak(coefs, knots); - x = rand(5,1); y = rand(5,1); z = rand(5,1); - tt = [x y z]'; - points = nrbeval(nurbs,tt); - [y.^3 x.^2 z]'; - assert(points,[y.^3 x.^2 z]',1e-10); + nrb = nrb4surf([0 0], [1 0], [0 1], [1 1]); + nrb = nrbkntins (nrbdegelev (nrb, [1 2]), {[1/2] [1/3 2/3]}); + pts = aveknt (nrb); + assert (pts{1} - [0 1/4 3/4 1] < 1e-14); + assert (pts{2} - [0 1/9 1/3 2/3 8/9 1] < 1e-14); 3 tests, 3 passed, 0 known failure, 0 skipped +[inst/curvederiveval.m] +>>>>> /build/octave-nurbs-1.3.13/inst/curvederiveval.m +***** test + k = [0 0 0 1 1 1]; + coefs(:,1) = [0;0;0;1]; + coefs(:,2) = [1;0;1;1]; + coefs(:,3) = [1;1;1;1]; + crv = nrbmak (coefs, k); + ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(1,:,:)), 0.5, 2); + assert(ck, [0.75; 1; -2]); + ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(2,:,:)), 0.5, 2); + assert(ck, [0.25; 1; 2]); + ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(3,:,:)), 0.5, 2); + assert(ck, [0.75; 1; -2]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/nrbinverse.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbinverse.m +***** test + nrb = nrb4surf ([0 0], [1 0], [2 3], [5 4]); + p = nrbeval (nrb, {.25 .75}); + u = nrbinverse (nrb, p, 'Display', false); + assert (norm (u - [.25; .75]) < 1e-8); + +***** test + nrb = nrb4surf ([0 0], [1 0], [2 3], [5 4]); + nrb = nrbdegelev (nrbextrude (nrb, [0 2 1]), [3 3 3]); + p = nrbeval (nrb, {.25 .75 .05}); + u = nrbinverse (nrb, p, 'Display', false, 'TolX', 1e-12, 'TolFun', 1e-10); + assert (norm (u - [.25; .75; .05]) < 1e-8); + +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/kntbrkdegreg.m] +>>>>> /build/octave-nurbs-1.3.13/inst/kntbrkdegreg.m +***** test + breaks = [0 1 2 3 4]; + degree = 3; + knots = kntbrkdegreg (breaks, degree); + assert (knots, [0 0 0 0 1 2 3 4 4 4 4]) +***** test + breaks = [0 1 2 3 4]; + degree = 3; + reg = 1; + knots = kntbrkdegreg (breaks, degree, reg); + assert (knots, [0 0 0 0 1 1 2 2 3 3 4 4 4 4]) +***** test + breaks = [0 1 2 3 4]; + degree = 3; + reg = [0 1 2]; + knots = kntbrkdegreg (breaks, degree, reg); + assert (knots, [0 0 0 0 1 1 1 2 2 3 4 4 4 4]) +***** test + breaks = {[0 1 2 3 4] [0 1 2 3]}; + degree = [3 2]; + reg = {[0 1 2] 0}; + knots = kntbrkdegreg (breaks, degree, reg); + assert (knots, {[0 0 0 0 1 1 1 2 2 3 4 4 4 4] [0 0 0 1 1 2 2 3 3 3]}) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/surfderivcpts.m] +>>>>> /build/octave-nurbs-1.3.13/inst/surfderivcpts.m +***** test + coefs = cat(3,[0 0; 0 1],[1 1; 0 1]); + knots = {[0 0 1 1] [0 0 1 1]}; + plane = nrbmak(coefs,knots); + pkl = surfderivcpts (plane.number(1)-1, plane.order(1)-1,... + plane.knots{1}, plane.number(2)-1,... + plane.order(2)-1, plane.knots{2}, ... + squeeze (plane.coefs(1,:,:)), 1); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/numbasisfun.m] +>>>>> /build/octave-nurbs-1.3.13/inst/numbasisfun.m +***** test + n = 3; + U = [0 0 0 1/2 1 1 1]; + p = 2; + u = linspace (0, 1, 10); + s = findspan (n, p, u, U); + Bref = [0 0 0 0 0 1 1 1 1 1; ... + 1 1 1 1 1 2 2 2 2 2; ... + 2 2 2 2 2 3 3 3 3 3].'; + B = numbasisfun (s, u, p, U); + assert (B, Bref) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/nrbclamp.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbclamp.m +***** test + crv = nrbdegelev (nrbcirc (1, [], 0, pi/2), 2); + crv = nrbunclamp (crv, 3); + xx = linspace (0, 1, 20); + crv1 = nrbclamp (crv); + assert (crv1.knots, [0 0 0 0 0 1 1 1 1 1]) + assert (nrbeval(crv, xx), nrbeval(crv1, xx), 1e-14) + crv1 = nrbclamp (crv, 2); + assert (crv1.knots, [-3 -2 -1 0 0 1 1 2 3 4]) + assert (nrbeval(crv, xx), nrbeval(crv1, xx), 1e-14) +***** test + crv1 = nrbcirc(1,[],0,pi/4); + crv2 = nrbcirc(2,[],0,pi/4); + srf = nrbkntins (nrbdegelev (nrbruled(crv1, crv2), [3 2]), {0.25 []}); + srf = nrbunclamp (srf, [4 2]); + srf1 = nrbclamp (srf); + xx = linspace(0,1,20); + assert(srf1.knots, {[0 0 0 0 0 0 0.2500 1 1 1 1 1 1] [0 0 0 0 1 1 1 1]}) + assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); + srf1 = nrbclamp (srf, [3 1]); + assert (srf1.knots, {[-2 -1.75 -1 -0.75 0 0 0.25 1 1 1.25 2 2.25 3], [-2 -1 0 0 1 1 2 3]}) + assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); + srf1 = nrbclamp (srf, [], 2); + assert(srf1.knots, {[-2.75 -2 -1.75 -1 -0.75 0 0.25 1 1.25 2 2.25 3 3.25] [0 0 0 0 1 1 1 1]}) + assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/basisfun.m] +>>>>> /build/octave-nurbs-1.3.13/inst/basisfun.m +***** test + n = 3; + U = [0 0 0 1/2 1 1 1]; + p = 2; + u = linspace (0, 1, 10); + s = findspan (n, p, u, U); + Bref = [1.00000 0.00000 0.00000 + 0.60494 0.37037 0.02469 + 0.30864 0.59259 0.09877 + 0.11111 0.66667 0.22222 + 0.01235 0.59259 0.39506 + 0.39506 0.59259 0.01235 + 0.22222 0.66667 0.11111 + 0.09877 0.59259 0.30864 + 0.02469 0.37037 0.60494 + 0.00000 0.00000 1.00000]; + B = basisfun (s, u, p, U); + assert (B, Bref, 1e-5); +1 test, 1 passed, 0 known failure, 0 skipped [inst/nrbpermute.m] >>>>> /build/octave-nurbs-1.3.13/inst/nrbpermute.m ***** demo @@ -2273,63 +2611,196 @@ assert ({vol.knots{perm2}}, vol3.knots) assert (permute(vol.coefs, [1, perm2+1]), vol3.coefs) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/nrbeval_der_p.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbeval_der_p.m -***** test %% 1D - nrb = nrbkntins (nrbcirc (1, [0 0], 0, pi/2), .5); - u = 0:.1:.9; - index = 1:nrb.number; - e = zeros (numel (u), numel (index), 1); - for jj = 1:numel (index) - deltap = .1 * rand (3, 1); - nrb2 = nrbmodp (nrb, deltap, index(jj)); - der_ex = nrbeval_der_p (nrb, index(jj), u); - p2 = nrbeval (nrb2, u); - p1 = nrbeval (nrb, u); - der_fd = (p2 - p1) ./ deltap; - e(:,jj) = sqrt (sum ((repmat (der_ex, 3, 1) - der_fd).^2, 1)); - end - assert (max(e(:)) < 1.e-8); - -***** test %% 2D - crv = nrbline([1 0], [2 0]); - nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); - new_knots = linspace (1/9, 8/9, 8); - nrb = nrbkntins (nrb, {new_knots, new_knots}); - u = 0:.1:.9; - v = u; - e = zeros (nrb.number(1) * nrb.number(2), numel (u), numel (v)); - for index = 1:nrb.number(1) * nrb.number(2) - deltap = .1 * rand (3, 1); - nrb2 = nrbmodp (nrb, deltap, index); - der_ex = nrbeval_der_p (nrb, index, {u v}); - p2 = nrbeval (nrb2, {u v}); - p1 = nrbeval (nrb, {u v}); - der_fd = (p2 - p1) ./ deltap; - der_ex = reshape (repmat (der_ex, 3, 1), size(der_fd)); - e(index,:,:) = sqrt (sum ((der_ex - der_fd).^2, 1)); - end - assert (max(e(:)) < 1.e-8) - -***** test %% 3D - crv = nrbline([1 0], [2 0]); - nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); - nrb = nrbextrude (nrb, [0 0 1]); - u = 0:.1:.9; - v = u; - w = u; - e = zeros (nrb.number(1) * nrb.number(2) * nrb.number(3), numel(u), numel(v), numel(w)); - for index = 1:nrb.number(1) * nrb.number(2) * nrb.number(3) - deltap = .1 * rand (3, 1); - nrb2 = nrbmodp (nrb, deltap, index); - der_ex = nrbeval_der_p (nrb, index, {u v w}); - p2 = nrbeval (nrb2, {u v w}); - p1 = nrbeval (nrb, {u v w}); - der_fd = (p2 - p1) ./ deltap; - der_ex = reshape (repmat (der_ex, 3, 1), size (der_fd)); - e(index,:,:,:) = sqrt (sum ((der_ex - der_fd).^2, 1)); - end - assert (max (e(:)) < 1.e-8); +[inst/nrbreverse.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbreverse.m +***** demo + pnts = [0.5 1.5 3.0 7.5 8.5; + 3.0 5.5 1.5 4.0 4.5; + 0.0 0.0 0.0 0.0 0.0]; + crv1 = nrbmak(pnts,[0 0 0 1/2 3/4 1 1 1]); + crv2 = nrbreverse(crv1); + fprintf('Knots of the original curve\n') + disp(crv1.knots) + fprintf('Knots of the reversed curve\n') + disp(crv2.knots) + fprintf('Control points of the original curve\n') + disp(crv1.coefs(1:2,:)) + fprintf('Control points of the reversed curve\n') + disp(crv2.coefs(1:2,:)) + nrbplot(crv1,100) + hold on + nrbplot(crv2,100) + title('The curve and its reverse are the same') + hold off +***** test + srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); + srf = nrbkntins (srf, {0.3, 0.6}); + srf2 = nrbreverse (srf); + assert (srf.knots, cellfun(@(x) sort(1-x), srf2.knots, 'UniformOutput', false), 1e-15) + assert (srf.coefs, srf2.coefs(:,end:-1:1,end:-1:1)) +***** test + srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); + srf = nrbkntins (srf, {0.3, 0.6}); + srf2 = nrbreverse (srf, 1); + knt{1} = sort(1-srf2.knots{1}); knt{2} = srf2.knots{2}; + assert (srf.knots, knt, 1e-15) + assert (srf.coefs, srf2.coefs(:,end:-1:1,:)) + srf2 = nrbreverse (srf, 2); + knt{1} = srf2.knots{1}; knt{2} = sort(1-srf2.knots{2}); + assert (srf.knots, knt, 1e-15) + assert (srf.coefs, srf2.coefs(:,:,end:-1:1)) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/nrbnumbasisfun.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbnumbasisfun.m +***** test + p = 2; q = 3; m = 4; n = 5; + Lx = 1; Ly = 1; + nrb = nrb4surf ([0 0], [1 0], [0 1], [1 1]); + nrb = nrbdegelev (nrb, [p-1, q-1]); + ikx = linspace(0,1,m); iky = linspace(0,1,n); + nrb = nrbkntins (nrb, {ikx(2:end-1), iky(2:end-1)}); + nrb.coefs (4,:,:) = nrb.coefs (4,:,:) + rand (size (nrb.coefs (4,:,:))); + u = rand (1, 30); v = rand (1, 10); + u = (u-min (u))/max (u-min (u)); + v = (v-min (v))/max (v-min (v)); + N = nrbnumbasisfun ({u, v}, nrb); + assert (all (all (N>0)), true) + assert (all (all (N <= prod (nrb.number))), true) + assert (max (max (N)), prod (nrb.number)) + assert (min (min (N)), 1) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/tbasisfun.m] +>>>>> /build/octave-nurbs-1.3.13/inst/tbasisfun.m +***** demo + U = {[0 0 1/2 1 1], [0 0 0 1 1]}; + p = [3, 3]; + [X, Y] = meshgrid (linspace(0, 1, 30)); + u = [X(:), Y(:)]'; + N = tbasisfun (u, p, U); + surf (X, Y, reshape (N, size(X))) + title('Basis function associated to a local knot vector') + hold off +***** test + U = [0 1/2 1]; + p = 1; + u = [0.3 0.4 0.6 0.7]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.6 0.8 0.8 0.6], 1e-12); + assert (Nder, [2 2 -2 -2], 1e-12); +***** test + U = {[0 1/2 1] [0 1/2 1]}; + p = [1 1]; + u = [0.3 0.4 0.6 0.7; 0.3 0.4 0.6 0.7]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.36 0.64 0.64 0.36], 1e-12); + assert (Nder, [1.2 1.6 -1.6 -1.2; 1.2 1.6 -1.6 -1.2], 1e-12); +***** test + U = {[0 1/2 1] [0 1/2 1] [0 1/2 1]}; + p = [1 1 1]; + u = [0.4 0.4 0.6 0.6; 0.4 0.4 0.6 0.6; 0.4 0.6 0.4 0.6]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.512 0.512 0.512 0.512], 1e-12); + assert (Nder, [1.28 1.28 -1.28 -1.28; 1.28 1.28 -1.28 -1.28; 1.28 -1.28 1.28 -1.28], 1e-12); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/surfderiveval.m] +>>>>> /build/octave-nurbs-1.3.13/inst/surfderiveval.m +***** shared srf +***** test + k = [0 0 0 1 1 1]; + c = [0 1/2 1]; + [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); + srf = nrbmak (coef, {k, k}); + skl = surfderiveval (srf.number(1)-1, ... + srf.order(1)-1, ... + srf.knots{1}, ... + srf.number(2)-1, ... + srf.order(2)-1, ... + srf.knots{2},... + squeeze(srf.coefs(1,:,:)), .5, .5, 1) ; + assert (skl, [.5 0; 1 0]) +***** test + srf = nrbkntins (srf, {[], rand(1,2)}); + skl = surfderiveval (srf.number(1)-1,... + srf.order(1)-1, ... + srf.knots{1},... + srf.number(2)-1,... + srf.order(2)-1, ... + srf.knots{2},... + squeeze(srf.coefs(1,:,:)), .5, .5, 1) ; + assert (skl, [.5 0; 1 0], 100*eps) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/kntrefine.m] +>>>>> /build/octave-nurbs-1.3.13/inst/kntrefine.m +***** shared nrbs +***** test + knots = {[0 0 1 1] [0 0 0 1 1 1]}; + coefs(1,:,:) = [1 sqrt(2)/2 0; 2 sqrt(2) 0]; + coefs(2,:,:) = [0 sqrt(2)/2 1; 0 sqrt(2) 2]; + coefs(4,:,:) = [1 sqrt(2)/2 1; 1 sqrt(2)/2 1]; + nrbs = nrbmak (coefs, knots); + nrbs = nrbkntins (nrbs, {[] [0.5 0.6 0.6]}); + nrbs = nrbdegelev (nrbs, [0 1]); + nrbs = nrbkntins (nrbs, {[] [0.4]}); + rknots = kntrefine (nrbs.knots, [1 1], [1 1], [0 0]); + assert (rknots{1} == [0 0 0.5 1 1]); + assert (rknots{2} == [0 0 0.2 0.4 0.45 0.5 0.55 0.6 0.8 1 1]); + +***** test + rknots = kntrefine (nrbs.knots, [1 1], [3 3], [0 0]); + assert (rknots{1}, [0 0 0 0 0.5 0.5 0.5 1 1 1 1]); + assert (rknots{2}, [0 0 0 0 0.2 0.2 0.2 0.4 0.4 0.4 0.45 0.45 0.45 0.5 0.5 0.5 0.55 0.55 0.55 0.6 0.6 0.6 0.8 0.8 0.8 1 1 1 1]); + +***** test + rknots = kntrefine (nrbs.knots, [1 1], [3 3], [2 2]); + assert (rknots{1}, [0 0 0 0 0.5 1 1 1 1]); + assert (rknots{2}, [0 0 0 0 0.2 0.4 0.45 0.5 0.5 0.55 0.6 0.6 0.6 0.8 1 1 1 1]); + +***** test + rknots = kntrefine (nrbs.knots, [1 1], [4 4], [0 0]); + assert (rknots{1}, [0 0 0 0 0 0.5 0.5 0.5 0.5 1 1 1 1 1]); + assert (rknots{2}, [0 0 0 0 0 0.2 0.2 0.2 0.2 0.4 0.4 0.4 0.4 0.45 0.45 0.45 0.45 0.5 0.5 0.5 0.5 0.55 0.55 0.55 0.55 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8 1 1 1 1 1]); + +***** test + rknots = kntrefine (nrbs.knots, [1 1], [4 4], [3 3]); + assert (rknots{1}, [0 0 0 0 0 0.5 1 1 1 1 1]); + assert (rknots{2}, [0 0 0 0 0 0.2 0.4 0.4 0.45 0.5 0.5 0.5 0.55 0.6 0.6 0.6 0.6 0.8 1 1 1 1 1]); + +***** test + knots = [0 0 0 0 0.4 0.5 0.5 0.6 0.6 0.6 1 1 1 1]; + rknots = kntrefine (knots, 1, 4, 3); + assert (rknots, [0 0 0 0 0 0.2 0.4 0.4 0.45 0.5 0.5 0.5 0.55 0.6 0.6 0.6 0.6 0.8 1 1 1 1 1]); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/curvederivcpts.m] +>>>>> /build/octave-nurbs-1.3.13/inst/curvederivcpts.m +***** test + line = nrbmak([0.0 1.5; 0.0 3.0],[0.0 0.0 1.0 1.0]); + pk = curvederivcpts (line.number-1, line.order-1, line.knots,... + line.coefs(1,:), 2); + assert (pk, [0 3/2; 3/2 0], 100*eps); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/nrbmeasure.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbmeasure.m +***** test + c = nrbcirc (1, [0 0], 0, pi/3); + l = nrbmeasure(c, 0, 1, 1e-7); + assert (l, pi/3, 1e-7) +***** test + c = nrbcirc (1, [0 0], 0, pi/2); + s = zeros (1, 100); e = linspace (0, 1, 100); + for ii = 1:100 + l(ii) = nrbmeasure (c, s(ii), e(ii), 1e-7); + endfor + xx = nrbeval (c, e); + theta = atan2 (xx(2,:), xx(1,:)); + assert (l, theta, 1e-7) +***** test + c = nrbcirc (1, [0 0], 0, pi/2); + s = 0; e = linspace (0, 1, 100); + for ii = 1:100 + l(ii) = nrbmeasure (c, s, e(ii), 1e-7); + endfor + l2 = nrbmeasure (c, s, e, 1e-7); + assert (l, l2, eps) 3 tests, 3 passed, 0 known failure, 0 skipped [inst/nrbbasisfun.m] >>>>> /build/octave-nurbs-1.3.13/inst/nrbbasisfun.m @@ -2420,330 +2891,6 @@ assert (max (max (N)) == prod (nrb.number)) assert (min (min (N))== 1) 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/nrbsquare.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbsquare.m -***** test - srf = nrbsquare ([], 1, 2, 2, 4); - assert (srf.order, [3 3]); - knt = [0 0 0 1/4 1/2 3/4 1 1 1]; - assert (srf.knots, {knt knt}) - x = linspace (0, 1, 100); - [X,Y] = ndgrid (x, x); - vals = nrbeval (srf, {x x}); - assert (squeeze(vals(1,:,:)), X, 1e-15); - assert (squeeze(vals(2,:,:)), 2*Y, 1e-15); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/crvkntremove.m] ->>>>> /build/octave-nurbs-1.3.13/inst/crvkntremove.m -***** test - crv = nrbdegelev (nrbline (), 3); - acrv = nrbkntins (crv, [.11 .11 .11]); - [rcrv, t] = crvkntremove (acrv, .11, 8, 3, 3, 1e-10); - assert (crv.knots, rcrv.knots, 1e-10); - assert (t, 3); -***** test - crv = nrbcirc (); - acrv = nrbkntins (crv, [.3 .3]); - [rcrv, t] = crvkntremove (acrv, .3, 7, 2, 2, 1e-10); - assert (crv.knots, rcrv.knots, 1e-10); - assert (t, 2); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/nrbcrvderiveval.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbcrvderiveval.m -***** test - knots = [0 0 0 1 1 1]; - coefs(:,1) = [0; 0; 0; 1]; - coefs(:,2) = [1; 0; 1; 1]; - coefs(:,3) = [1; 1; 1; 2]; - crv = nrbmak (coefs, knots); - u = linspace (0, 1, 100); - ck = nrbcrvderiveval (crv, u, 2); - w = @(x) 1 + x.^2; - dw = @(x) 2*x; - F1 = @(x) (2*x - x.^2)./w(x); - F2 = @(x) x.^2./w(x); - F3 = @(x) (2*x - x.^2)./w(x); - dF1 = @(x) (2 - 2*x)./w(x) - 2*(2*x - x.^2).*x./w(x).^2; - dF2 = @(x) 2*x./w(x) - 2*x.^3./w(x).^2; - dF3 = @(x) (2 - 2*x)./w(x) - 2*(2*x - x.^2).*x./w(x).^2; - d2F1 = @(x) -2./w(x) - 2*x.*(2-2*x)./w(x).^2 - (8*x-6*x.^2)./w(x).^2 + 8*x.^2.*(2*x-x.^2)./w(x).^3; - d2F2 = @(x) 2./w(x) - 4*x.^2./w(x).^2 - 6*x.^2./w(x).^2 + 8*x.^4./w(x).^3; - d2F3 = @(x) -2./w(x) - 2*x.*(2-2*x)./w(x).^2 - (8*x-6*x.^2)./w(x).^2 + 8*x.^2.*(2*x-x.^2)./w(x).^3; - assert ([F1(u); F2(u); F3(u)], squeeze(ck(:, 1, :)), 1e2*eps); - assert ([dF1(u); dF2(u); dF3(u)], squeeze(ck(:, 2, :)), 1e2*eps); - assert ([d2F1(u); d2F2(u); d2F3(u)], squeeze(ck(:, 3, :)), 1e2*eps); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/kntbrkdegreg.m] ->>>>> /build/octave-nurbs-1.3.13/inst/kntbrkdegreg.m -***** test - breaks = [0 1 2 3 4]; - degree = 3; - knots = kntbrkdegreg (breaks, degree); - assert (knots, [0 0 0 0 1 2 3 4 4 4 4]) -***** test - breaks = [0 1 2 3 4]; - degree = 3; - reg = 1; - knots = kntbrkdegreg (breaks, degree, reg); - assert (knots, [0 0 0 0 1 1 2 2 3 3 4 4 4 4]) -***** test - breaks = [0 1 2 3 4]; - degree = 3; - reg = [0 1 2]; - knots = kntbrkdegreg (breaks, degree, reg); - assert (knots, [0 0 0 0 1 1 1 2 2 3 4 4 4 4]) -***** test - breaks = {[0 1 2 3 4] [0 1 2 3]}; - degree = [3 2]; - reg = {[0 1 2] 0}; - knots = kntbrkdegreg (breaks, degree, reg); - assert (knots, {[0 0 0 0 1 1 1 2 2 3 4 4 4 4] [0 0 0 1 1 2 2 3 3 3]}) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/nrbsurfderiveval.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbsurfderiveval.m -***** test - k = [0 0 1 1]; - c = [0 1]; - [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); - coef(3,:,:) = coef(1,:,:); - srf = nrbmak (coef, {k, k}); - [u, v] = meshgrid (linspace(0,1,11)); - uv = [u(:)';v(:)']; - skl = nrbsurfderiveval (srf, uv, 0); - aux = nrbeval(srf,uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** test - k = [0 0 1 1]; - c = [0 1]; - [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); - coef(3,:,:) = coef(1,:,:); - srf = nrbmak (coef, {k, k}); - srf = nrbkntins (srf, {[], rand(2,1)}); - [u, v] = meshgrid (linspace(0,1,11)); - uv = [u(:)';v(:)']; - skl = nrbsurfderiveval (srf, uv, 0); - aux = nrbeval(srf,uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** shared srf, uv -***** test - k = [0 0 0 1 1 1]; - c = [0 1/2 1]; - [coef(1,:,:), coef(2,:,:)] = meshgrid (c, c); - coef(3,:,:) = coef(1,:,:); - srf = nrbmak (coef, {k, k}); - ders= nrbderiv (srf); - [u, v] = meshgrid (linspace(0,1,11)); - uv = [u(:)';v(:)']; - skl = nrbsurfderiveval (srf, uv, 1); - [fun, der] = nrbdeval (srf, ders, uv); - assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) - -***** test - srf = nrbdegelev (srf, [3, 1]); - ders= nrbderiv (srf); - [fun, der] = nrbdeval (srf, ders, uv); - skl = nrbsurfderiveval (srf, uv, 1); - assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) -***** shared uv -***** test - k = [0 0 0 1 1 1]; - c = [0 1/2 1]; - [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); - coef(3,:,:) = coef(1,:,:); - srf = nrbmak (coef, {k, k}); - ders= nrbderiv (srf); - [u, v] = meshgrid (linspace(0,1,11)); - uv = [u(:)';v(:)']; - skl = nrbsurfderiveval (srf, uv, 1); - [fun, der] = nrbdeval (srf, ders, uv); - assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) - -***** test - p = 3; q = 3; - mcp = 5; ncp = 5; - Lx = 10*rand(1); Ly = Lx; - srf = nrbdegelev (nrb4surf ([0 0], [Lx, 0], [0 Ly], [Lx Ly]), [p-1, q-1]); - %%srf = nrbkntins (srf, {linspace(0,1,mcp-p+2)(2:end-1), linspace(0,1,ncp-q+2)(2:end-1)}); - %%srf.coefs = permute (srf.coefs, [1 3 2]); - ders= nrbderiv (srf); - [fun, der] = nrbdeval (srf, ders, uv); - skl = nrbsurfderiveval (srf, uv, 1); - assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) - assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) -***** shared srf, uv, P, dPdx, d2Pdx2, c1, c2 -***** test - [u, v] = meshgrid (linspace(0,1,10)); - uv = [u(:)';v(:)']; - c1 = nrbmak([0 1/2 1; 0 1 0],[0 0 0 1 1 1]); - c1 = nrbtform (c1, vecrotx (pi/2)); - c2 = nrbtform(c1, vectrans([0 1 0])); - srf = nrbdegelev (nrbruled (c1, c2), [3, 1]); - skl = nrbsurfderiveval (srf, uv, 2); - P = squeeze(skl(:,1,1,:)); - dPdx = squeeze(skl(:,2,1,:)); - d2Pdx2 = squeeze(skl(:,3,1,:)); -***** assert(P(3,:), 2*(P(1,:)-P(1,:).^2),100*eps) -***** assert(dPdx(3,:), 2-4*P(1,:), 100*eps) -***** assert(d2Pdx2(3,:), -4+0*P(1,:), 100*eps) - srf = nrbdegelev (nrbruled (c1, c2), [5, 6]); - skl = nrbsurfderiveval (srf, uv, 2); - P = squeeze(skl(:,1,1,:)); - dPdx = squeeze(skl(:,2,1,:)); - d2Pdx2 = squeeze(skl(:,3,1,:)); - aux = nrbeval(srf,uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** assert(P(3,:), 2*(P(1,:)-P(1,:).^2),100*eps) -***** assert(dPdx(3,:), 2-4*P(1,:), 100*eps) -***** assert(d2Pdx2(3,:), -4+0*P(1,:), 100*eps) - -***** test - skl = nrbsurfderiveval (srf, uv, 0); - aux = nrbeval (srf, uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** shared dPdu, d2Pdu2, P, srf, uv -***** test - [u, v] = meshgrid (linspace(0,1,10)); - uv = [u(:)';v(:)']; - c1 = nrbmak([0 1/2 1; 0.1 1.6 1.1; 0 0 0],[0 0 0 1 1 1]); - c2 = nrbmak([0 1/2 1; 0.1 1.6 1.1; 1 1 1],[0 0 0 1 1 1]); - srf = nrbdegelev (nrbruled (c1, c2), [0, 1]); - skl = nrbsurfderiveval (srf, uv, 2); - P = squeeze(skl(:,1,1,:)); - dPdu = squeeze(skl(:,2,1,:)); - dPdv = squeeze(skl(:,1,2,:)); - d2Pdu2 = squeeze(skl(:,3,1,:)); - aux = nrbeval(srf,uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** assert(dPdu(2,:), 3-4*P(1,:),100*eps) -***** assert(d2Pdu2(2,:), -4+0*P(1,:),100*eps) - -***** test - skl = nrbsurfderiveval (srf, uv, 0); - aux = nrbeval(srf,uv); - assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) -***** test - srf = nrb4surf([0 0], [1 0], [0 1], [1 1]); - geo = nrbdegelev (srf, [3 3]); - geo = nrbkntins (geo, {[.1:.1:.9], [.2:.2:.8]}); - [u, v] = meshgrid (linspace(0,1,10)); - uv = [u(:)';v(:)']; - skl = nrbsurfderiveval (geo, uv, 2); - dgeo = nrbderiv (geo); - [pnts, ders] = nrbdeval (geo, dgeo, uv); - assert (ders{1}, squeeze(skl(:,2,1,:)), 1e-9) - assert (ders{2}, squeeze(skl(:,1,2,:)), 1e-9) -***** test - crv = nrbline ([1 0], [2 0]); - srf = nrbrevolve (crv, [0 0 0], [0 0 1], pi/2); - srf = nrbtransp (srf); - [v, u] = meshgrid (linspace (0, 1, 11)); - uv = [u(:)'; v(:)']; - skl = nrbsurfderiveval (srf, uv, 2); - c = sqrt(2); - w = @(x, y) (2 - c)*y.^2 + (c-2)*y + 1; - dwdy = @(x, y) 2*(2-c)*y + c - 2; - d2wdy2 = @(x, y) 2*(2-c); - F1 = @(x, y) (x+1) .* ((1-y).^2 + c*y.*(1-y)) ./ w(x,y); - F2 = @(x, y) (x+1) .* (y.^2 + c*y.*(1-y)) ./ w(x,y); - dF1dx = @(x, y) ((1-y).^2 + c*y.*(1-y)) ./ w(x,y); - dF2dx = @(x, y) (y.^2 + c*y.*(1-y)) ./ w(x,y); - dF1dy = @(x, y) (x+1) .* ((2 - 2*c)*y + c - 2) ./ w(x,y) - (x+1) .* ((1-y).^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; - dF2dy = @(x, y) (x+1) .* ((2 - 2*c)*y + c) ./ w(x,y) - (x+1) .* (y.^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; - d2F1dx2 = @(x, y) zeros (size (x)); - d2F2dx2 = @(x, y) zeros (size (x)); - d2F1dxdy = @(x, y) ((2 - 2*c)*y + c - 2) ./ w(x,y) - ((1-y).^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; - d2F2dxdy = @(x, y) ((2 - 2*c)*y + c) ./ w(x,y) - (y.^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; - d2F1dy2 = @(x, y) (x+1)*(2 - 2*c) ./ w(x,y) - 2*(x+1) .* ((2 - 2*c)*y + c - 2) .* dwdy(x,y) ./ w(x,y).^2 - ... - (x+1) .* ((1-y).^2 + c*y.*(1-y)) * d2wdy2(x,y) ./ w(x,y).^2 + ... - 2 * (x+1) .* ((1-y).^2 + c*y.*(1-y)) .* w(x,y) .*dwdy(x,y).^2 ./ w(x,y).^4; - d2F2dy2 = @(x, y) (x+1)*(2 - 2*c) ./ w(x,y) - 2*(x+1) .* ((2 - 2*c)*y + c) .* dwdy(x,y) ./ w(x,y).^2 - ... - (x+1) .* (y.^2 + c*y.*(1-y)) * d2wdy2(x,y) ./ w(x,y).^2 + ... - 2 * (x+1) .* (y.^2 + c*y.*(1-y)) .* w(x,y) .*dwdy(x,y).^2 ./ w(x,y).^4; - assert ([F1(u(:),v(:)), F2(u(:),v(:))], squeeze(skl(1:2,1,1,:))', 1e2*eps); - assert ([dF1dx(u(:),v(:)), dF2dx(u(:),v(:))], squeeze(skl(1:2,2,1,:))', 1e2*eps); - assert ([dF1dy(u(:),v(:)), dF2dy(u(:),v(:))], squeeze(skl(1:2,1,2,:))', 1e2*eps); - assert ([d2F1dx2(u(:),v(:)), d2F2dx2(u(:),v(:))], squeeze(skl(1:2,3,1,:))', 1e2*eps); - assert ([d2F1dxdy(u(:),v(:)), d2F2dxdy(u(:),v(:))], squeeze(skl(1:2,2,2,:))', 1e2*eps); - assert ([d2F1dy2(u(:),v(:)), d2F2dy2(u(:),v(:))], squeeze(skl(1:2,1,3,:))', 1e2*eps); -***** test - knots = {[0 0 1 1] [0 0 1 1]}; - coefs(:,1,1) = [0;0;0;1]; - coefs(:,2,1) = [1;0;0;1]; - coefs(:,1,2) = [0;1;0;1]; - coefs(:,2,2) = [1;1;1;2]; - srf = nrbmak (coefs, knots); - [v, u] = meshgrid (linspace (0, 1, 3)); - uv = [u(:)'; v(:)']; - skl = nrbsurfderiveval (srf, uv, 2); - w = @(x, y) x.*y + 1; - F1 = @(x, y) x ./ w(x,y); - F2 = @(x, y) y ./ w(x,y); - F3 = @(x, y) x .* y ./ w(x,y); - dF1dx = @(x, y) 1./w(x,y) - x.*y./w(x,y).^2; - dF1dy = @(x, y) - x.^2./w(x,y).^2; - dF2dx = @(x, y) - y.^2./w(x,y).^2; - dF2dy = @(x, y) 1./w(x,y) - x.*y./w(x,y).^2; - dF3dx = @(x, y) y./w(x,y) - x.*(y./w(x,y)).^2; - dF3dy = @(x, y) x./w(x,y) - y.*(x./w(x,y)).^2; - d2F1dx2 = @(x, y) -2*y./w(x,y).^2 + 2*x.*y.^2./w(x,y).^3; - d2F1dy2 = @(x, y) 2*x.^3./w(x,y).^3; - d2F1dxdy = @(x, y) -x./w(x,y).^2 - x./w(x,y).^2 + 2*x.^2.*y./w(x,y).^3; - d2F2dx2 = @(x, y) 2*y.^3./w(x,y).^3; - d2F2dy2 = @(x, y) -2*x./w(x,y).^2 + 2*y.*x.^2./w(x,y).^3; - d2F2dxdy = @(x, y) -y./w(x,y).^2 - y./w(x,y).^2 + 2*y.^2.*x./w(x,y).^3; - d2F3dx2 = @(x, y) -2*y.^2./w(x,y).^2 + 2*x.*y.^3./w(x,y).^3; - d2F3dy2 = @(x, y) -2*x.^2./w(x,y).^2 + 2*y.*x.^3./w(x,y).^3; - d2F3dxdy = @(x, y) 1./w(x,y) - 3*x.*y./w(x,y).^2 + 2*(x.*y).^2./w(x,y).^3; - assert ([F1(u(:),v(:)), F2(u(:),v(:)), F3(u(:),v(:))], squeeze(skl(1:3,1,1,:))', 1e2*eps); - assert ([dF1dx(u(:),v(:)), dF2dx(u(:),v(:)), dF3dx(u(:),v(:))], squeeze(skl(1:3,2,1,:))', 1e2*eps); - assert ([dF1dy(u(:),v(:)), dF2dy(u(:),v(:)), dF3dy(u(:),v(:))], squeeze(skl(1:3,1,2,:))', 1e2*eps); - assert ([d2F1dx2(u(:),v(:)), d2F2dx2(u(:),v(:)), d2F3dx2(u(:),v(:))], squeeze(skl(1:3,3,1,:))', 1e2*eps); - assert ([d2F1dy2(u(:),v(:)), d2F2dy2(u(:),v(:)), d2F3dy2(u(:),v(:))], squeeze(skl(1:3,1,3,:))', 1e2*eps); - assert ([d2F1dxdy(u(:),v(:)), d2F2dxdy(u(:),v(:)), d2F3dxdy(u(:),v(:))], squeeze(skl(1:3,2,2,:))', 1e2*eps); -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/nrbinverse.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbinverse.m -***** test - nrb = nrb4surf ([0 0], [1 0], [2 3], [5 4]); - p = nrbeval (nrb, {.25 .75}); - u = nrbinverse (nrb, p, 'Display', false); - assert (norm (u - [.25; .75]) < 1e-8); - -***** test - nrb = nrb4surf ([0 0], [1 0], [2 3], [5 4]); - nrb = nrbdegelev (nrbextrude (nrb, [0 2 1]), [3 3 3]); - p = nrbeval (nrb, {.25 .75 .05}); - u = nrbinverse (nrb, p, 'Display', false, 'TolX', 1e-12, 'TolFun', 1e-10); - assert (norm (u - [.25; .75; .05]) < 1e-8); - -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/aveknt.m] ->>>>> /build/octave-nurbs-1.3.13/inst/aveknt.m -***** test - knt = [0 0 0 0.5 1 1 1]; - pts = aveknt (knt, 3); - assert (pts - [0 1/4 3/4 1] < 1e-14) - -***** test - knt = {[0 0 0 0.5 1 1 1] [0 0 0 0 1/3 2/3 1 1 1 1]}; - pts = aveknt (knt, [3 4]); - assert (pts{1} - [0 1/4 3/4 1] < 1e-14); - assert (pts{2} - [0 1/9 1/3 2/3 8/9 1] < 1e-14); - -***** test - nrb = nrb4surf([0 0], [1 0], [0 1], [1 1]); - nrb = nrbkntins (nrbdegelev (nrb, [1 2]), {[1/2] [1/3 2/3]}); - pts = aveknt (nrb); - assert (pts{1} - [0 1/4 3/4 1] < 1e-14); - assert (pts{2} - [0 1/9 1/3 2/3 8/9 1] < 1e-14); -3 tests, 3 passed, 0 known failure, 0 skipped [inst/nrbderiv.m] >>>>> /build/octave-nurbs-1.3.13/inst/nrbderiv.m ***** demo @@ -3021,6 +3168,277 @@ d2Fdww(2,:,:,:) = (40.*x.*y.^2.*(x - 1).*(y - 1).*(4.*x.^2.*y.^2 - 4.*x.^2.*y - 4.*x.*y.^2 + 4.*x.*y + 5) + 40.*x.*y.^2.*z.^2.*(x - 1).*(y - 1).*(12.*x.^2.*y.^2 - 12.*x.^2.*y - 12.*x.*y.^2 + 12.*x.*y) - 40.*x.*y.^2.*z.*(x - 1).*(y - 1).*(12.*x.^2.*y.^2 - 12.*x.^2.*y - 12.*x.*y.^2 + 12.*x.*y))./(- 4.*x.^2.*y.^2.*z.^2 + 4.*x.^2.*y.^2.*z + 4.*x.^2.*y.*z.^2 - 4.*x.^2.*y.*z + 4.*x.*y.^2.*z.^2 - 4.*x.*y.^2.*z - 4.*x.*y.*z.^2 + 4.*x.*y.*z + 5).^3; d2Fdww(3,:,:,:) = (40.*x.*y.*(x - 1).*(y - 1).*(4.*x.^2.*y.^2.*z.^3 - 4.*x.^2.*y.*z.^3 - 4.*x.*y.^2.*z.^3 + 4.*x.*y.*z.^3 + 15.*z - 5))./(- 4.*x.^2.*y.^2.*z.^2 + 4.*x.^2.*y.^2.*z + 4.*x.^2.*y.*z.^2 - 4.*x.^2.*y.*z + 4.*x.*y.^2.*z.^2 - 4.*x.*y.^2.*z - 4.*x.*y.*z.^2 + 4.*x.*y.*z + 5).^3; 4 tests, 4 passed, 0 known failure, 0 skipped +[inst/nrbeval.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbeval.m +***** demo + srf = nrbtestsrf; + p = nrbeval(srf,{linspace(0.0,1.0,20) linspace(0.0,1.0,20)}); + h = surf(squeeze(p(1,:,:)),squeeze(p(2,:,:)),squeeze(p(3,:,:))); + title('Test surface.'); + hold off +***** test + knots{1} = [0 0 0 1 1 1]; + knots{2} = [0 0 0 .5 1 1 1]; + knots{3} = [0 0 0 0 1 1 1 1]; + cx = [0 0.5 1]; nx = length(cx); + cy = [0 0.25 0.75 1]; ny = length(cy); + cz = [0 1/3 2/3 1]; nz = length(cz); + coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); + coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); + coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); + coefs(4,:,:,:) = 1; + nurbs = nrbmak(coefs, knots); + x = rand(5,1); y = rand(5,1); z = rand(5,1); + tt = [x y z]'; + points = nrbeval(nurbs,tt); + + assert(points,tt,1e-10) + +***** test + knots{1} = [0 0 0 1 1 1]; + knots{2} = [0 0 0 0 1 1 1 1]; + knots{3} = [0 0 1 1]; + cx = [0 0 1]; nx = length(cx); + cy = [0 0 0 1]; ny = length(cy); + cz = [0 1]; nz = length(cz); + coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); + coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); + coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); + coefs(4,:,:,:) = 1; + nurbs = nrbmak(coefs, knots); + x = rand(5,1); y = rand(5,1); z = rand(5,1); + tt = [x y z]'; + points = nrbeval(nurbs,tt); + assert(points,[x.^2 y.^3 z]',1e-10); + +***** test + knots{1} = [0 0 0 1 1 1]; + knots{2} = [0 0 0 0 1 1 1 1]; + knots{3} = [0 0 1 1]; + cx = [0 0 1]; nx = length(cx); + cy = [0 0 0 1]; ny = length(cy); + cz = [0 1]; nz = length(cz); + coefs(1,:,:,:) = repmat(reshape(cx,nx,1,1),[1 ny nz]); + coefs(2,:,:,:) = repmat(reshape(cy,1,ny,1),[nx 1 nz]); + coefs(3,:,:,:) = repmat(reshape(cz,1,1,nz),[nx ny 1]); + coefs(4,:,:,:) = 1; + coefs = coefs([2 1 3 4],:,:,:); + nurbs = nrbmak(coefs, knots); + x = rand(5,1); y = rand(5,1); z = rand(5,1); + tt = [x y z]'; + points = nrbeval(nurbs,tt); + [y.^3 x.^2 z]'; + assert(points,[y.^3 x.^2 z]',1e-10); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/nrbsurfderiveval.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbsurfderiveval.m +***** test + k = [0 0 1 1]; + c = [0 1]; + [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); + coef(3,:,:) = coef(1,:,:); + srf = nrbmak (coef, {k, k}); + [u, v] = meshgrid (linspace(0,1,11)); + uv = [u(:)';v(:)']; + skl = nrbsurfderiveval (srf, uv, 0); + aux = nrbeval(srf,uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** test + k = [0 0 1 1]; + c = [0 1]; + [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); + coef(3,:,:) = coef(1,:,:); + srf = nrbmak (coef, {k, k}); + srf = nrbkntins (srf, {[], rand(2,1)}); + [u, v] = meshgrid (linspace(0,1,11)); + uv = [u(:)';v(:)']; + skl = nrbsurfderiveval (srf, uv, 0); + aux = nrbeval(srf,uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** shared srf, uv +***** test + k = [0 0 0 1 1 1]; + c = [0 1/2 1]; + [coef(1,:,:), coef(2,:,:)] = meshgrid (c, c); + coef(3,:,:) = coef(1,:,:); + srf = nrbmak (coef, {k, k}); + ders= nrbderiv (srf); + [u, v] = meshgrid (linspace(0,1,11)); + uv = [u(:)';v(:)']; + skl = nrbsurfderiveval (srf, uv, 1); + [fun, der] = nrbdeval (srf, ders, uv); + assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) + +***** test + srf = nrbdegelev (srf, [3, 1]); + ders= nrbderiv (srf); + [fun, der] = nrbdeval (srf, ders, uv); + skl = nrbsurfderiveval (srf, uv, 1); + assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) +***** shared uv +***** test + k = [0 0 0 1 1 1]; + c = [0 1/2 1]; + [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); + coef(3,:,:) = coef(1,:,:); + srf = nrbmak (coef, {k, k}); + ders= nrbderiv (srf); + [u, v] = meshgrid (linspace(0,1,11)); + uv = [u(:)';v(:)']; + skl = nrbsurfderiveval (srf, uv, 1); + [fun, der] = nrbdeval (srf, ders, uv); + assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) + +***** test + p = 3; q = 3; + mcp = 5; ncp = 5; + Lx = 10*rand(1); Ly = Lx; + srf = nrbdegelev (nrb4surf ([0 0], [Lx, 0], [0 Ly], [Lx Ly]), [p-1, q-1]); + %%srf = nrbkntins (srf, {linspace(0,1,mcp-p+2)(2:end-1), linspace(0,1,ncp-q+2)(2:end-1)}); + %%srf.coefs = permute (srf.coefs, [1 3 2]); + ders= nrbderiv (srf); + [fun, der] = nrbdeval (srf, ders, uv); + skl = nrbsurfderiveval (srf, uv, 1); + assert (squeeze (skl (1:2,1,1,:)), fun(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,2,1,:)), der{1}(1:2,:), 1e3*eps) + assert (squeeze (skl (1:2,1,2,:)), der{2}(1:2,:), 1e3*eps) +***** shared srf, uv, P, dPdx, d2Pdx2, c1, c2 +***** test + [u, v] = meshgrid (linspace(0,1,10)); + uv = [u(:)';v(:)']; + c1 = nrbmak([0 1/2 1; 0 1 0],[0 0 0 1 1 1]); + c1 = nrbtform (c1, vecrotx (pi/2)); + c2 = nrbtform(c1, vectrans([0 1 0])); + srf = nrbdegelev (nrbruled (c1, c2), [3, 1]); + skl = nrbsurfderiveval (srf, uv, 2); + P = squeeze(skl(:,1,1,:)); + dPdx = squeeze(skl(:,2,1,:)); + d2Pdx2 = squeeze(skl(:,3,1,:)); +***** assert(P(3,:), 2*(P(1,:)-P(1,:).^2),100*eps) +***** assert(dPdx(3,:), 2-4*P(1,:), 100*eps) +***** assert(d2Pdx2(3,:), -4+0*P(1,:), 100*eps) + srf = nrbdegelev (nrbruled (c1, c2), [5, 6]); + skl = nrbsurfderiveval (srf, uv, 2); + P = squeeze(skl(:,1,1,:)); + dPdx = squeeze(skl(:,2,1,:)); + d2Pdx2 = squeeze(skl(:,3,1,:)); + aux = nrbeval(srf,uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** assert(P(3,:), 2*(P(1,:)-P(1,:).^2),100*eps) +***** assert(dPdx(3,:), 2-4*P(1,:), 100*eps) +***** assert(d2Pdx2(3,:), -4+0*P(1,:), 100*eps) + +***** test + skl = nrbsurfderiveval (srf, uv, 0); + aux = nrbeval (srf, uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** shared dPdu, d2Pdu2, P, srf, uv +***** test + [u, v] = meshgrid (linspace(0,1,10)); + uv = [u(:)';v(:)']; + c1 = nrbmak([0 1/2 1; 0.1 1.6 1.1; 0 0 0],[0 0 0 1 1 1]); + c2 = nrbmak([0 1/2 1; 0.1 1.6 1.1; 1 1 1],[0 0 0 1 1 1]); + srf = nrbdegelev (nrbruled (c1, c2), [0, 1]); + skl = nrbsurfderiveval (srf, uv, 2); + P = squeeze(skl(:,1,1,:)); + dPdu = squeeze(skl(:,2,1,:)); + dPdv = squeeze(skl(:,1,2,:)); + d2Pdu2 = squeeze(skl(:,3,1,:)); + aux = nrbeval(srf,uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** assert(dPdu(2,:), 3-4*P(1,:),100*eps) +***** assert(d2Pdu2(2,:), -4+0*P(1,:),100*eps) + +***** test + skl = nrbsurfderiveval (srf, uv, 0); + aux = nrbeval(srf,uv); + assert (squeeze (skl (1:2,1,1,:)), aux(1:2,:), 1e3*eps) +***** test + srf = nrb4surf([0 0], [1 0], [0 1], [1 1]); + geo = nrbdegelev (srf, [3 3]); + geo = nrbkntins (geo, {[.1:.1:.9], [.2:.2:.8]}); + [u, v] = meshgrid (linspace(0,1,10)); + uv = [u(:)';v(:)']; + skl = nrbsurfderiveval (geo, uv, 2); + dgeo = nrbderiv (geo); + [pnts, ders] = nrbdeval (geo, dgeo, uv); + assert (ders{1}, squeeze(skl(:,2,1,:)), 1e-9) + assert (ders{2}, squeeze(skl(:,1,2,:)), 1e-9) +***** test + crv = nrbline ([1 0], [2 0]); + srf = nrbrevolve (crv, [0 0 0], [0 0 1], pi/2); + srf = nrbtransp (srf); + [v, u] = meshgrid (linspace (0, 1, 11)); + uv = [u(:)'; v(:)']; + skl = nrbsurfderiveval (srf, uv, 2); + c = sqrt(2); + w = @(x, y) (2 - c)*y.^2 + (c-2)*y + 1; + dwdy = @(x, y) 2*(2-c)*y + c - 2; + d2wdy2 = @(x, y) 2*(2-c); + F1 = @(x, y) (x+1) .* ((1-y).^2 + c*y.*(1-y)) ./ w(x,y); + F2 = @(x, y) (x+1) .* (y.^2 + c*y.*(1-y)) ./ w(x,y); + dF1dx = @(x, y) ((1-y).^2 + c*y.*(1-y)) ./ w(x,y); + dF2dx = @(x, y) (y.^2 + c*y.*(1-y)) ./ w(x,y); + dF1dy = @(x, y) (x+1) .* ((2 - 2*c)*y + c - 2) ./ w(x,y) - (x+1) .* ((1-y).^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; + dF2dy = @(x, y) (x+1) .* ((2 - 2*c)*y + c) ./ w(x,y) - (x+1) .* (y.^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; + d2F1dx2 = @(x, y) zeros (size (x)); + d2F2dx2 = @(x, y) zeros (size (x)); + d2F1dxdy = @(x, y) ((2 - 2*c)*y + c - 2) ./ w(x,y) - ((1-y).^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; + d2F2dxdy = @(x, y) ((2 - 2*c)*y + c) ./ w(x,y) - (y.^2 + c*y.*(1-y)) .* dwdy(x,y) ./ w(x,y).^2; + d2F1dy2 = @(x, y) (x+1)*(2 - 2*c) ./ w(x,y) - 2*(x+1) .* ((2 - 2*c)*y + c - 2) .* dwdy(x,y) ./ w(x,y).^2 - ... + (x+1) .* ((1-y).^2 + c*y.*(1-y)) * d2wdy2(x,y) ./ w(x,y).^2 + ... + 2 * (x+1) .* ((1-y).^2 + c*y.*(1-y)) .* w(x,y) .*dwdy(x,y).^2 ./ w(x,y).^4; + d2F2dy2 = @(x, y) (x+1)*(2 - 2*c) ./ w(x,y) - 2*(x+1) .* ((2 - 2*c)*y + c) .* dwdy(x,y) ./ w(x,y).^2 - ... + (x+1) .* (y.^2 + c*y.*(1-y)) * d2wdy2(x,y) ./ w(x,y).^2 + ... + 2 * (x+1) .* (y.^2 + c*y.*(1-y)) .* w(x,y) .*dwdy(x,y).^2 ./ w(x,y).^4; + assert ([F1(u(:),v(:)), F2(u(:),v(:))], squeeze(skl(1:2,1,1,:))', 1e2*eps); + assert ([dF1dx(u(:),v(:)), dF2dx(u(:),v(:))], squeeze(skl(1:2,2,1,:))', 1e2*eps); + assert ([dF1dy(u(:),v(:)), dF2dy(u(:),v(:))], squeeze(skl(1:2,1,2,:))', 1e2*eps); + assert ([d2F1dx2(u(:),v(:)), d2F2dx2(u(:),v(:))], squeeze(skl(1:2,3,1,:))', 1e2*eps); + assert ([d2F1dxdy(u(:),v(:)), d2F2dxdy(u(:),v(:))], squeeze(skl(1:2,2,2,:))', 1e2*eps); + assert ([d2F1dy2(u(:),v(:)), d2F2dy2(u(:),v(:))], squeeze(skl(1:2,1,3,:))', 1e2*eps); +***** test + knots = {[0 0 1 1] [0 0 1 1]}; + coefs(:,1,1) = [0;0;0;1]; + coefs(:,2,1) = [1;0;0;1]; + coefs(:,1,2) = [0;1;0;1]; + coefs(:,2,2) = [1;1;1;2]; + srf = nrbmak (coefs, knots); + [v, u] = meshgrid (linspace (0, 1, 3)); + uv = [u(:)'; v(:)']; + skl = nrbsurfderiveval (srf, uv, 2); + w = @(x, y) x.*y + 1; + F1 = @(x, y) x ./ w(x,y); + F2 = @(x, y) y ./ w(x,y); + F3 = @(x, y) x .* y ./ w(x,y); + dF1dx = @(x, y) 1./w(x,y) - x.*y./w(x,y).^2; + dF1dy = @(x, y) - x.^2./w(x,y).^2; + dF2dx = @(x, y) - y.^2./w(x,y).^2; + dF2dy = @(x, y) 1./w(x,y) - x.*y./w(x,y).^2; + dF3dx = @(x, y) y./w(x,y) - x.*(y./w(x,y)).^2; + dF3dy = @(x, y) x./w(x,y) - y.*(x./w(x,y)).^2; + d2F1dx2 = @(x, y) -2*y./w(x,y).^2 + 2*x.*y.^2./w(x,y).^3; + d2F1dy2 = @(x, y) 2*x.^3./w(x,y).^3; + d2F1dxdy = @(x, y) -x./w(x,y).^2 - x./w(x,y).^2 + 2*x.^2.*y./w(x,y).^3; + d2F2dx2 = @(x, y) 2*y.^3./w(x,y).^3; + d2F2dy2 = @(x, y) -2*x./w(x,y).^2 + 2*y.*x.^2./w(x,y).^3; + d2F2dxdy = @(x, y) -y./w(x,y).^2 - y./w(x,y).^2 + 2*y.^2.*x./w(x,y).^3; + d2F3dx2 = @(x, y) -2*y.^2./w(x,y).^2 + 2*x.*y.^3./w(x,y).^3; + d2F3dy2 = @(x, y) -2*x.^2./w(x,y).^2 + 2*y.*x.^3./w(x,y).^3; + d2F3dxdy = @(x, y) 1./w(x,y) - 3*x.*y./w(x,y).^2 + 2*(x.*y).^2./w(x,y).^3; + assert ([F1(u(:),v(:)), F2(u(:),v(:)), F3(u(:),v(:))], squeeze(skl(1:3,1,1,:))', 1e2*eps); + assert ([dF1dx(u(:),v(:)), dF2dx(u(:),v(:)), dF3dx(u(:),v(:))], squeeze(skl(1:3,2,1,:))', 1e2*eps); + assert ([dF1dy(u(:),v(:)), dF2dy(u(:),v(:)), dF3dy(u(:),v(:))], squeeze(skl(1:3,1,2,:))', 1e2*eps); + assert ([d2F1dx2(u(:),v(:)), d2F2dx2(u(:),v(:)), d2F3dx2(u(:),v(:))], squeeze(skl(1:3,3,1,:))', 1e2*eps); + assert ([d2F1dy2(u(:),v(:)), d2F2dy2(u(:),v(:)), d2F3dy2(u(:),v(:))], squeeze(skl(1:3,1,3,:))', 1e2*eps); + assert ([d2F1dxdy(u(:),v(:)), d2F2dxdy(u(:),v(:)), d2F3dxdy(u(:),v(:))], squeeze(skl(1:3,2,2,:))', 1e2*eps); +21 tests, 21 passed, 0 known failure, 0 skipped [inst/nrbunclamp.m] >>>>> /build/octave-nurbs-1.3.13/inst/nrbunclamp.m ***** demo @@ -3045,435 +3463,64 @@ ucrv = nrbunclamp (crv, 3); assert (F, nrbeval(ucrv, x), 1e-14); 1 test, 1 passed, 0 known failure, 0 skipped -[inst/surfderivcpts.m] ->>>>> /build/octave-nurbs-1.3.13/inst/surfderivcpts.m -***** test - coefs = cat(3,[0 0; 0 1],[1 1; 0 1]); - knots = {[0 0 1 1] [0 0 1 1]}; - plane = nrbmak(coefs,knots); - pkl = surfderivcpts (plane.number(1)-1, plane.order(1)-1,... - plane.knots{1}, plane.number(2)-1,... - plane.order(2)-1, plane.knots{2}, ... - squeeze (plane.coefs(1,:,:)), 1); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/nrbnumbasisfun.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbnumbasisfun.m -***** test - p = 2; q = 3; m = 4; n = 5; - Lx = 1; Ly = 1; - nrb = nrb4surf ([0 0], [1 0], [0 1], [1 1]); - nrb = nrbdegelev (nrb, [p-1, q-1]); - ikx = linspace(0,1,m); iky = linspace(0,1,n); - nrb = nrbkntins (nrb, {ikx(2:end-1), iky(2:end-1)}); - nrb.coefs (4,:,:) = nrb.coefs (4,:,:) + rand (size (nrb.coefs (4,:,:))); - u = rand (1, 30); v = rand (1, 10); - u = (u-min (u))/max (u-min (u)); - v = (v-min (v))/max (v-min (v)); - N = nrbnumbasisfun ({u, v}, nrb); - assert (all (all (N>0)), true) - assert (all (all (N <= prod (nrb.number))), true) - assert (max (max (N)), prod (nrb.number)) - assert (min (min (N)), 1) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/surfderiveval.m] ->>>>> /build/octave-nurbs-1.3.13/inst/surfderiveval.m -***** shared srf -***** test - k = [0 0 0 1 1 1]; - c = [0 1/2 1]; - [coef(2,:,:), coef(1,:,:)] = meshgrid (c, c); - srf = nrbmak (coef, {k, k}); - skl = surfderiveval (srf.number(1)-1, ... - srf.order(1)-1, ... - srf.knots{1}, ... - srf.number(2)-1, ... - srf.order(2)-1, ... - srf.knots{2},... - squeeze(srf.coefs(1,:,:)), .5, .5, 1) ; - assert (skl, [.5 0; 1 0]) -***** test - srf = nrbkntins (srf, {[], rand(1,2)}); - skl = surfderiveval (srf.number(1)-1,... - srf.order(1)-1, ... - srf.knots{1},... - srf.number(2)-1,... - srf.order(2)-1, ... - srf.knots{2},... - squeeze(srf.coefs(1,:,:)), .5, .5, 1) ; - assert (skl, [.5 0; 1 0], 100*eps) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/tbasisfun.m] ->>>>> /build/octave-nurbs-1.3.13/inst/tbasisfun.m -***** demo - U = {[0 0 1/2 1 1], [0 0 0 1 1]}; - p = [3, 3]; - [X, Y] = meshgrid (linspace(0, 1, 30)); - u = [X(:), Y(:)]'; - N = tbasisfun (u, p, U); - surf (X, Y, reshape (N, size(X))) - title('Basis function associated to a local knot vector') - hold off -***** test - U = [0 1/2 1]; - p = 1; - u = [0.3 0.4 0.6 0.7]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.6 0.8 0.8 0.6], 1e-12); - assert (Nder, [2 2 -2 -2], 1e-12); -***** test - U = {[0 1/2 1] [0 1/2 1]}; - p = [1 1]; - u = [0.3 0.4 0.6 0.7; 0.3 0.4 0.6 0.7]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.36 0.64 0.64 0.36], 1e-12); - assert (Nder, [1.2 1.6 -1.6 -1.2; 1.2 1.6 -1.6 -1.2], 1e-12); -***** test - U = {[0 1/2 1] [0 1/2 1] [0 1/2 1]}; - p = [1 1 1]; - u = [0.4 0.4 0.6 0.6; 0.4 0.4 0.6 0.6; 0.4 0.6 0.4 0.6]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.512 0.512 0.512 0.512], 1e-12); - assert (Nder, [1.28 1.28 -1.28 -1.28; 1.28 1.28 -1.28 -1.28; 1.28 -1.28 1.28 -1.28], 1e-12); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/basisfun.m] ->>>>> /build/octave-nurbs-1.3.13/inst/basisfun.m -***** test - n = 3; - U = [0 0 0 1/2 1 1 1]; - p = 2; - u = linspace (0, 1, 10); - s = findspan (n, p, u, U); - Bref = [1.00000 0.00000 0.00000 - 0.60494 0.37037 0.02469 - 0.30864 0.59259 0.09877 - 0.11111 0.66667 0.22222 - 0.01235 0.59259 0.39506 - 0.39506 0.59259 0.01235 - 0.22222 0.66667 0.11111 - 0.09877 0.59259 0.30864 - 0.02469 0.37037 0.60494 - 0.00000 0.00000 1.00000]; - B = basisfun (s, u, p, U); - assert (B, Bref, 1e-5); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/findspan.m] ->>>>> /build/octave-nurbs-1.3.13/inst/findspan.m -***** test - n = 3; - U = [0 0 0 1/2 1 1 1]; - p = 2; - u = linspace(0, 1, 10); - s = findspan (n, p, u, U); - assert (s, [2*ones(1, 5) 3*ones(1, 5)]); -***** test - p = 2; m = 7; n = m - p - 1; - U = [zeros(1,p) linspace(0,1,m+1-2*p) ones(1,p)]; - u = [ 0 0.11880 0.55118 0.93141 0.40068 0.35492 0.44392 0.88360 0.35414 0.92186 0.83085 1]; - s = [2 2 3 4 3 3 3 4 3 4 4 4]; - assert (findspan (n, p, u, U), s, 1e-10); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/kntrefine.m] ->>>>> /build/octave-nurbs-1.3.13/inst/kntrefine.m -***** shared nrbs -***** test - knots = {[0 0 1 1] [0 0 0 1 1 1]}; - coefs(1,:,:) = [1 sqrt(2)/2 0; 2 sqrt(2) 0]; - coefs(2,:,:) = [0 sqrt(2)/2 1; 0 sqrt(2) 2]; - coefs(4,:,:) = [1 sqrt(2)/2 1; 1 sqrt(2)/2 1]; - nrbs = nrbmak (coefs, knots); - nrbs = nrbkntins (nrbs, {[] [0.5 0.6 0.6]}); - nrbs = nrbdegelev (nrbs, [0 1]); - nrbs = nrbkntins (nrbs, {[] [0.4]}); - rknots = kntrefine (nrbs.knots, [1 1], [1 1], [0 0]); - assert (rknots{1} == [0 0 0.5 1 1]); - assert (rknots{2} == [0 0 0.2 0.4 0.45 0.5 0.55 0.6 0.8 1 1]); - -***** test - rknots = kntrefine (nrbs.knots, [1 1], [3 3], [0 0]); - assert (rknots{1}, [0 0 0 0 0.5 0.5 0.5 1 1 1 1]); - assert (rknots{2}, [0 0 0 0 0.2 0.2 0.2 0.4 0.4 0.4 0.45 0.45 0.45 0.5 0.5 0.5 0.55 0.55 0.55 0.6 0.6 0.6 0.8 0.8 0.8 1 1 1 1]); - -***** test - rknots = kntrefine (nrbs.knots, [1 1], [3 3], [2 2]); - assert (rknots{1}, [0 0 0 0 0.5 1 1 1 1]); - assert (rknots{2}, [0 0 0 0 0.2 0.4 0.45 0.5 0.5 0.55 0.6 0.6 0.6 0.8 1 1 1 1]); - -***** test - rknots = kntrefine (nrbs.knots, [1 1], [4 4], [0 0]); - assert (rknots{1}, [0 0 0 0 0 0.5 0.5 0.5 0.5 1 1 1 1 1]); - assert (rknots{2}, [0 0 0 0 0 0.2 0.2 0.2 0.2 0.4 0.4 0.4 0.4 0.45 0.45 0.45 0.45 0.5 0.5 0.5 0.5 0.55 0.55 0.55 0.55 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8 1 1 1 1 1]); - -***** test - rknots = kntrefine (nrbs.knots, [1 1], [4 4], [3 3]); - assert (rknots{1}, [0 0 0 0 0 0.5 1 1 1 1 1]); - assert (rknots{2}, [0 0 0 0 0 0.2 0.4 0.4 0.45 0.5 0.5 0.5 0.55 0.6 0.6 0.6 0.6 0.8 1 1 1 1 1]); - -***** test - knots = [0 0 0 0 0.4 0.5 0.5 0.6 0.6 0.6 1 1 1 1]; - rknots = kntrefine (knots, 1, 4, 3); - assert (rknots, [0 0 0 0 0 0.2 0.4 0.4 0.45 0.5 0.5 0.5 0.55 0.6 0.6 0.6 0.6 0.8 1 1 1 1 1]); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/curvederiveval.m] ->>>>> /build/octave-nurbs-1.3.13/inst/curvederiveval.m -***** test - k = [0 0 0 1 1 1]; - coefs(:,1) = [0;0;0;1]; - coefs(:,2) = [1;0;1;1]; - coefs(:,3) = [1;1;1;1]; - crv = nrbmak (coefs, k); - ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(1,:,:)), 0.5, 2); - assert(ck, [0.75; 1; -2]); - ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(2,:,:)), 0.5, 2); - assert(ck, [0.25; 1; 2]); - ck = curvederiveval (crv.number-1, crv.order-1, crv.knots, squeeze (crv.coefs(3,:,:)), 0.5, 2); - assert(ck, [0.75; 1; -2]); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/nrbmeasure.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbmeasure.m -***** test - c = nrbcirc (1, [0 0], 0, pi/3); - l = nrbmeasure(c, 0, 1, 1e-7); - assert (l, pi/3, 1e-7) -***** test - c = nrbcirc (1, [0 0], 0, pi/2); - s = zeros (1, 100); e = linspace (0, 1, 100); - for ii = 1:100 - l(ii) = nrbmeasure (c, s(ii), e(ii), 1e-7); - endfor - xx = nrbeval (c, e); - theta = atan2 (xx(2,:), xx(1,:)); - assert (l, theta, 1e-7) -***** test - c = nrbcirc (1, [0 0], 0, pi/2); - s = 0; e = linspace (0, 1, 100); - for ii = 1:100 - l(ii) = nrbmeasure (c, s, e(ii), 1e-7); - endfor - l2 = nrbmeasure (c, s, e, 1e-7); - assert (l, l2, eps) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/numbasisfun.m] ->>>>> /build/octave-nurbs-1.3.13/inst/numbasisfun.m -***** test - n = 3; - U = [0 0 0 1/2 1 1 1]; - p = 2; - u = linspace (0, 1, 10); - s = findspan (n, p, u, U); - Bref = [0 0 0 0 0 1 1 1 1 1; ... - 1 1 1 1 1 2 2 2 2 2; ... - 2 2 2 2 2 3 3 3 3 3].'; - B = numbasisfun (s, u, p, U); - assert (B, Bref) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/nrbclamp.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbclamp.m -***** test - crv = nrbdegelev (nrbcirc (1, [], 0, pi/2), 2); - crv = nrbunclamp (crv, 3); - xx = linspace (0, 1, 20); - crv1 = nrbclamp (crv); - assert (crv1.knots, [0 0 0 0 0 1 1 1 1 1]) - assert (nrbeval(crv, xx), nrbeval(crv1, xx), 1e-14) - crv1 = nrbclamp (crv, 2); - assert (crv1.knots, [-3 -2 -1 0 0 1 1 2 3 4]) - assert (nrbeval(crv, xx), nrbeval(crv1, xx), 1e-14) -***** test - crv1 = nrbcirc(1,[],0,pi/4); - crv2 = nrbcirc(2,[],0,pi/4); - srf = nrbkntins (nrbdegelev (nrbruled(crv1, crv2), [3 2]), {0.25 []}); - srf = nrbunclamp (srf, [4 2]); - srf1 = nrbclamp (srf); - xx = linspace(0,1,20); - assert(srf1.knots, {[0 0 0 0 0 0 0.2500 1 1 1 1 1 1] [0 0 0 0 1 1 1 1]}) - assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); - srf1 = nrbclamp (srf, [3 1]); - assert (srf1.knots, {[-2 -1.75 -1 -0.75 0 0 0.25 1 1 1.25 2 2.25 3], [-2 -1 0 0 1 1 2 3]}) - assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); - srf1 = nrbclamp (srf, [], 2); - assert(srf1.knots, {[-2.75 -2 -1.75 -1 -0.75 0 0.25 1 1.25 2 2.25 3 3.25] [0 0 0 0 1 1 1 1]}) - assert (nrbeval(srf, {xx xx}), nrbeval(srf1, {xx xx}), 1e-14); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/nrbeval_der_w.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbeval_der_w.m -***** test % 1D - nrb = nrbkntins (nrbcirc (1, [0 0], 0, pi/2), .5); - u = linspace (0, 1, 11); - delta_w = .01; - n = nrb.number; - der_ex = zeros (3, numel (u), n); - der_fd = zeros (3, numel (u), n); - for iw = 1:n - new_w1 = nrb.coefs (4, iw) + delta_w; - new_w2 = nrb.coefs (4, iw) - delta_w; - nrb1 = nrbmodw (nrb, new_w1, iw); - nrb2 = nrbmodw (nrb, new_w2, iw); - der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, u); +[inst/nrbeval_der_p.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbeval_der_p.m +***** test %% 1D + nrb = nrbkntins (nrbcirc (1, [0 0], 0, pi/2), .5); + u = 0:.1:.9; + index = 1:nrb.number; + e = zeros (numel (u), numel (index), 1); + for jj = 1:numel (index) + deltap = .1 * rand (3, 1); + nrb2 = nrbmodp (nrb, deltap, index(jj)); + der_ex = nrbeval_der_p (nrb, index(jj), u); p2 = nrbeval (nrb2, u); - p1 = nrbeval (nrb1, u); - der_fd(:,:,iw) = -(p2 - p1) ./ (2*delta_w); + p1 = nrbeval (nrb, u); + der_fd = (p2 - p1) ./ deltap; + e(:,jj) = sqrt (sum ((repmat (der_ex, 3, 1) - der_fd).^2, 1)); end - error = max (abs (der_ex(:) - der_fd(:))); - assert (error < 1.e-4) - -***** test %2D + assert (max(e(:)) < 1.e-8); + +***** test %% 2D crv = nrbline([1 0], [2 0]); nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); new_knots = linspace (1/9, 8/9, 8); nrb = nrbkntins (nrb, {new_knots, new_knots}); - u = linspace (0, 1, 5); + u = 0:.1:.9; v = u; - delta_w = .01; - n = nrb.number(1) * nrb.number(2); - der_ex = zeros (3, numel(u)* numel(v), n); - der_fd = zeros (3, numel(u)* numel(v), n); - for iw = 1:nrb.number - new_w1 = nrb.coefs (4, iw) + delta_w; - new_w2 = nrb.coefs (4, iw) - delta_w; - nrb1 = nrbmodw (nrb, new_w1, iw); - nrb2 = nrbmodw (nrb, new_w2, iw); - der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, {u v}); + e = zeros (nrb.number(1) * nrb.number(2), numel (u), numel (v)); + for index = 1:nrb.number(1) * nrb.number(2) + deltap = .1 * rand (3, 1); + nrb2 = nrbmodp (nrb, deltap, index); + der_ex = nrbeval_der_p (nrb, index, {u v}); p2 = nrbeval (nrb2, {u v}); - p1 = nrbeval (nrb1, {u v}); - der_fd(:,:,iw) = reshape (-(p2 - p1) ./ (2*delta_w), 3, []); + p1 = nrbeval (nrb, {u v}); + der_fd = (p2 - p1) ./ deltap; + der_ex = reshape (repmat (der_ex, 3, 1), size(der_fd)); + e(index,:,:) = sqrt (sum ((der_ex - der_fd).^2, 1)); end - error = max (abs (der_ex(:) - der_fd(:))); - assert (error < 1.e-5) + assert (max(e(:)) < 1.e-8) -***** test % 3D +***** test %% 3D crv = nrbline([1 0], [2 0]); nrb = nrbtransp (nrbrevolve (crv, [], [0 0 1], pi/2)); nrb = nrbextrude (nrb, [0 0 1]); - u = 0:.33:.99; - v = 0:.1:.9; - w = [.25 .5 .75]; - delta_w = .01; - n = nrb.number(1) * nrb.number(2) * nrb.number(3); - der_ex = zeros (3, numel(u)*numel(v)*numel(w), n); - der_fd = zeros (3, numel(u)*numel(v)*numel(w), n); - for iw = 1:nrb.number - new_w1 = nrb.coefs (4, iw) + delta_w; - new_w2 = nrb.coefs (4, iw) - delta_w; - nrb1 = nrbmodw (nrb, new_w1, iw); - nrb2 = nrbmodw (nrb, new_w2, iw); - der_ex(:,:,iw) = nrbeval_der_w (nrb, iw, {u v w}); + u = 0:.1:.9; + v = u; + w = u; + e = zeros (nrb.number(1) * nrb.number(2) * nrb.number(3), numel(u), numel(v), numel(w)); + for index = 1:nrb.number(1) * nrb.number(2) * nrb.number(3) + deltap = .1 * rand (3, 1); + nrb2 = nrbmodp (nrb, deltap, index); + der_ex = nrbeval_der_p (nrb, index, {u v w}); p2 = nrbeval (nrb2, {u v w}); - p1 = nrbeval (nrb1, {u v w}); - der_fd(:,:,iw) = reshape (-(p2 - p1) ./ (2*delta_w), 3, []); + p1 = nrbeval (nrb, {u v w}); + der_fd = (p2 - p1) ./ deltap; + der_ex = reshape (repmat (der_ex, 3, 1), size (der_fd)); + e(index,:,:,:) = sqrt (sum ((der_ex - der_fd).^2, 1)); end - error = max (max (squeeze (max (abs (der_ex - der_fd))))); - assert (error < 1.e-4) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/nrbreverse.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbreverse.m -***** demo - pnts = [0.5 1.5 3.0 7.5 8.5; - 3.0 5.5 1.5 4.0 4.5; - 0.0 0.0 0.0 0.0 0.0]; - crv1 = nrbmak(pnts,[0 0 0 1/2 3/4 1 1 1]); - crv2 = nrbreverse(crv1); - fprintf('Knots of the original curve\n') - disp(crv1.knots) - fprintf('Knots of the reversed curve\n') - disp(crv2.knots) - fprintf('Control points of the original curve\n') - disp(crv1.coefs(1:2,:)) - fprintf('Control points of the reversed curve\n') - disp(crv2.coefs(1:2,:)) - nrbplot(crv1,100) - hold on - nrbplot(crv2,100) - title('The curve and its reverse are the same') - hold off -***** test - srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); - srf = nrbkntins (srf, {0.3, 0.6}); - srf2 = nrbreverse (srf); - assert (srf.knots, cellfun(@(x) sort(1-x), srf2.knots, 'UniformOutput', false), 1e-15) - assert (srf.coefs, srf2.coefs(:,end:-1:1,end:-1:1)) -***** test - srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); - srf = nrbkntins (srf, {0.3, 0.6}); - srf2 = nrbreverse (srf, 1); - knt{1} = sort(1-srf2.knots{1}); knt{2} = srf2.knots{2}; - assert (srf.knots, knt, 1e-15) - assert (srf.coefs, srf2.coefs(:,end:-1:1,:)) - srf2 = nrbreverse (srf, 2); - knt{1} = srf2.knots{1}; knt{2} = sort(1-srf2.knots{2}); - assert (srf.knots, knt, 1e-15) - assert (srf.coefs, srf2.coefs(:,:,end:-1:1)) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/nrbbasisfunder.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbbasisfunder.m -***** demo - U = [0 0 0 0 1 1 1 1]; - x = [0 1/3 2/3 1] ; - y = [0 0 0 0]; - w = [1 1 1 1]; - nrb = nrbmak ([x;y;y;w], U); - u = linspace(0, 1, 30); - [Bu, id] = nrbbasisfunder (u, nrb); - plot(u, Bu) - title('Derivatives of the cubic Bernstein polynomials') - hold off -***** test - U = [0 0 0 0 1 1 1 1]; - x = [0 1/3 2/3 1] ; - y = [0 0 0 0]; - w = rand(1,4); - nrb = nrbmak ([x;y;y;w], U); - u = linspace(0, 1, 30); - [Bu, id] = nrbbasisfunder (u, nrb); - #plot(u, Bu) - assert (sum(Bu, 2), zeros(numel(u), 1), 1e-10), -***** test - U = [0 0 0 0 1/2 1 1 1 1]; - x = [0 1/4 1/2 3/4 1] ; - y = [0 0 0 0 0]; - w = rand(1,5); - nrb = nrbmak ([x;y;y;w], U); - u = linspace(0, 1, 300); - [Bu, id] = nrbbasisfunder (u, nrb); - assert (sum(Bu, 2), zeros(numel(u), 1), 1e-10) -***** test - p = 2; q = 3; m = 4; n = 5; - Lx = 1; Ly = 1; - nrb = nrb4surf ([0 0], [1 0], [0 1], [1 1]); - nrb = nrbdegelev (nrb, [p-1, q-1]); - aux1 = linspace(0,1,m); aux2 = linspace(0,1,n); - nrb = nrbkntins (nrb, {aux1(2:end-1), aux2(2:end-1)}); - nrb.coefs (4,:,:) = nrb.coefs(4,:,:) + rand (size (nrb.coefs (4,:,:))); - [Bu, Bv, N] = nrbbasisfunder ({rand(1, 20), rand(1, 20)}, nrb); - #plot3(squeeze(u(1,:,:)), squeeze(u(2,:,:)), reshape(Bu(:,10), 20, 20),'o') - assert (sum (Bu, 2), zeros(20^2, 1), 1e-10) + assert (max (e(:)) < 1.e-8); 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/nrbtransp.m] ->>>>> /build/octave-nurbs-1.3.13/inst/nrbtransp.m -***** demo - srf = nrb4surf([0 0 0], [1 0 1], [0 1 1], [1 1 2]); - nrbplot(srf,[20 5]); - title('Plane surface and its transposed (translated)') - hold on - srf.coefs(3,:,:) = srf.coefs(3,:,:) + 10; - srf = nrbtransp(srf); - nrbplot(srf,[20 5]); - hold off -***** test - srf = nrbrevolve(nrbline([1 0],[2 0]), [0 0 0], [0 0 1], pi/2); - srft = nrbtransp(srf); - assert (srf.number, fliplr(srft.number)); - assert (srf.order, fliplr(srft.order)); - assert (srf.knots, fliplr(srft.knots)); - assert (srf.coefs, permute(srft.coefs, [1 3 2])); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/curvederivcpts.m] ->>>>> /build/octave-nurbs-1.3.13/inst/curvederivcpts.m -***** test - line = nrbmak([0.0 1.5; 0.0 3.0],[0.0 0.0 1.0 1.0]); - pk = curvederivcpts (line.number-1, line.order-1, line.knots,... - line.coefs(1,:), 2); - assert (pk, [0 3/2; 3/2 0], 100*eps); -1 test, 1 passed, 0 known failure, 0 skipped [inst/nrbdeval.m] >>>>> /build/octave-nurbs-1.3.13/inst/nrbdeval.m ***** demo @@ -3561,6 +3608,19 @@ assert(jac{1}(2,:,:),2*x',1e-12) assert(jac{3}(3,:,:),ones(size(z')),1e-12) 2 tests, 2 passed, 0 known failure, 0 skipped +[inst/nrbsquare.m] +>>>>> /build/octave-nurbs-1.3.13/inst/nrbsquare.m +***** test + srf = nrbsquare ([], 1, 2, 2, 4); + assert (srf.order, [3 3]); + knt = [0 0 0 1/4 1/2 3/4 1 1 1]; + assert (srf.knots, {knt knt}) + x = linspace (0, 1, 100); + [X,Y] = ndgrid (x, x); + vals = nrbeval (srf, {x x}); + assert (squeeze(vals(1,:,:)), X, 1e-15); + assert (squeeze(vals(2,:,:)), 2*Y, 1e-15); +1 test, 1 passed, 0 known failure, 0 skipped [inst/basisfunder.m] >>>>> /build/octave-nurbs-1.3.13/inst/basisfunder.m ***** test @@ -3595,32 +3655,6 @@ assert (ders(:, (p+2):end, :), zeros(numel(u), 8-p-1, p+1), 1e-13) assert (all(all(ders(:, 1, :) <= 1)), true) 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/kntbrkdegmult.m] ->>>>> /build/octave-nurbs-1.3.13/inst/kntbrkdegmult.m -***** test - breaks = [0 1 2 3 4]; - degree = 3; - knots = kntbrkdegmult (breaks, degree); - assert (knots, [0 0 0 0 1 2 3 4 4 4 4]) -***** test - breaks = [0 1 2 3 4]; - degree = 3; - mult = 2; - knots = kntbrkdegmult (breaks, degree, mult); - assert (knots, [0 0 0 0 1 1 2 2 3 3 4 4 4 4]) -***** test - breaks = [0 1 2 3 4]; - degree = 3; - mult = [1 2 3]; - knots = kntbrkdegmult (breaks, degree, mult); - assert (knots, [0 0 0 0 1 2 2 3 3 3 4 4 4 4]) -***** test - breaks = {[0 1 2 3 4] [0 1 2 3]}; - degree = [3 2]; - mult = {[1 2 3] 2}; - knots = kntbrkdegmult (breaks, degree, mult); - assert (knots, {[0 0 0 0 1 2 2 3 3 3 4 4 4 4] [0 0 0 1 1 2 2 3 3 3]}) -4 tests, 4 passed, 0 known failure, 0 skipped Checking C++ files ... [src/nrbsurfderiveval.cc] >>>>> /build/octave-nurbs-1.3.13/src/nrbsurfderiveval.cc @@ -3877,71 +3911,6 @@ assert ([d2F1dy2(u(:),v(:)), d2F2dy2(u(:),v(:)), d2F3dy2(u(:),v(:))], squeeze(skl(1:3,1,3,:))', 1e2*eps); assert ([d2F1dxdy(u(:),v(:)), d2F2dxdy(u(:),v(:)), d2F3dxdy(u(:),v(:))], squeeze(skl(1:3,2,2,:))', 1e2*eps); 23 tests, 23 passed, 0 known failure, 0 skipped -[src/tbasisfun.cc] ->>>>> /build/octave-nurbs-1.3.13/src/tbasisfun.cc -***** demo - U = {[0 0 1/2 1 1], [0 0 0 1 1]}; - p = [3, 3]; - [X, Y] = meshgrid (linspace(0, 1, 30)); - u = [X(:), Y(:)]'; - N = tbasisfun (u, p, U); - surf (X, Y, reshape (N, size(X))) - title('Basis function associated to a local knot vector') - hold off -***** test - U = [0 1/2 1]; - p = 1; - u = [0.3 0.4 0.6 0.7]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.6 0.8 0.8 0.6], 1e-12); - assert (Nder, [2 2 -2 -2], 1e-12); -***** test - U = {[0 1/2 1] [0 1/2 1]}; - p = [1 1]; - u = [0.3 0.4 0.6 0.7; 0.3 0.4 0.6 0.7]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.36 0.64 0.64 0.36], 1e-12); - assert (Nder, [1.2 1.6 -1.6 -1.2; 1.2 1.6 -1.6 -1.2], 1e-12); -***** test - U = {[0 1/2 1] [0 1/2 1] [0 1/2 1]}; - p = [1 1 1]; - u = [0.4 0.4 0.6 0.6; 0.4 0.4 0.6 0.6; 0.4 0.6 0.4 0.6]; - [N, Nder] = tbasisfun (u, p, U); - assert (N, [0.512 0.512 0.512 0.512], 1e-12); - assert (Nder, [1.28 1.28 -1.28 -1.28; 1.28 1.28 -1.28 -1.28; 1.28 -1.28 1.28 -1.28], 1e-12); -3 tests, 3 passed, 0 known failure, 0 skipped -[src/curvederivcpts.cc] ->>>>> /build/octave-nurbs-1.3.13/src/curvederivcpts.cc -***** test - line = nrbmak([0.0 1.5; 0.0 3.0],[0.0 0.0 1.0 1.0]); - pk = curvederivcpts (line.number-1, line.order-1, line.knots, - line.coefs(1,:), 2); - assert (pk, [0 3/2; 3/2 0], 100*eps); -1 test, 1 passed, 0 known failure, 0 skipped -[src/basisfun.cc] ->>>>> /build/octave-nurbs-1.3.13/src/basisfun.cc -***** shared n, U, p, u, s -***** test - n = 3; - U = [0 0 0 1/2 1 1 1]; - p = 2; - u = linspace(0, 1, 10); - s = findspan(n, p, u, U); - assert (s, [2*ones(1, 5) 3*ones(1, 5)]); -***** test - Bref = [1.00000 0.00000 0.00000 - 0.60494 0.37037 0.02469 - 0.30864 0.59259 0.09877 - 0.11111 0.66667 0.22222 - 0.01235 0.59259 0.39506 - 0.39506 0.59259 0.01235 - 0.22222 0.66667 0.11111 - 0.09877 0.59259 0.30864 - 0.02469 0.37037 0.60494 - 0.00000 0.00000 1.00000]; - B = basisfun(s, u, p, U); - assert (B, Bref, 1e-5); -2 tests, 2 passed, 0 known failure, 0 skipped [src/surfderiveval.cc] >>>>> /build/octave-nurbs-1.3.13/src/surfderiveval.cc ***** shared srf @@ -3989,6 +3958,71 @@ assert (pkl(:),pkl2); 1 test, 1 passed, 0 known failure, 0 skipped +[src/basisfun.cc] +>>>>> /build/octave-nurbs-1.3.13/src/basisfun.cc +***** shared n, U, p, u, s +***** test + n = 3; + U = [0 0 0 1/2 1 1 1]; + p = 2; + u = linspace(0, 1, 10); + s = findspan(n, p, u, U); + assert (s, [2*ones(1, 5) 3*ones(1, 5)]); +***** test + Bref = [1.00000 0.00000 0.00000 + 0.60494 0.37037 0.02469 + 0.30864 0.59259 0.09877 + 0.11111 0.66667 0.22222 + 0.01235 0.59259 0.39506 + 0.39506 0.59259 0.01235 + 0.22222 0.66667 0.11111 + 0.09877 0.59259 0.30864 + 0.02469 0.37037 0.60494 + 0.00000 0.00000 1.00000]; + B = basisfun(s, u, p, U); + assert (B, Bref, 1e-5); +2 tests, 2 passed, 0 known failure, 0 skipped +[src/tbasisfun.cc] +>>>>> /build/octave-nurbs-1.3.13/src/tbasisfun.cc +***** demo + U = {[0 0 1/2 1 1], [0 0 0 1 1]}; + p = [3, 3]; + [X, Y] = meshgrid (linspace(0, 1, 30)); + u = [X(:), Y(:)]'; + N = tbasisfun (u, p, U); + surf (X, Y, reshape (N, size(X))) + title('Basis function associated to a local knot vector') + hold off +***** test + U = [0 1/2 1]; + p = 1; + u = [0.3 0.4 0.6 0.7]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.6 0.8 0.8 0.6], 1e-12); + assert (Nder, [2 2 -2 -2], 1e-12); +***** test + U = {[0 1/2 1] [0 1/2 1]}; + p = [1 1]; + u = [0.3 0.4 0.6 0.7; 0.3 0.4 0.6 0.7]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.36 0.64 0.64 0.36], 1e-12); + assert (Nder, [1.2 1.6 -1.6 -1.2; 1.2 1.6 -1.6 -1.2], 1e-12); +***** test + U = {[0 1/2 1] [0 1/2 1] [0 1/2 1]}; + p = [1 1 1]; + u = [0.4 0.4 0.6 0.6; 0.4 0.4 0.6 0.6; 0.4 0.6 0.4 0.6]; + [N, Nder] = tbasisfun (u, p, U); + assert (N, [0.512 0.512 0.512 0.512], 1e-12); + assert (Nder, [1.28 1.28 -1.28 -1.28; 1.28 1.28 -1.28 -1.28; 1.28 -1.28 1.28 -1.28], 1e-12); +3 tests, 3 passed, 0 known failure, 0 skipped +[src/curvederivcpts.cc] +>>>>> /build/octave-nurbs-1.3.13/src/curvederivcpts.cc +***** test + line = nrbmak([0.0 1.5; 0.0 3.0],[0.0 0.0 1.0 1.0]); + pk = curvederivcpts (line.number-1, line.order-1, line.knots, + line.coefs(1,:), 2); + assert (pk, [0 3/2; 3/2 0], 100*eps); +1 test, 1 passed, 0 known failure, 0 skipped Summary: 123 tests, 123 passed, 0 known failures, 0 skipped dh_octave_substvar -O--buildsystem=octave dh_installdocs -O--buildsystem=octave @@ -4007,28 +4041,30 @@ 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-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspeval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderivcpts.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/tbasisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspderiv.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrbsurfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfunder.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun_der__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/curvederivcpts.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-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspeval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderivcpts.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/tbasisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspderiv.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrbsurfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfunder.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun_der__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/curvederivcpts.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-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun_der__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/tbasisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfunder.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspeval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderivcpts.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrbsurfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspderiv.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/curvederivcpts.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-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun_der__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/tbasisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrb_srf_basisfun__.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfunder.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspeval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/basisfun.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/surfderivcpts.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/nrbsurfderiveval.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/bspderiv.oct debian/octave-nurbs/usr/lib/i386-linux-gnu/octave/packages/nurbs-1.3.13/i686-pc-linux-gnu-api-v52/curvederivcpts.oct were not linked against libpthread.so.0 (they use none of the library's symbols) dh_installdeb -O--buildsystem=octave dh_gencontrol -O--buildsystem=octave dpkg-gencontrol: warning: package octave-nurbs: substitution variable ${octave:Upstream-Description} unused, but is defined dpkg-gencontrol: warning: package octave-nurbs: substitution variable ${octave:Upstream-Description} unused, but is defined dh_md5sums -O--buildsystem=octave dh_builddeb -O--buildsystem=octave -dpkg-deb: building package 'octave-nurbs' in '../octave-nurbs_1.3.13-5_i386.deb'. dpkg-deb: building package 'octave-nurbs-dbgsym' in '../octave-nurbs-dbgsym_1.3.13-5_i386.deb'. +dpkg-deb: building package 'octave-nurbs' in '../octave-nurbs_1.3.13-5_i386.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../octave-nurbs_1.3.13-5_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/11865/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/11865/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/57568 and its subdirectories -I: Current time: Wed Jul 21 06:08:09 -12 2021 -I: pbuilder-time-stamp: 1626890889 +I: removing directory /srv/workspace/pbuilder/11865 and its subdirectories +I: Current time: Fri Jun 19 03:19:21 +14 2020 +I: pbuilder-time-stamp: 1592486361